文章总结: 本文深入分析了ActiveDirectory数据库NTDS.DIT作为核心攻击目标的价值,详细阐述了攻击者如何利用Windows内置的ntdsutil工具结合卷影复制机制,在域控制器运行期间绕过文件锁定创建快照并提取数据库文件及SYSTEM注册表hive。文章进一步揭示了提取后离线破解密码哈希、伪造GoldenTicket等攻击路径,并从监控工具使用、加强物理与虚拟安全、限制工具执行等角度提出了全面的防御策略。核心结论是保护AD不仅需关注逻辑权限,更需防护承载数据库的基础设施安全。 综合评分: 95 文章分类: 漏洞分析,红队,内网渗透,安全建设,安全工具
Active Directory 安全攻防(七)
原创
寰宇秘阁 寰宇秘阁
寰宇密阁
2026年7月20日 10:00 安徽
在小说阅读器读本章
去阅读
一、引言
在信息安全领域有一条基本原则:任何人如果获得了一台计算机未加密系统磁盘的访问权限,就等于拥有了这台计算机。这条原则适用于所有 Windows 系统,但当目标是域控制器时,其影响范围会被急剧放大。
对于域控制器而言,这条原则可以进一步延伸为:
任何人如果获取了 Active Directory 数据库,就等于拥有了整个 Active Directory——进而可能控制所有依赖 AD 进行身份验证和授权的文件服务器、数据库服务器、邮件服务器以及其他任何系统。
这并非夸张。Active Directory 数据库文件(NTDS.DIT)中存储了域内所有用户、计算机、服务账户的密码哈希、Kerberos 密钥、信任关系密钥等核心认证数据。一旦攻击者获取了这个文件,他们可以:
- 离线解密密码哈希:提取所有域用户(包括 Domain Admins、Enterprise Admins、krbtgt 等)的 NTLM 哈希和 Kerberos 密钥
- 执行 Pass-the-Hash 攻击:使用提取的哈希直接冒充任意用户
- 伪造 Golden Ticket:利用 krbtgt 账户的密钥伪造任意 Kerberos 票据
- 修改权限配置:在某些场景下,直接操纵数据库内容来提升低权限账户的权限
市面上存在大量工具可以用于查看和操纵 AD 数据库文件的内容。对攻击者而言,最核心的目标通常是:获取一个高权限账户的凭据,或者将一个低权限账户提升为高权限账户。
二、如何获取正在使用中的数据库
理解了 AD 数据库的价值之后,下一个问题自然是:攻击者如何获取这个文件?
AD 数据库文件 NTDS.DIT 默认存储在域控制器的 %SystemRoot%\NTDS\ 目录下(通常是 C:\Windows\NTDS\ntds.dit)。然而,当域控制器正常运行时,这个文件处于 ESE(Extensible Storage Engine)数据库引擎的独占锁定状态,无法像普通文件那样直接复制。
尝试直接复制正在运行的 ntds.dit 文件会收到”文件正在使用”的错误提示。
这就引出了多种绕过文件锁定的技术手段,其中最经典的方式之一就是利用 Windows 内置的 卷影复制(Volume Shadow Copy) 机制。
三、ntdsutil 命令
3.1 ntdsutil 简介
ntdsutil 是 Windows Server 上随 Active Directory 域服务一起安装的内置命令行工具。它最初设计用于 AD 数据库的维护和管理操作,包括:
- 数据库压缩与完整性检查
- 权威还原
- FSMO 角色管理
- 快照(Snapshot)管理
从 Windows Server 2008 开始,ntdsutil 支持在域控制器运行期间创建数据库快照。这个功能的设计初衷是方便管理员在不停机的情况下备份或检查 AD 数据库的历史状态,但同样可以被攻击者利用来提取数据库文件。
3.2 创建快照
ntdsutil 具有多级子菜单结构,可以交互式执行,也可以将命令串联在一行中执行。
交互式执行方式:
C:\> ntdsutil
ntdsutil: activate instance ntds
Active instance set to "ntds".
ntdsutil: snapshot
snapshot: create
Creating snapshot...
Snapshot set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} generated successfully.
snapshot: quit
ntdsutil: quit
单行命令方式:
ntdsutil "act inst ntds" "snap c q q"
命令解析:
| 命令部分 | 含义 |
| — | — |
| act inst ntds | 激活实例 NTDS,建立与 Active Directory 数据库的连接 |
| snap | 进入快照管理子菜单 |
| c (create) | 创建一个新的快照 |
| q (quit) | 退出当前子菜单 |
执行 create 命令后,系统会利用 VSS(Volume Shadow Copy Service) 在特定时间点对整个驱动器创建一个快照。快照数据存储在 System Volume Information 文件夹中。
关于快照容量:可以创建的快照数量取决于磁盘或 SSD 的总容量,以及为快照存储预留的磁盘空间大小。
3.3 列出和挂载快照
创建快照后,需要将其挂载(mount)才能访问其中的文件内容。
列出所有可用快照:
ntdsutil
ntdsutil: snapshot
snapshot: list all
快照列表的输出结构需要特别理解:
- 快照集(Snapshot Set):每个快照首先以完整的快照集形式显示(例如编号
1:),代表该时间点所有相关驱动器的完整集合 - 单个驱动器:在快照集下方列出各个驱动器及其盘符(例如编号
2:对应 C: 盘)
如果域控制器只有一个系统驱动器,那么选择快照集或单个驱动器条目的效果相同。
挂载快照:
snapshot: mount 2
挂载成功后,快照内容会以只读方式映射到以下路径:
C:\$Snap_<日期时间>_Volume\
例如:
C:\$Snap_202401151030_VolumeC\
3.4 从快照中提取数据库文件
快照挂载完成后,关键的一步来了:由于快照中的文件是历史副本,并非当前正在使用的文件,因此不受 ESE 数据库引擎的文件锁定限制。
攻击者(或管理员)可以直接从快照路径中复制 AD 数据库文件:
copy "C:\$Snap_202401151030_VolumeC\Windows\NTDS\ntds.dit" C:\temp\ntds.dit
copy "C:\$Snap_202401151030_VolumeC\Windows\System32\config\SYSTEM" C:\temp\SYSTEM
注意:除了
ntds.dit文件本身,攻击者通常还需要SYSTEM注册表 hive 文件,因为其中包含用于解密数据库内容的 Boot Key(系统启动密钥)。
至此,攻击者已经获得了离线分析 AD 数据库所需的全部文件。
四、提取后的攻击路径
获取了 ntds.dit 和 SYSTEM 文件后,攻击者可以在完全离线的环境中进行以下操作:
4.1 提取密码哈希
使用工具(如 secretsdump.py、DSInternals PowerShell 模块等)可以从数据库中提取所有账户的 NTLM 哈希:
# 使用 DSInternals 模块示例
$key = Get-BootKey-SystemHivePath 'C:\temp\SYSTEM'
Get-ADDBAccount-All -DBPath 'C:\temp\ntds.dit'-BootKey $key|
Format-Table Name, NTHash
4.2 提取 Kerberos 密钥
krbtgt 账户的密钥可以被提取并用于伪造 Golden Ticket,实现对整个域的持久化控制。
4.3 离线密码破解
提取的 NTLM 哈希可以通过彩虹表或暴力破解工具(如 Hashcat)进行离线破解,还原明文密码。
五、防御视角
5.1 监控 ntdsutil 的使用
ntdsutil 的执行会产生明确的日志痕迹:
- 进程创建日志:通过 Sysmon 或 Windows 安全审计策略监控
ntdsutil.exe的启动 - VSS 事件:卷影复制服务的创建操作会在系统事件日志中留下记录
- 命令行参数审计:启用进程命令行记录后,可以捕获
ntdsutil的具体参数
5.2 保护域控制器的物理和虚拟安全
| 防护措施 | 说明 | | — | — | | BitLocker 加密 | 对域控制器的系统驱动器启用 BitLocker,防止离线磁盘访问 | | 物理安全 | 确保域控制器所在的服务器机房有严格的物理访问控制 | | 虚拟化安全 | 如果域控制器运行在虚拟机中,保护虚拟机管理平台的访问权限,防止通过快照或磁盘导出获取数据 | | 最小权限 | 严格限制能够登录域控制器的账户数量 |
5.3 限制域控制器上的工具使用
通过 AppLocker 或 Windows Defender Application Control(WDAC)策略,可以限制非必要工具在域控制器上的执行。但需注意,ntdsutil 是系统内置工具,完全禁止可能影响正常管理操作。
5.4 其他数据库提取方式的防范
ntdsutil 只是提取 AD 数据库的方式之一。攻击者还可能使用:
- vssadmin 或 wmic shadowcopy 创建卷影副本
- DCSync 攻击(通过模拟域控制器复制协议远程提取哈希,无需接触数据库文件)
- 备份文件窃取(从备份系统中获取域控制器的备份)
- 虚拟机磁盘文件复制(直接复制 VMDK/VHDX 文件)
全面的防御策略需要覆盖所有这些攻击路径。
六、总结
Active Directory 数据库(NTDS.DIT)是整个域环境中最具价值的攻击目标之一。ntdsutil 作为 Windows 内置的管理工具,提供了在域控制器运行期间通过快照机制提取数据库副本的能力。这一功能虽然为管理员提供了便利,但同样为攻击者打开了一扇门。
保护 Active Directory 不仅仅是保护逻辑层面的权限配置,更需要保护承载数据库的物理和虚拟基础设施。任何能够接触到域控制器磁盘内容的路径,都是通往域控制权的潜在攻击路径。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:寰宇密阁 寰宇秘阁 寰宇秘阁《Active Directory 安全攻防(七)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论