
AD Miner è uno strumento di audit per Active Directory che sfrutta query cypher per elaborare dati dal database di grafi #Bloodhound per scoprire debolezze di sicurezza.
Caratteristiche dei report basati sul web:
Una valutazione basata sul rischio delle debolezze di Active Directory, insieme a percorsi di mitigazione completi.
Barra di ricerca e controlli attentamente progettati per identificare le configurazioni errate più rischiose.
Puoi anche osservare gli indicatori nel tempo per aiutare a misurare l'efficacia della mitigazione.
AD Miner è stato inizialmente creato da Forvis Mazars ed è mantenuto dal team di Cybersecurity Audit & Advisory di Grant Thornton.
Per eseguire AD Miner, è necessario prima un database neo4j che contenga gli oggetti di Active Directory:
[!CAUTION] Raccomandiamo vivamente di utilizzare BloodHound Automation, poiché installa il plugin Graph Data Science di Neo4j, che:
- migliora notevolmente il tempo di calcolo e le prestazioni generali.
- abilita l'uso di Smartest Path invece della funzione built-in shortestPath() di Neo4j (cioè, Percorsi più facili da sfruttare piuttosto che con il minimo numero di nodi).
Per configurare il tuo ambiente BloodHound (inclusi GUI e database Neo4j), BloodHound Automation è altamente raccomandato per la sua integrazione perfetta con il plugin Graph Data Science. Anche se è perfettamente possibile utilizzare l'installazione predefinita di BloodHound CE, tieni presente che perderai i vantaggi di GDS (ad esempio, pathfinding più intelligente, velocità di esecuzione migliorata, ecc.).
Per impostazione predefinita, BloodHound crea un database neo4j accessibile sulla porta 7687.
Il modo più semplice è eseguire il seguente comando usando pipx:
pipx install 'git+https://github.com/AD-Security/AD_Miner.git'
ADMiner è disponibile anche su alcune distribuzioni Linux:
pacman -S ad-minernix-env -iA nixos.ad-minerUn'immagine Docker è disponibile per la creazione. Costruisci l'immagine con il seguente comando:
docker build -t ad-miner .
Per eseguirlo su Windows con i dati di BloodHound Community Edition, utilizza i comandi seguenti:
docker run -v ${PWD}:/tmp ad-miner AD-miner -b bolt://host.docker.internal:7687 -u neo4j -p mypassword -cf YOUR_PREFIX
Per eseguirlo su Linux con i dati di BloodHound Community Edition, utilizza i comandi seguenti:
docker run -v ${PWD}:/tmp --network host ad-miner AD-miner -b bolt://localhost:7687 -u neo4j -p mypassword -cf YOUR_PREFIX
Nota che montare il volume con -v è fondamentale per ottenere l'output dei dati. Questo presuppone che il server BHCE sia in esecuzione sull'host Docker con le impostazioni predefinite.
Esegui lo strumento:
AD-miner [-h] [-b BOLT] [-u USERNAME] [-p PASSWORD] [-e EXTRACT_DATE] [-r RENEWAL_PASSWORD] [-a] [-c] [-l LEVEL] -cf CACHE_PREFIX [-ch NB_CHUNKS] [-co NB_CORES] [--rdp] [--evolution EVOLUTION] [--cluster CLUSTER]
Esempio:
AD-miner -cf My_Report -u neo4j -p mypassword
I file cache vengono generati al completamento di ogni richiesta Neo4j. Questa funzionalità permette di mettere in pausa o fermare AD Miner in qualsiasi punto del processo senza perdere i risultati precedentemente calcolati. Per sfruttare la cache, utilizza il parametro -c. I file cache sono memorizzati nella cartella cache_neo4j nella tua directory corrente. Affinché la cache venga utilizzata, il nome del report deve corrispondere al prefisso del nome del file cache:
AD-miner -c -cf My_Report -u neo4j -p mypassword
Per gestire meglio set di dati di grandi dimensioni, è possibile abilitare il multi-threading e anche utilizzare un cluster di database neo4j, come mostrato nell'esempio seguente (dove server1 gestisce 32 thread e server2 ne gestisce 16):
AD-miner -c -cf My_Report -b bolt://server1:7687 -u neo4j -p mypassword --cluster server1:7687:32,server2:7687:16
Se la politica di rinnovo della password è nota, è possibile specificarla utilizzando il parametro -r per garantire che i controlli di rinnovo della password siano allineati con le impostazioni del tuo ambiente (il valore predefinito è 90 giorni). Ad esempio, se la politica password è impostata a 180 giorni, puoi utilizzare il seguente comando: