
Identifizieren Sie die Angriffspfade in BloodHound, die Ihr AD-Stufenmodell durchbrechen.
Identifizieren Sie die Angriffspfade in BloodHound, die Ihr AD-Tiering verletzen
ImproHound ist eine eigenständige dotnet Win x64-EXE mit GUI. Um ImproHound zu verwenden, müssen Sie SharpHound ausführen, um die erforderlichen Daten aus der AD zu sammeln. Anschließend laden Sie die Daten in Ihre BloodHound-Installation hoch. ImproHound stellt eine Verbindung zur zugrunde liegenden Neo4j-Datenbank von BloodHound her. In ImproHound kategorisieren Sie die AD mithilfe der OU-Struktur in Tiers, und ImproHound identifiziert die AD-Beziehungen, die es AD-Objekten ermöglichen, ein Objekt eines höheren (näher an Null gelegenen) Tiers zu kompromittieren, und speichert die Tiering-Verstöße in einer CSV-Datei.
ImproHound DEF CON Adversary Village Präsentation
1. Richten Sie Ihre BloodHound-Datenbank ein
Sammeln Sie BloodHound-Daten mit SharpHound in Ihrer AD
Hinweis: Dies erzeugt Rauschen in Ihrer AV, SIEM usw.
Beispiel: Führen Sie SharpHound.exe von der Eingabeaufforderung aus, sammeln Sie alle (ja, GPOLocalGroup ist nicht in All enthalten):
SharpHound.exe --CollectionMethods All,GPOLocalGroup
Tipp 1: Verwenden Sie den Parameter
Domain, um Daten aus anderen Domänen der Gesamtstruktur zu sammeln.
Tipp 2: Um noch mehr Daten zu erhalten, verwenden Sie die The Session Loop Collection Method
Laden Sie Ihre BloodHound-Daten in der BloodHound-GUI hoch
Es gibt einen Bug in BloodHound, der manchmal dazu führt, dass die JSON-Datei der Domäne beim Hochladen eines BloodHound-Daten-ZIPs übersprungen wird. Überprüfen Sie die DB-Statistiken in BloodHound nach dem Daten-Upload und stellen Sie sicher, dass die Domänenobjekte existieren.
2. Installieren Sie das APOC Neo4j-Plugin (ermöglicht großartige Graph-Operationen, die wir benötigen)
Laden Sie die zu Ihrer Neo4j-Version passende APOC-Version herunter (apoc-x.x.x.x-all.jar).
Die passende APOC-Version für Ihre Neo4j-Version finden Sie in der Versionskompatibilitätsmatrix.
Versuchen Sie sich zu erinnern, wo Sie Neo4j installiert haben, und legen Sie die APOC-JAR-Datei unter: $NEO4J_HOME/plugins/ ab
/var/lib/neo4j/Bearbeiten Sie neo4j.conf in Ihrem bevorzugten Texteditor, um uneingeschränkten APOC-Zugriff zu erlauben, indem Sie die Zeile:
#dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*
ersetzen mit
dbms.security.procedures.unrestricted=apoc.*
/etc/neo4j/neo4j.conf$NEO4J_HOME/conf/neo4j.confWenn Sie ImproHound auf einem Host und BloodHound auf einem anderen ausführen möchten, müssen Sie Remote-Verbindungen zur Neo4j-Datenbank auf dem BloodHound-Host zulassen. Entfernen Sie dazu das # aus der Zeile
#dbms.default_listen_address=0.0.0.0inneo4j.conf.
Starten Sie Neo4j neu
systemctl restart neo4jnet stop neo4j && net start neo4j (PowerShell: net stop neo4j; net start neo4j)3. Laden Sie die neueste Version von ImproHound.exe herunter und führen Sie sie unter Windows (x64) aus
Bestätigen Sie, dass Sie sich mit denselben Anmeldeinformationen, die Sie in der BloodHound-GUI verwenden, bei der BloodHound-Datenbank anmelden können.

Geben Sie die Datenbank-Anmeldeinformationen ein und stellen Sie eine Verbindung her. Es sind dieselben Anmeldeinformationen, die Sie in der BloodHound-GUI verwenden.

ImproHound erstellt ein ‚TierX‘-Label auf Knoten in der BloodHound-Datenbank. Wenn Sie ImproHound bereits zuvor mit dieser BloodHound-Datenbank verwendet haben, werden Sie gefragt, ob Sie mit dem bereits erstellten Tiering fortfahren oder neu beginnen möchten.

ImproHound bietet Ihnen die Möglichkeit, ‚Standard-Tiering‘ zu setzen, wodurch Domänen-Admins in Tier 0, Domänen-Benutzer in Tier 2 usw. gesetzt werden, oder alle Objekte in Tier 2 zu setzen.

Dies ist die Seite, auf der Sie die AD-Objekte in Tiers kategorisieren. Das Fenster zeigt die OU-Struktur an. Jedes AD-Objekt hat einen Tier-Wert, der mit den Pfeilen erhöht und verringert werden kann.
Setze untergeordnete Objekte auf Tier
Wenn Sie eine Domäne oder einen AD-Container auswählen, können Sie auf ‚Setze untergeordnete Objekte auf Tier‘ klicken, um alle untergeordneten Objekte (rekursiv) auf die Tier-Stufe der angegebenen Domäne/des Containers zu setzen.
Setze Mitglieder auf Tier
Wenn Sie eine Gruppe auswählen, können Sie auf ‚Setze untergeordnete Objekte auf Tier‘ klicken, um alle Mitglieder (rekursiv) auf die Tier-Stufe der angegebenen Gruppe zu setzen.
Setze Tier für GPOs
Wenn Sie auf ‚Setze Tier für GPOs‘ klicken, wird für jede GPO die Tier-Stufe auf die Tier-Stufe der OU mit der höchsten Stufe (nähe Null) gesetzt, mit der die GPO verknüpft ist. GPOs, die nicht mit einer OU verknüpft sind, behalten ihre Tier-Stufe.
Hole Tiering-Verstöße
Finden Sie alle Beziehungen in der BloodHound-Datenbank, bei denen ein AD-Objekt die Kontrolle über ein AD-Objekt aus einer höheren Stufe (nähe Null) hat.
Es werden zwei CSV-Dateien als Ausgabe erzeugt:
adobjects-[timestamp].csv: Alle AD-Objekte und in welcher Stufe sie sich befinden.
tiering-violations-[timestamp].csv: Die Tiering-Verstöße.
Beispiel für Einträge in der Verstöße-CSV: