DPAT 是一款基于 Python 的安全工具,用于分析从 Active Directory 域控制器中提取的密码哈希。它能够生成全面的 HTML 报告,展示密码使用统计信息、策略违规情况以及从 NTDS 转储和密码破解结果中获得的安全洞察。



安装核心依赖:
pip install -r requirements.txt
用于开发和测试:
pip install -r requirements-dev.txt
如果你更喜欢逐个安装依赖:
pip install pycryptodome
poetry install
python dpat.py -n customer.ntds -c hashcat.potfile -p 8
python dpat.py -n <ntds_file> -c <cracked_file> -p <min_password_length>
-n, --ntdsfile:NTDS 文件(secretsdump.py 的输出)-c, --crackfile:密码破解输出文件(hashcat.potfile、john.pot 等)-p, --minpasslen:域策略规定的最小密码长度-o, --outputfile:HTML 报告文件名(默认:_DomainPasswordAuditReport.html)-d, --reportdirectory:输出目录(默认:"DPAT Report")-s, --sanitize:脱敏报告中的密码和哈希-g, --groupsdirectory:包含组成员文件的目录-m, --machineaccts:在分析中包含计算机帐户-k, --krbtgt:在分析中包含 krbtgt 帐户-kz, --kerbfile:包含可 Kerberoast 帐户的文件-w, --writedb:将 SQLite 数据库写入磁盘供检查--no-prompt:跳过浏览器提示(适用于自动化)-dbg, --debug:启用调试输出基本分析:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8
带组分析:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -g /path/to/groups
脱敏报告:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -s
带 Kerberoastable 帐户:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -kz kerberoastable.txt
NTDS 文件应采用 secretsdump.py 输出的格式:
domain\username:RID:lmhash:nthash:::
Hashcat 格式:
nthash:password
lmhash:password
John the Ripper 格式:
$NT$nthash:password
$LM$lmhash:password
十六进制编码的密码:
nthash:$HEX[68656c6c6f]
组成员文件每行应包含一个用户名:
domain\username
在域控制器上创建 IFM(从媒体安装)备份:
ntdsutil "ac in ntds" "ifm" "cr fu c:\temp" q q
这将创建:
c:\temp\Active Directory\ntds.ditc:\temp\registry\SYSTEM使用 secretsdump.py 转换备份:
secretsdump.py -system registry/SYSTEM -ntds "Active Directory/ntds.dit" LOCAL -outputfile customer
对于密码历史(如果有):
secretsdump.py -system registry/SYSTEM -ntds "Active Directory/ntds.dit" LOCAL -outputfile customer -history
使用 Hashcat:
hashcat -m 1000 customer.ntds /path/to/wordlist
使用 John the Ripper:
john --format=NT customer.ntds
DPAT 生成包含以下内容的全面报告:
仓库的 sample_data/ 目录中包含用于测试的示例数据:
customer.ntds:示例 NTDS 文件oclHashcat.pot:示例破解密码history/:包含密码历史的示例数据使用示例数据进行测试:
python dpat.py -n sample_data/customer.ntds -c sample_data/oclHashcat.pot -p 8
使用 PowerShell 创建组成员文件:
Get-NetGroupMember -Recurse -GroupName "Domain Admins" > "Domain Admins.txt"
使用 CypherHound 的 parse-kerberoastable.py 脚本生成可 Kerberoast 帐户文件,以增强分析。
你可以将 CypherHound 生成的文件导入 DPAT,以便为 DPAT 报告提供更多统计信息。目前,额外的统计信息包括:
如果你想利用它提供这些额外统计信息,需要使用以下脚本:
-g 标志传递给 DPAT。-kz 标志传递给 DPAT。它们是简单的脚本,使用链接如上,使用起来应该很直接。
使用 -s 标志创建适合共享的脱敏报告:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -s
"No module named 'distutils'"
空报告
缺少详情链接
启用调试输出以进行故障排除:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -dbg
运行测试套件:
python -m unittest tests.unit.test_core -v
python -m unittest tests.integration.test_integration -v
本项目采用 MIT 许可证 - 详情请查看 LICENSE 文件。
如有问题、疑问或贡献,请使用 GitHub 问题跟踪器。