
Suite di strumenti per BloodHound che consente l'auditing delle password di dominio, l'analisi dei percorsi dei privilegi, la manipolazione degli edge e query Cypher personalizzate per massimizzare la mappatura della superficie di attacco di Active Directory.
Nuova release:
Una semplice suite di strumenti:
Questa release è stata presentata con screenshot e casi d'uso nei seguenti blog: Max Release, Updates & Primitives e DPAT
Una nuova potenziale primitiva di attacco è stata aggiunta a questo strumento durante la mia ricerca; vedere la sezione add-spns per i dettagli completi.
Idealmente non dovrebbe esserci molto da installare, ma ho incluso un file requirements.txt per ogni evenienza. Testato su Kali Linux e Windows 10, tutte le funzionalità dovrebbero funzionare sia su sistemi operativi Linux che Windows.
pip3 install -r requirements.txt
Le credenziali Neo4j possono essere codificate all'inizio dello script, fornite come argomenti da riga di comando o memorizzate come variabili d'ambiente. Se uno dei parametri viene lasciato vuoto, ti verrà richiesto il nome utente/password. Per utilizzare le variabili d'ambiente, è probabilmente più semplice aggiungere una riga (ad es. export NEO4J_USERNAME='neo4j') all'interno di ~/.bashrc o ~/.zshrc per memorizzare il nome utente, poiché non è realmente sensibile. La password del database può essere impostata nella scheda del tuo shell prima di eseguire Max. Aggiungere uno spazio prima del comando export dovrebbe impedire che appaia nella cronologia.
export NEO4J_PASSWORD='bloodhound' # Nota lo spazio bianco prima di 'export'
python3 max.py {modulo} {argomenti}
python3 max.py -u neo4j -p neo4j {modulo} {argomenti}
python3 max.py {modulo} {argomenti}
Neo4j Username: neo4j
Neo4j Password:
Ottenere aiuto in generale e specifico per modulo
python3 max.py -h
python3 max.py {modulo} -h
Importare oggetti posseduti in BH
python3 max.py mark-owned -f owned.txt
python3 max.py mark-owned -f owned.txt --add-note "Posseduto tramite amministratore locale ripetuto"
Ottenere elenco di utenti
python3 max.py get-info --users
python3 max.py get-info --users --enabled
[email protected]
[email protected]
...
Ottenere elenco di oggetti in un gruppo target
python3 max.py get-info --group-members "domain [email protected]"
Ottenere un elenco di computer su cui un utente ha diritti amministrativi
python3 max.py get-info --adminto [email protected]
Ottenere un elenco di oggetti posseduti con le relative note
python3 max.py get-info --owned --get-note
Eseguire una query - restituire un elenco di tutti gli utenti con un percorso verso DA
python3 max.py query -q "MATCH (n:User),(m:Group {name:'DOMAIN [email protected]'}) MATCH (n)-[*1..]->(m) RETURN DISTINCT(n.name)"
Eliminare un arco dal database
python3 max.py del-edge CanRDP
Aggiungere relazione HasSPNConfigured utilizzando le informazioni memorizzate in BloodHound, o con un file GetUserSPNs di impacket
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 outputdir --html --sanitize
Pet max
python3 max.py pet-max
Gli oggetti nel file devono contenere il FQDN; la capitalizzazione non ha importanza. Questo vale anche quando viene fornito un nome utente/nome computer tramite CLI.
[email protected] <- verrà aggiunto / input CLI corretto
[email protected] <- verrà aggiunto / input CLI corretto
computer01.domain.local <- verrà aggiunto / input CLI corretto
ComPutEr01.doMAIn.LOcaL <- verrà aggiunto / input CLI corretto
user02 <- non verrà aggiunto / input CLI errato
computer02 <- non verrà aggiunto / input CLI errato
Spero di includere una funzione analyze per fornire una sorta di funzionalità simile a PlumHound/Cypheroth. Infine, sto pensando di creare una versione PowerShell per chi esegue Neo4j su Windows, ma sono pessimo con PowerShell, quindi da decidere.
Altre funzionalità e miglioramenti sono benvenuti, trovami @knavesec nel canale Slack BloodHoundGang e su Twitter.
Vorrei ringraziare in particolare coloro che hanno contribuito con il loro tempo allo sviluppo e al miglioramento di questo strumento: