
Analizza gli snapshot di AD Explorer in JSON o NDJSON compatibili con BloodHound per la ricognizione di Active Directory e la mappatura dei percorsi di attacco.
ADExplorerSnapshot.py è un parser di snapshot di AD Explorer. È realizzato come ingestor per BloodHound tramite BOFHound e supporta anche il dump completo degli oggetti in NDJSON.
AD Explorer ti permette di connetterti a un DC e navigare nei dati LDAP. Può anche creare snapshot del server a cui sei attualmente connesso. Questo strumento ti consente di convertire tali snapshot nel formato BOFHound o in file JSON compatibili con BloodHound, oppure di esportare tutti gli oggetti disponibili nello snapshot in NDJSON per un'elaborazione più semplice.

In modalità di output BOFHound, tutti gli attributi per ogni oggetto vengono analizzati e inviati in formato BOFHound (simile a LDIF). Questo formato può poi essere elaborato con BOFHound:
In modalità di output Objects, tutti gli attributi per ogni oggetto vengono analizzati e inviati in formato NDJSON.
In modalità di output BloodHound (deprecata a favore della conversione BOFHound più completa):
Gli snapshot di AD Explorer contengono solo informazioni recuperabili dal server LDAP. Ciò significa che funzionalità come la raccolta di sessioni e admin locali non sono disponibili, poiché questo strumento non interagisce con i sistemi sulla rete. Avrai a disposizione solo i dati del LDAP/DC su cui hai eseguito lo snapshot.
In modalità BOFHound, tutti i dati vengono convertiti nel formato BOFHound e rappresentano l'approccio di raccolta più completo.
In modalità BloodHound, l'ingestor elabora tutti i dati possibili dallo snapshot (incluse le ACL), ma restituisce solo i dati JSON che possono essere interpretati da BloodHound. Mancano le raccolte GPO/OU.
La raccolta trust contiene la vista visibile dal DC LDAP a cui sei connesso.
ADExplorerSnapshot.py supporta Python 3.12+. Le dipendenze sono gestite tramite pip.
Puoi eseguire direttamente lo strumento con uvx (se mancante: pip install uvx).
uvx git+https://github.com/c3c/ADExplorerSnapshot
usage: ADExplorerSnapshot.py [-h] [-o OUTPUT] [-m {BOFHound,BloodHound,Objects}] snapshot
AD Explorer snapshot ingestor for BloodHound
positional arguments:
snapshot Path to the snapshot .dat file.
options:
-h, --help show this help message and exit
-o, --output OUTPUT Path to the *.json output folder. Folder will be created if it doesn't exist. Defaults to the current directory.
-m, --mode {BOFHound,BloodHound,Objects}
The output mode to use. Defaults to BOFHound output mode, which can then be used with BOFHound. Can also directly output to BloodHound JSON output files (with limitations). In Objects
mode all objects with all attributes are outputted to NDJSON.
La modalità di output BOFHound è quella preferita. Puoi quindi utilizzare lo strumento BOFHound per importare i dati in BloodHound.
Invocazione tipica:
uvx git+https://github.com/c3c/ADExplorerSnapshot -m BOFHound snapshot.dat
uvx bofhound -i ./dc.server.com_1234567890_bofhound.log -o output


I template di certificati possono essere importati nel formato BloodHound o nel formato BloodHound-ly4k.
Se usi la versione normale di BloodHound, dovresti importare solo il file JSON cert_bh (che vengono importati come GPO).
Se usi il fork di ly4k, importa invece i file cert_ly4k. Alcune informazioni verranno omesse (ad es. per ESC8 se il Web Enrollment è abilitato) poiché non possono essere raccolte con AD Explorer.
Creare snapshot in AD Explorer richiede più traffico di rete rispetto ai tradizionali ingestors di BloodHound, poiché tenta di recuperare tutti gli oggetti possibili dal LDAP.
ADExplorerSnapshot.py crea cache di informazioni per ricerche più rapide durante l'elaborazione dei dati. Soprattutto quando si elaborano snapshot di grandi dimensioni (ad es. 4 GB+), sarà necessaria anche una quantità sufficiente di RAM. Nei miei test, circa la metà della dimensione del file dello snapshot era richiesta in RAM.
La libreria è stata testata con diversi set di dati; segnala un problema in caso di difficoltà.
Il parser di snapshot di AD Explorer è implementato come modulo autonomo, che può essere utilizzato anche singolarmente.
Il formato in cui gli snapshot vengono salvati da AD Explorer è proprietario e ha portato a un divertente percorso di reverse engineering. In questo repository è incluso un modello per l'editor 010, che ho utilizzato per mappare iterativamente il contenuto dello snapshot in struct.
Per la modalità di output BloodHound, questa libreria supporta il formato di output BloodHound v6. Le versioni precedenti erano supportate nei commit precedenti, se ancora necessarie. Per il vecchio formato di output v3, puoi utilizzare il codice nel ramo v3-format.
Da un punto di vista OPSEC, AD Explorer è uno strumento Microsoft legittimo. Quando si esegue uno snapshot, vengono effettuate solo query limitate al server LDAP (objectGuid=*). Tuttavia, il set di risultati è enorme poiché vengono recuperati tutti gli oggetti e i loro attributi associati. Ciò comporta un output piuttosto voluminoso.
Il rilevamento di questo strumento è possibile in diversi modi, per i quali si rimanda all'ottimo post del blog di FalconForce: FalconFriday — Detecting Active Directory Data Collection — 0xFF21.
Questo codice è concesso in licenza sotto la licenza MIT e utilizza codice anch'esso concesso sotto licenza MIT.
ADExplorerSnapshot.py si basa sui seguenti progetti:
Crediti:
Grazie a Deloitte per aver fornito l'ambiente in cui questo strumento è stato sviluppato.