
AD Miner ist ein Active-Directory-Prüftool, das Cypher-Abfragen nutzt, um Daten aus der #Bloodhound-Graphdatenbank zu verarbeiten und Sicherheitsschwachstellen aufzudecken.
Funktionen der webbasierten Berichte:
Eine risikobasierte Bewertung von Active Directory-Schwachstellen sowie umfassende Behebungswege.
Suchleiste und Steuerelemente, die sorgfältig darauf abgestimmt sind, die riskantesten Fehlkonfigurationen zu identifizieren.
Sie können auch Indikatoren im Zeitverlauf beobachten, um die Effizienz von Gegenmaßnahmen zu messen.
AD Miner wurde ursprünglich von Forvis Mazars entwickelt und wird vom Grant Thornton Cybersecurity Audit & Advisory Team gewartet.
Um AD Miner auszuführen, benötigen Sie zunächst eine Neo4j-Datenbank, die die Active Directory-Objekte enthält:
[!CAUTION] Wir empfehlen dringend die Verwendung von BloodHound Automation, da es das Graph Data Science Neo4j-Plugin installiert, welches:
- die Berechnungszeit und die Gesamtleistung erheblich verbessert.
- die Verwendung von Smartest Path anstelle der integrierten Neo4j shortestPath() ermöglicht (d.h. Pfade, die einfacher auszunutzen sind als die geringsten Knotensprünge).
Für die Einrichtung Ihrer BloodHound-Umgebung (einschließlich GUI und Neo4j-Datenbank) wird BloodHound Automation aufgrund seiner nahtlosen Integration mit dem Graph Data Science-Plugin dringend empfohlen. Es ist zwar völlig in Ordnung, die Standardinstallation von BloodHound CE zu verwenden, aber beachten Sie, dass Ihnen die Vorteile von GDS entgehen (z. B. intelligenteres Pathfinding, verbesserte Ausführungsgeschwindigkeit usw.).
Standardmäßig erstellt BloodHound eine Neo4j-Basis, die über Port 7687 zugänglich ist.
Der einfachste Weg ist der folgende Befehl mit pipx:
pipx install 'git+https://github.com/AD-Security/AD_Miner.git'
ADMiner ist auch in einigen Linux-Distributionen verfügbar:
pacman -S ad-minernix-env -iA nixos.ad-minerEin Docker-Image ist zum Bauen verfügbar. Erstellen Sie das Image mit dem folgenden Befehl:
docker build -t ad-miner .
Um dies unter Windows mit den BloodHound Community Edition-Daten auszuführen, verwenden Sie die folgenden Befehle:
docker run -v ${PWD}:/tmp ad-miner AD-miner -b bolt://host.docker.internal:7687 -u neo4j -p mypassword -cf YOUR_PREFIX
Um dies unter Linux mit den BloodHound Community Edition-Daten auszuführen, verwenden Sie die folgenden Befehle:
docker run -v ${PWD}:/tmp --network host ad-miner AD-miner -b bolt://localhost:7687 -u neo4j -p mypassword -cf YOUR_PREFIX
Beachten Sie, dass das Einhängen des Volumes mit -v entscheidend ist, um die Ausgabe der Daten zu erhalten. Dies setzt voraus, dass der BHCE-Server mit den Standardeinstellungen auf dem Docker-Host läuft.
Führen Sie das Tool aus:
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]
Beispiel:
AD-miner -cf My_Report -u neo4j -p mypassword
Cache-Dateien werden nach Abschluss jeder Neo4j-Anfrage generiert. Diese Funktion ermöglicht es Ihnen, AD Miner jederzeit während seines Prozesses zu pausieren oder zu stoppen, ohne zuvor berechnete Ergebnisse zu verlieren. Um den Cache zu nutzen, verwenden Sie den Parameter -c. Die Cache-Dateien werden im Ordner cache_neo4j in Ihrem aktuellen Repository gespeichert. Damit der Cache verwendet wird, muss der Berichtsname mit dem Namenspräfix der Cache-Datei übereinstimmen:
AD-miner -c -cf My_Report -u neo4j -p mypassword
Um große Datensätze besser zu handhaben, ist es möglich, Multithreading zu aktivieren und auch einen Cluster von Neo4j-Datenbanken zu verwenden, wie im folgenden Beispiel gezeigt (wobei server1 32 Threads und server2 16 Threads verarbeitet):
AD-miner -c -cf My_Report -b bolt://server1:7687 -u neo4j -p mypassword --cluster server1:7687:32,server2:7687:16
Wenn die Kennwortverlängerungsrichtlinie bekannt ist, können Sie sie mit dem Parameter -r angeben, um sicherzustellen, dass die Kennwortverlängerungskontrollen mit den Einstellungen Ihrer Umgebung übereinstimmen (Standard ist 90 Tage). Wenn die Kennwortrichtlinie beispielsweise auf 180 Tage festgelegt ist, können Sie Folgendes verwenden: