Pathfinder Walkthrough Video! 😀
博客原文地址
我在 0x00
开篇中有说过,在慢慢学习,和记录的过程当中,一个渗透测试学习者应该形成自己的学习思路,和测试工作流程。
这是第五篇博文,我个人的学习思路初步已经形成,那就是
-
nmap
一下HackTheBox
的目标机器,查看开放端口 - 对照 Ports and Services,查询不熟悉的服务类型
- 大致上明白这个机器是用来做什么练习的,比如这个
Pathfinder
,是关于Kerberos
和ActiveDirectory
的 - 如果这个主题自己还不是很熟悉,那么就先找很多的资料看一下, 比如搜一下
pentest kerberos exploits
- 如果这个主题比较熟悉,那么直接切入,尝试获取控制权
大多数情况下,都是不熟悉的主题,因为我是个菜鸟😜!
我尽可能晚地去寻求 Walkthrough
的帮助,因为第一,这就像看电影,而 Walkthrough
就像是剧透,很扫兴;第二,形成了这样的习惯,之后不免会沦为工具党,对往后的发展也不好。因此,不到万不得已,我不会去看 Walkthrough
(前篇那个 Rotten Potato
的漏洞那真是没办法,怎么也找不到解决方案)。给自己定个大原则,总有好处的 😀
至于工作流程,现在说还太早。
Help Desk
对于 Kerberos
我一无所知,所以一下是我在尝试 Pathfinder
之前阅读的资料。
How does Kerberos Work?
Kerberos Exploits
Kerberos Exploitation Cheetsheet
Get to Know Kerberos Video
AD Series-part-I
AD Series-part-II
AD Pentest Methodology
如果大家和我一样对于 Kerberos
不太熟悉,那就请一定看完这些资料,很有帮助。我找的资料一定是英文的,毕竟这些都是别人的技术。有人说我读着累不累,不好意思我是英语系毕业,专八,所以哈哈哈哈,小小骄傲一下😄 除此之外就像我说的,我是个菜鸟,也永远是菜鸟的心态。
好了,现在准备接手 Pathfinder
。
Recon
Nmap
# Nmap 7.80 scan initiated Wed Apr 22 07:55:30 2020 as: nmap -sC -sV -p53,88,135,139,445,593,47001,49668,49673,49698 -oN nmap/nmap.txt 10.10.10.30
Nmap scan report for 10.10.10.30
Host is up (0.64s latency).
PORT STATE SERVICE VERSION
53/tcp open domain?
| fingerprint-strings:
| DNSVersionBindReqTCP:
| version
|_ bind
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2020-04-22 18:58:35Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49668/tcp open msrpc Microsoft Windows RPC
49673/tcp open msrpc Microsoft Windows RPC
49698/tcp open msrpc Microsoft Windows RPC
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port53-TCP:V=7.80%I=7%D=4/22%Time=5EA030C0%P=x86_64-pc-linux-gnu%r(DNSV
SF:ersionBindReqTCP,20,"\0\x1e\0\x06\x81\x04\0\x01\0\0\0\0\0\0\x07version\
SF:x04bind\0\0\x10\0\x03");
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: 7h02m51s
| smb2-security-mode:
| 2.02:
|_ Message signing enabled and required
| smb2-time:
| date: 2020-04-22T18:59:39
|_ start_date: N/A
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Wed Apr 22 07:57:13 2020 -- 1 IP address (1 host up) scanned in 102.11 seconds
smb
,kerberos
,可以确定这是一个 active directory
相关的问题。
在上述阅读资料中,就有解决这个问题的方法。
Enumeration
Bloodhound-python
搜一下 bloodhound-python site:github.com
,按照提示安装。
笔者用
python3.8
安装之后,运行时会报digestmod
相关的错误,建议用python2
。或者也可以尝试3.7
等其他版本。
因为我们有一个登录信息了,sandra
:Password1234!
(移步 0x03
篇文章或者视频查看),所以可以直接跳到这一步。Bloodhound
可以把整个 DC (Domain Controller)
的信息,包括用户,组,内网的设备,以 json
的方式保存。
关于 Kerberos 和 Active Directory,可以单独开一篇文章记录一下整个原理,期待一下。
neo4j and bloodhound
apt install neo4j bloodhound
安装完之后先运行 neo4j
- neo4j start console
。
如果看到
no such file or directory
的错误,就手动创建一下run
和log
目录 -mkdir -p /usr/share/neo4j/run; mkdir -p /usr/share/neo4j/run
根据提示到浏览器访问 http://localhost:7474
,默认密码是 neo4j
,连接服务器之后会提示更改初始谜面。
现在可以直接在命令行运行 bloodhound
,输入用户名密码登录。
将之前 bloodhound-python
拉取的几个 json
文件,逐一拖入 bloodhound
进行分析。
选择 Queries
。
这里我并不知道该如何选择,我挨个点了一遍,有一些请求会显示一个
Administrator
,点击之后看 Node Info
,看到了一连串的 False
,感觉没有什么能利用的空间。在这里插入图片描述
点到
Find Principals with DCSync Rights
的时候,出现了另一个登录的用户(绿色标识登录到 DC
的用户)- svc_bes
。在这里插入图片描述
点开这个用户查看一下
Node Info
。发现 ASREP Roastable
是 True
。附上 Node Info Guide,解释了每一项的意思
在这里插入图片描述
- 线索:有一个用户的
ASREP Roastable
是True
- 思路:在阅读过程中,诸如
kerberoasting
是一个很常见的攻击方式 - 搜索一下
asrep roasting
确认这是一个可以利用的账户。
该如何利用呢?答案大家可以到 之前提到过的这篇文章中找。
Impacket GetNPUsers.py
在这里插入图片描述TGT hash
包含用户密码,获取到之后直接用 JTR
或者 hashcat
破解即可。
在这里插入图片描述
在这里插入图片描述
获得了
svc_bes
的登录密码。
- 线索:有两个登录信息
- 思路:能不能直接登录到目标机器上
- 操作:回看
nmap
结果,没有发现有什么可登录的端口。
Foothold
More Enumeration
重新 nmap
一下全部端口,查找登录服务。
结果一直报错,换成
unicornscan
试一下。在这里插入图片描述
还是不行。再用
masscan
。在这里插入图片描述
rate
不能太高,不然连之前的 88
端口都扫不到。在这里插入图片描述
在这里插入图片描述
做了一些搜索,发现 5985
这个端口是用来远程管理的。
搜一下 pentest winrm
第一个出现的是 evil-winrm
。
先登录到
sandra
的账号看一下。在这里插入图片描述
这个用户的几个目录都是空的。
我用 services
命令获取到 sandra
对于哪些服务有操作权限。
最后一个服务是
WinDefend
,好像是防火墙。查看一下防火墙的运行状态。
在这里插入图片描述
权限不足。看一下进程。
在这里插入图片描述
这是刚才那个
sandra
有权限的进程。尝试杀掉。
在这里插入图片描述
权限不足。
扩展
不清楚用户信息让我很恼火,这篇文章又让事情进了一步。
可以得到指定用户的相关信息。但是还是没有权限的相关信息。 在这里插入图片描述
列出缓存的
ticket
,ticket
信息是相当重要的,也是信息泄露的一种。
最后我再回到 bloodhound
,仔细看了一下视图,原来视图上就会显示用户对于 DC
的权限 😂
好,找到了就好。
登录到 svc_bes
之后,可以在他的桌面找到该用户的 flag
。
Privilege Escalation
扩展阅读
当然先要看一下这个GetChangesAll
权限的意义
AD Related Vulnerable Permissions
Abusing AD Permissions
简单说这个权限和 DCSync
相关,搜索一下 pentest dcsync attack
,这篇文章里面就有我要的下一步操作。
Impacket secretsdump.py
在这里插入图片描述扩展
在这里插入图片描述
这里补充一点,NTDS.dit
文件在C:\Windows\NTDS\
目录,该文件包含password hash
。
这是
secretsdump
的用法,还得加上一个 -dc-ip
。在这里插入图片描述
原来
secretsdump.py
就是获取的 NTDS.dit
文件的内容。
至此,admin
的 hash
已经拿到了。
Lateral Movement
搜索 pentest login to windows with admin hash
,都是 PTH pass the hash
。这篇文章有我要找的答案。
Impacket psexec.py
在这里插入图片描述原来这里导出的是
NTLM hash
。
在这里插入图片描述
这就是上面所说的包含
password hash
的文件。
在桌面上,可以找到 admin
的 flag
。
I'm in...
整个过程,详见顶部视频 😀
More
crackmapexec
找到了服务器上的 smb
目录,因为有 sandra
的密码,除了 ADMIN$
和 C$
,其余每个都可以登录查看。
有一个
GPP
相关的信息泄露,在之前阅读的 这篇文章中 可以找到。当 DC
管理员进行工作组权限相关操作的时候,敏感信息会被保存到 SYSVOL
当中,而 SYSVOL
是任何人都可以访问的。sandra
就访问到了 SYSVOL
中的内容,如果有敏感信息,就泄露了。在这里插入图片描述
可惜这里并没有有用的信息。
网友评论