
Strumento di audit delle password di dominio per pentester
DPAT è uno strumento di sicurezza basato su Python che analizza gli hash delle password estratti dai controller di dominio Active Directory. Genera report HTML completi che mostrano statistiche sull'uso delle password, violazioni delle policy e approfondimenti sulla sicurezza, sia da dump NTDS che da risultati di cracking delle password.



Installa le dipendenze principali:
pip install -r requirements.txt
Per sviluppo e test:
pip install -r requirements-dev.txt
Se preferisci installare le dipendenze singolarmente:
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: File NTDS (output da secretsdump.py)-c, --crackfile: File di output del cracking delle password (hashcat.potfile, john.pot, ecc.)-p, --minpasslen: Lunghezza minima della password dalla policy di dominio-o, --outputfile: Nome del file HTML del report (predefinito: _DomainPasswordAuditReport.html)-d, --reportdirectory: Directory di output (predefinito: "DPAT Report")-s, --sanitize: Anonimizza password e hash nei report-g, --groupsdirectory: Directory contenente i file di appartenenza ai gruppi-m, --machineaccts: Includi account macchina nell'analisi-k, --krbtgt: Includi account krbtgt nell'analisi-kz, --kerbfile: File contenente account Kerberoastable-w, --writedb: Scrive il database SQLite su disco per ispezione--no-prompt: Salta il prompt del browser (utile per automazione)-dbg, --debug: Abilita output di debugAnalisi base:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8
Con analisi dei gruppi:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -g /path/to/groups
Report anonimizzato:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -s
Con account Kerberoastable:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -kz kerberoastable.txt
Il file NTDS deve essere nel formato prodotto da secretsdump.py:
domain\username:RID:lmhash:nthash:::
Formato Hashcat:
nthash:password
lmhash:password
Formato John the Ripper:
$NT$nthash:password
$LM$lmhash:password
Password codificate in esadecimale:
nthash:$HEX[68656c6c6f]
I file di appartenenza ai gruppi devono contenere un nome utente per riga:
domain\username
Su un controller di dominio, crea un backup IFM (Install From Media):
ntdsutil "ac in ntds" "ifm" "cr fu c:\temp" q q
Questo crea:
c:\temp\Active Directory\ntds.ditc:\temp\registry\SYSTEMUsa secretsdump.py per convertire il backup:
secretsdump.py -system registry/SYSTEM -ntds "Active Directory/ntds.dit" LOCAL -outputfile customer
Per la cronologia password (se disponibile):
secretsdump.py -system registry/SYSTEM -ntds "Active Directory/ntds.dit" LOCAL -outputfile customer -history
Usando Hashcat:
hashcat -m 1000 customer.ntds /path/to/wordlist
Usando John the Ripper:
john --format=NT customer.ntds
DPAT genera report completi che includono:
Il repository include dati di esempio nella directory sample_data/ per test:
customer.ntds: File NTDS di esempiooclHashcat.pot: Password craccate di esempiohistory/: Dati di esempio con cronologia passwordTest con dati di esempio:
python dpat.py -n sample_data/customer.ntds -c sample_data/oclHashcat.pot -p 8
Crea file di appartenenza ai gruppi usando PowerShell:
Get-NetGroupMember -Recurse -GroupName "Domain Admins" > "Domain Admins.txt"
Usa lo script parse-kerberoastable.py di CypherHound per generare file di account Kerberoastable per un'analisi avanzata.
Puoi inserire in DPAT file generati da CypherHound per fornire più statistiche ai report DPAT. Attualmente, le statistiche aggiuntive sono:
Se desideri utilizzarlo per queste statistiche aggiuntive, dovrai utilizzare gli script qui:
-g.-kz.Sono script semplici con utilizzo collegato sopra e usarli dovrebbe essere immediato.
Usa il flag -s per creare report anonimizzati adatti alla condivisione:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -s
"No module named 'distutils'"
Report vuoti
Link dettagli mancanti
Abilita l'output di debug per la risoluzione dei problemi:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -dbg
Esegui la suite di test:
python -m unittest tests.unit.test_core -v
python -m unittest tests.integration.test_integration -v
Questo progetto è concesso in licenza sotto la MIT License - vedi il file LICENSE per i dettagli.
Per problemi, domande o contributi, usa il tracker delle issue di GitHub.