
Domänen-Passwort-Audit-Tool für Pentester
DPAT ist ein Python-basiertes Sicherheitstool, das aus Active Directory-Domänencontrollern extrahierte Passwort-Hashes analysiert. Es erzeugt umfassende HTML-Berichte, die Passwortnutzungsstatistiken, Richtlinienverstöße und Sicherheitseinblicke aus NTDS-Dumps und Passwort-Cracking-Ergebnissen zeigen.



Kernabhängigkeiten installieren:
pip install -r requirements.txt
Für Entwicklung und Tests:
pip install -r requirements-dev.txt
Wenn Sie Abhängigkeiten einzeln installieren möchten:
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-Datei (Ausgabe von secretsdump.py)-c, --crackfile: Ausgabedatei des Passwort-Crackings (hashcat.potfile, john.pot, etc.)-p, --minpasslen: Minimale Passwortlänge aus der Domänenrichtlinie-o, --outputfile: HTML-Berichtsdateiname (Standard: _DomainPasswordAuditReport.html)-d, --reportdirectory: Ausgabeverzeichnis (Standard: "DPAT Report")-s, --sanitize: Passwörter und Hashes in Berichten bereinigen-g, --groupsdirectory: Verzeichnis mit Gruppenmitgliedschaftsdateien-m, --machineaccts: Maschinenkonten in die Analyse einbeziehen-k, --krbtgt: krbtgt-Konto in die Analyse einbeziehen-kz, --kerbfile: Datei mit kerberoastbaren Konten-w, --writedb: SQLite-Datenbank zur Überprüfung auf die Festplatte schreiben--no-prompt: Browseraufforderung überspringen (nützlich für Automatisierung)-dbg, --debug: Debug-Ausgabe aktivierenEinfache Analyse:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8
Mit Gruppenanalyse:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -g /path/to/groups
Bereinigter Bericht:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -s
Mit kerberoastbaren Konten:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -kz kerberoastable.txt
Die NTDS-Datei sollte im von secretsdump.py ausgegebenen Format vorliegen:
domain\username:RID:lmhash:nthash:::
Hashcat-Format:
nthash:password
lmhash:password
John the Ripper-Format:
$NT$nthash:password
$LM$lmhash:password
Hex-kodierte Passwörter:
nthash:$HEX[68656c6c6f]
Gruppenmitgliedschaftsdateien sollten einen Benutzernamen pro Zeile enthalten:
domain\username
Erstellen Sie auf einem Domänencontroller ein IFM-Backup (Install From Media):
ntdsutil "ac in ntds" "ifm" "cr fu c:\temp" q q
Dies erstellt:
c:\temp\Active Directory\ntds.ditc:\temp\registry\SYSTEMVerwenden Sie secretsdump.py, um das Backup zu konvertieren:
secretsdump.py -system registry/SYSTEM -ntds "Active Directory/ntds.dit" LOCAL -outputfile customer
Für Passwortverlauf (falls verfügbar):
secretsdump.py -system registry/SYSTEM -ntds "Active Directory/ntds.dit" LOCAL -outputfile customer -history
Mit Hashcat:
hashcat -m 1000 customer.ntds /path/to/wordlist
Mit John the Ripper:
john --format=NT customer.ntds
DPAT erzeugt umfassende Berichte, die Folgendes enthalten:
Das Repository enthält Beispieldaten im Verzeichnis sample_data/ zum Testen:
customer.ntds: Beispiel-NTDS-DateioclHashcat.pot: Beispiel für geknackte Passwörterhistory/: Beispieldaten mit PasswortverlaufTest mit Beispieldaten:
python dpat.py -n sample_data/customer.ntds -c sample_data/oclHashcat.pot -p 8
Erstellen Sie Gruppenmitgliedschaftsdateien mit PowerShell:
Get-NetGroupMember -Recurse -GroupName "Domain Admins" > "Domain Admins.txt"
Verwenden Sie das Skript parse-kerberoastable.py von CypherHound, um Dateien mit kerberoastbaren Konten für eine erweiterte Analyse zu generieren.
Sie können von CypherHound generierte Dateien in DPAT einbinden, um den DPAT-Berichten weitere Statistiken hinzuzufügen. Derzeit sind die zusätzlichen Statistiken:
Wenn Sie dies zur Bereitstellung dieser zusätzlichen Statistiken nutzen möchten, müssen Sie die folgenden Skripte verwenden:
-g an DPAT.-kz an DPAT.Es handelt sich um einfache Skripte, deren Verwendung oben verlinkt ist und die unkompliziert sein sollten.
Verwenden Sie das Flag -s, um bereinigte Berichte zu erstellen, die zur Weitergabe geeignet sind:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -s
"No module named 'distutils'"
Leere Berichte
Fehlende Detail-Links
Debug-Ausgabe zur Fehlerbehebung aktivieren:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -dbg
Test-Suite ausführen:
python -m unittest tests.unit.test_core -v
python -m unittest tests.integration.test_integration -v
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die LICENSE-Datei für Details.
Bei Problemen, Fragen oder Beiträgen nutzen Sie bitte den GitHub-Issue-Tracker.