
Werkzeugsammlung für BloodHound, die Domänen-Passwort-Auditing, Privilegienpfad-Analyse, Kantenmanipulation und benutzerdefinierte Cypher-Abfragen ermöglicht, um die Kartierung der Angriffsfläche von Active Directory zu maximieren.
Neue Veröffentlichung:
Eine einfache Werkzeugsammlung:
Dies wurde mit Screenshots und Anwendungsfällen in den folgenden Blogs veröffentlicht: Max Release, Updates & Primitives & DPAT
Im Rahmen meiner Forschung wurde diesem Tool eine neue potenzielle Angriffsprimitive hinzugefügt. Siehe den Abschnitt add-spns für vollständige Details.
Idealerweise sollte nicht viel zu installieren sein, aber ich habe für alle Fälle eine requirements.txt-Datei beigefügt. Getestet auf Kali Linux und Windows 10. Die gesamte Funktionalität sollte sowohl unter Linux als auch unter Windows funktionieren.
pip3 install -r requirements.txt
Neo4j-Anmeldedaten können am Anfang des Skripts fest codiert, als CLI-Argumente bereitgestellt oder als Umgebungsvariablen gespeichert werden. Wenn einer der beiden Parameter leer bleibt, wirst du nach dem Benutzernamen/Passwort gefragt. Zur Verwendung von Umgebungsvariablen ist es wahrscheinlich am einfachsten, eine Zeile (z. B. export NEO4J_USERNAME='neo4j') in ~/.bashrc oder ~/.zshrc einzufügen, um den Benutzernamen zu speichern, da dieser nicht wirklich sensibel ist. Das Datenbankpasswort kann im Tab der Shell vor dem Ausführen von Max gesetzt werden. Ein Leerzeichen vor dem export-Befehl sollte verhindern, dass dieser im Verlauf erscheint.
export NEO4J_PASSWORD='bloodhound' # Beachte das Leerzeichen vor 'export'
python3 max.py {module} {args}
python3 max.py -u neo4j -p neo4j {module} {args}
python3 max.py {module} {args}
Neo4j Username: neo4j
Neo4j Password:
Allgemeine Hilfe sowie modulespezifische Hilfe erhalten
python3 max.py -h
python3 max.py {module} -h
Importieren von Owned-Objekten in BH
python3 max.py mark-owned -f owned.txt
python3 max.py mark-owned -f owned.txt --add-note "Owned by repeated local admin"
Liste der Benutzer abrufen
python3 max.py get-info --users
python3 max.py get-info --users --enabled
[email protected]
[email protected]
...
Liste der Objekte in einer Zielgruppe abrufen
python3 max.py get-info --group-members "domain [email protected]"
Liste der Computer abrufen, auf die ein Benutzer Administratorrechte hat
python3 max.py get-info --adminto [email protected]
Liste der Owned-Objekte mit Notizen für jedes abrufen
python3 max.py get-info --owned --get-note
Eine Abfrage ausführen – eine Liste aller Benutzer mit einem Pfad zu DA zurückgeben
python3 max.py query -q "MATCH (n:User),(m:Group {name:'DOMAIN [email protected]'}) MATCH (n)-[*1..]->(m) RETURN DISTINCT(n.name)"
Eine Kante aus der Datenbank löschen
python3 max.py del-edge CanRDP
HasSPNConfigured-Beziehung hinzufügen unter Verwendung der in BloodHound gespeicherten Informationen oder einer GetUserSPNs-Impacket-Datei
python3 max.py add-spns -b
python3 max.py add-spns -i getuserspns-raw-output.txt
DPAT
python3 max.py dpat -n ~/client/ntds.dit -c ~/.hashcat/hashcat.potfile -o ouputdir --html --sanitize
Pet max
python3 max.py pet-max
Objekte in einer Datei müssen den vollqualifizierten Domänennamen (FQDN) enthalten; die Groß-/Kleinschreibung spielt keine Rolle. Dies gilt auch, wenn ein CLI-Benutzername/Computername angegeben wird.
[email protected] <- wird hinzugefügt / korrekte CLI-Eingabe
[email protected] <- wird hinzugefügt / korrekte CLI-Eingabe
computer01.domain.local <- wird hinzugefügt / korrekte CLI-Eingabe
ComPutEr01.doMAIn.LOcaL <- wird hinzugefügt / korrekte CLI-Eingabe
user02 <- wird nicht hinzugefügt / falsche CLI-Eingabe
computer02 <- wird nicht hinzugefügt / falsche CLI-Eingabe
Ich hoffe, eine analyze-Funktion einzubauen, die eine ähnliche Funktionalität wie PlumHound/Cypheroth bietet. Schließlich denke ich darüber nach, eine PowerShell-Version für diejenigen zu erstellen, die Neo4j unter Windows betreiben, aber ich bin in PowerShell nicht besonders gut, also steht noch nicht fest.
Weitere Funktionen und Verbesserungen sind willkommen. Ihr findet mich unter @knavesec im BloodHoundGang-Slack-Kanal und auf Twitter.
Ich möchte mich besonders bei denen bedanken, die ihre Zeit für die Entwicklung und Verbesserung dieses Tools aufgewendet haben: