DPAT:域密码导出可用于Hashcat破解

这个工具其实就是一个python脚本,它搜集在密码破解的过程中从域控dump出的密码hash,还有从由oclHashcat工具生成的oclHashcat.pot密码破解文件中的信息。它生成的报告是一个包含一些链接的HTML文件。

你可以这样运行这个python脚本:

dpat.py -n customer.ntds -c oclHashcat.pot -g "Domain Admins.txt" "Enterprise Admins.txt"
注意末尾的 -g "Domain Admins.txt "Enterprise Admins.txt" 是可选的。你可以使用项目中的sample_data 目录中的sample文件试一下这个功能。sample数据都是从著名的rockyou字典文件中提取的姓、名以及密码。
customer.ntds 文件内容应该是这样的格式:

domainusername:RID:lmhash:nthash:::
你可以在域控管理员的命令行中执行以下命令,然后dump出密码hash,然后就可以得到这个文件了。不过得保证你有足够的存储空间存储输出在c:temp 目录下的文件。因为需要的存储空间量可能比当前的ntds.dit文件略微大一些,因为这个命令会备份ntds.dit文件而且还要添加一些设置信息。

ntdsutil "ac in ntds" "ifm" "cr fu c:temp" q q
还可以用secretsdump.py这个工具转换一下输出的格式。

secretsdump.py -system registry/SYSTEM -ntds Active Directory/ntds.dit LOCAL -outputfile customer
以上命令会生成一个customer.ntds 文件,然后你就可以用本文这个dpat.py工具来破解密码啦!
你的oclHashcat文件格式应该是这样的(其实就是oclHashcat的默认输出格式):

nthash:password
对于LM Hash就是

lmhashLeftOrRight:leftOrRightHalfPasswordUpcased
DPAT工具还支持来自JohnTheRipper的输出(格式跟oclHashcat.pot差不多,只是加了$NT$和$LM$)。
可选的"-g"选项后面跟的是多个文件列表,其内容为特定组(比如"Enterprise Admins" 或者 "Domain Admins")中的用户列表。这个文件的格式可以就是PowerView PowerShell脚本 生成的文件格式。

Get-NetGroupMember -Recurse -GroupName "Domain Admins" > "Domain Admins.txt"
或者你还可以用以下命令从其他域读取组(注意其他域和域控的名字可以通过Get-NetForestDomain得到)。

Get-NetGroupMember -Recurse -GroupName "Enterprise Admins" -Domain "some.domain.com" -DomainController "DC01.some.domain.com" > "Enterprise Admins.txt"
或者组文件内容可以直接就是用户列表,一行一个。格式如下:

domainusername
此外,DPAT工具还有一个实用的功能,它可以在NT hash未被破解的情况下破解LM hash。当然前提是你已经用oclHashcat破解了所有的7个字符密码。

./oclHashcat64.bin -m 3000 -a 3 customer.ntds -1 ?a ?1?1?1?1?1?1?1 --increment
或者用JohnTheRipper破解LM hash

john --format=LM customer.ntds
查看所有DPAT的选项可以用-h 和 --help 选项。
usage: dpat.py [-h] -n NTDSFILE -c CRACKFILE [-o OUTPUTFILE]
               [-d REPORTDIRECTORY] [-w] [-s]
               [-g [GROUPLISTS [GROUPLISTS ...]]]
这个脚本会根据NTDS文件以及从密码破解工具(如oclHashcat)的输出中提取出来的内容进行域密码审计。
可用选项如下: