NTDS.dit密码快速提取工具

  • A+
所属分类:moonsec_com
摘要

受不了NTDSXTract的龟速,于是用quarkspwdump改了个能读取system.hiv的离线版提取工具,顺便修复了个坑爹的BUG。

NTDSDump相关

受不了NTDSXTract的龟速,于是用quarkspwdump改了个能读取system.hiv的离线版提取工具,顺便修复了个坑爹的BUG。

ntds.dit其实就是个esent数据库,微软本身就有一系列的文档化api能够操作这个数据库,其链接是:https://msdn.microsoft.com/en-us/library/windows/desktop/gg294074.aspx

既然是windows api,那么效率自然不用提了:本地测试300M的ntds.dit,内含近万条HASH。

用512M内存的ubuntu虚拟机跑了将近一个小时,而在相同配置的2003虚拟机上此工具仅用了5秒钟就处理完毕,相差可谓天上地下。windows的东西么,还是交给windows自己的好。

附件内NTDSDump.exe是导出工具,其命令行如下:

ntdsdump.exe <-f ntds.dit> <-k HEX-SYS-KEY | -s system.hiv> [-o out.txt] [-h] [-t JOHN|LC] -f    ntds.dit路径 -k   可选的十六进制格式的SYSKEY -s    可选的system.hiv路径 -h   导出历史密码记录 -t    导出格式,LC或JOHN -o   导出到指定文件中

 

SYSKEY实际上就是HKLM/SYSTEM/CurrentControlSet/Control/Lsa下面几个子项的类型信息,可以用RegQueryInfoKey查询出来。

附件里面提供了两个导出工具,getsyskey_c.exe由vc6编译,其源码为getsyskey.cpp,用vc6直接打开编译即可。

getsyskey_cs.exe由.net2.0编译,源码为getsyskey.cs,用csc直接编译即可。

已知错误:

        JetAttachDatabase() failed
原因:数据库需要修复,执行esentutl /p /o ntds.dit进行修复。

附一张真实数据的测试图:
NTDS.dit密码快速提取工具

 

下载地址:

 下载点这里 ntdsdump

另:改完之后又看了看quarkspwdump的github,发现有人提交了个pull request:https://github.com/quarkslab/quarkspwdump/pull/3

其添加了一个加载system.hiv的功能,调用了RegLoadKey。而这个API必须要过UAC才行,所以用起来还是挺别扭的,不如这个直接读取文件进行处理来得痛快。

安全脉搏姿势

在2008+域控上使用 ntdsutil snapshot mount导出ntds.dit, SAM以及System ,

ntdsutil snapshot activate instance ntds create mount {GUID} copy c:/MOUNT_POINT/WINDOWS/NTDS/NTDS.dit c:/NTDS_saved.dit unmount {GUID} quit quit

然后就是各种copy了

在域控上使用 QuarksPwDump.exe 导出绝大部分明文:

QuarksPwDump.exe --dump-hash-domain --output SecPulseHash.txt --ntds-file c:/ntds.dit

下载回本地再用QuarksPwDump似乎就不行,主要因为本地无法指定SYSTEM文件导致获取不到key

附Quarks PWDump使用参数:

quarks-pwdump.exe <options>  Options :   -dhl  --dump-hash-local  -dhdc --dump-hash-domain-cached  -dhd  --dump-hash-domain (NTDS_FILE must be specified)  -db   --dump-bitlocker (NTDS_FILE must be specified)  -nt   --ntds-file FILE  -hist --with-history (optional)  -t    --output-type JOHN/LC (optional, if no=>JOHN)  -o    --output FILE (optional, if no=>stdout)  Example: quarks-pwdump.exe --dump-hash-domain --with-history

 

当然也可以把ntds.dit, SAM以及System下载回来(很多大内网 ntds就好几G,下载回来不太科学)用某工具解密 不过感觉有点庞大,现在我们可以使用NTDSDump.exe

NTDSDump.exe -f ntds.dit -s SYSTEM -o SecPulseHash.txt

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: