
Инструмент аудита паролей домена для пентестеров
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: файл с Kerberoastable учётными записями-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 (Install From Media):
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: пример файла NTDSoclHashcat.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"
Используйте скрипт parse-kerberoastable.py из CypherHound для генерации файлов Kerberoastable учётных записей для расширенного анализа.
Вы можете передавать в DPAT файлы, сгенерированные CypherHound, чтобы добавить больше статистики в отчёты DPAT. В настоящее время дополнительные статистики включают:
Если вы хотите использовать это для получения дополнительной статистики, вам потребуются следующие скрипты:
-g.-kz.Это простые скрипты, ссылки на использование приведены выше; их использование должно быть очевидным.
Используйте флаг -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.