
Ferramenta de Auditoria de Senhas de Domínio para Pentesters
O DPAT é uma ferramenta de segurança baseada em Python que analisa hashes de senhas extraídos de controladores de domínio do Active Directory. Ela gera relatórios HTML abrangentes mostrando estatísticas de uso de senhas, violações de políticas e insights de segurança a partir de dumps NTDS e resultados de quebra de senhas.



Instale as dependências principais:
pip install -r requirements.txt
Para desenvolvimento e testes:
pip install -r requirements-dev.txt
Se preferir instalar as dependências individualmente:
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: Arquivo NTDS (saída do secretsdump.py)-c, --crackfile: Arquivo de saída de quebra de senhas (hashcat.potfile, john.pot, etc.)-p, --minpasslen: Comprimento mínimo de senha da política de domínio-o, --outputfile: Nome do arquivo do relatório HTML (padrão: _DomainPasswordAuditReport.html)-d, --reportdirectory: Diretório de saída (padrão: "Relatório DPAT")-s, --sanitize: Sanitizar senhas e hashes nos relatórios-g, --groupsdirectory: Diretório contendo arquivos de associação a grupos-m, --machineaccts: Incluir contas de máquina na análise-k, --krbtgt: Incluir conta krbtgt na análise-kz, --kerbfile: Arquivo contendo contas Kerberoastáveis-w, --writedb: Escrever banco de dados SQLite no disco para inspeção--no-prompt: Pular prompt do navegador (útil para automação)-dbg, --debug: Habilitar saída de depuraçãoAnálise básica:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8
Com análise de grupos:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -g /caminho/para/grupos
Relatório sanitizado:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -s
Com contas Kerberoastáveis:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -kz kerberoastable.txt
O arquivo NTDS deve estar no formato de saída do secretsdump.py:
domínio\usuário:RID:lmhash:nthash:::
Formato Hashcat:
nthash:senha
lmhash:senha
Formato John the Ripper:
$NT$nthash:senha
$LM$lmhash:senha
Senhas codificadas em hexadecimal:
nthash:$HEX[68656c6c6f]
Os arquivos de associação a grupos devem conter um nome de usuário por linha:
domínio\usuário
Em um controlador de domínio, crie um backup IFM (Install From Media):
ntdsutil "ac in ntds" "ifm" "cr fu c:\temp" q q
Isso cria:
c:\temp\Active Directory\ntds.ditc:\temp\registry\SYSTEMUse o secretsdump.py para converter o backup:
secretsdump.py -system registry/SYSTEM -ntds "Active Directory/ntds.dit" LOCAL -outputfile customer
Para histórico de senhas (se disponível):
secretsdump.py -system registry/SYSTEM -ntds "Active Directory/ntds.dit" LOCAL -outputfile customer -history
Usando Hashcat:
hashcat -m 1000 customer.ntds /caminho/para/wordlist
Usando John the Ripper:
john --format=NT customer.ntds
O DPAT gera relatórios abrangentes incluindo:
O repositório inclui dados de exemplo no diretório sample_data/ para testes:
customer.ntds: Arquivo NTDS de exemplooclHashcat.pot: Senhas quebradas de exemplohistory/: Dados de exemplo com histórico de senhasTeste com os dados de exemplo:
python dpat.py -n sample_data/customer.ntds -c sample_data/oclHashcat.pot -p 8
Crie arquivos de associação a grupos usando PowerShell:
Get-NetGroupMember -Recurse -GroupName "Domain Admins" > "Domain Admins.txt"
Use o script parse-kerberoastable.py do CypherHound para gerar arquivos de contas Kerberoastáveis para análise aprimorada.
Você pode conectar arquivos gerados pelo CypherHound ao DPAT para fornecer mais estatísticas aos relatórios do DPAT. Atualmente, as estatísticas extras são:
Se você deseja utilizá-lo para fornecer essas estatísticas extras, precisará usar os scripts aqui:
-g.-kz.Eles são scripts simples com uso vinculado acima e usá-los deve ser direto.
Use a flag -s para criar relatórios sanitizados adequados para compartilhamento:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -s
"No module named 'distutils'"
Relatórios vazios
Links de detalhes ausentes
Habilite a saída de depuração para solução de problemas:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -dbg
Execute a suíte de testes:
python -m unittest tests.unit.test_core -v
python -m unittest tests.integration.test_integration -v
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
Para problemas, dúvidas ou contribuições, utilize o rastreador de issues do GitHub.