Bloodhound, ein Spaziergang durch die Domäne

Inhaltsverzeichnis

Was ist BloodHound genau?

BloodHound ist ein Tool für Red und Blue Teams. Sie dient der grafischen Darstellung, der Domäne und den möglichen Angriffsvektoren. Es stellt die Beziehungen der einzelnen Objekte untereinander dar und ist auch nutzbar für Azure. Das Tool selbst funktioniert auf Windows, Linux, macOS und benötigt eine neo4j Datenbank.

Erstellt wurde BloodHound von @_wald0, @CptJesus und @harmj0y.

Das folgende Bild zeigt die Graphische Oberfläche (GUI)

Bloodhound GUI

SharpHound

Der Standard Daten-Sammler für BloodHound. Es ist eine ausführbare Datei die alle Daten der Domäne auslesen kann und diese im .json Format für BloodHound speichert. Es sollte von einem Domänenintegrierten Client ausgeführt werden. Da BloodHound und auch SharpHound als Pentesting- bzw. Hackertool klassifiziert wird, wird es von vielen Antivirus-Programmen und auch manchen Browsern als schadhaft eingestuft. Als Pentester oder RedTeamer sollte man eine AV Evasion Technik nutzen und es in-Memory ausführen. Als BlueTeam kann ich für den Moment der Ausführung eine Ausnahme definieren, die ich nach der Datensammlung wieder entfernen sollte. Die gesammelten .json Dateien kann man per Drag-and-Drop in die GUI ziehen und dadurch in die Datenbank laden.

AzureHound

Der AzureHound ist ein PowerShell Script, welches über die AZ und Azure AD Module auf das Azure zugreifen kann und dort die Daten sammelt. Auch das Tool erstellt .json Dateien wie der SharpHound. Wie die meisten Powershell Scripte sollte auch dieses an der PowershellScriptExecution Policy hängen bleiben und somit nicht ausgeführt werden. Deswegen muss auch hier eine Ausnahme definiert werden.

BloodHound.py

Der Python ingestor basierend auf Impacket, kann von allen Systemen ausgeführt werden, hat aber nicht alle Features vom SharpHound. BloodHound-Python lässt sich via git oder pip installieren und ist kompatibel mit BloodHound ab der Version 4.1. Mittlerweilen gibt es auch einen Docker Container, den man spawnen und von dort aus den BloodHound-python nutzen kann. Daten aus einem Azure können damit nicht ausgelesen werden.

Certipy

Ein Tool von @ly4k_ um eine an das Active Directory angebundene Public Key Infrastructure mit ADCS auszulesen. Mit Hilfe des find Parameter wird dann ein Output für Bloodhound generiert.

Visualisierung mit Graphen

BloodHound kennt zwei unterschiedliche Objekt-Typen. Nodes welches die Objekte aus der Domäne darstellen, wie z.B. Benutzer und Gruppen mit all ihren Eigenschaften: Name, ID, Letzte Anmeldung und vieles mehr.

Der andere Typ sind die Edges, welche die Verbindungen oder auch die Beziehungen der Nodes untereinander darstellen

Bloodhound GUI

Angriffswege

Der Vorteil für den Angreifer ist, dass er mit weiteren Markierungen an den Nodes und eigenen Queries sich den Vollständigen Weg aufzeigen lassen kann.

Bloodhound GUI

Der Weg bis zur Domäne von bereits Übernommenen Nodes (das Totenkopf Symbol)

Bloodhound GUI

Mögliche Wege zu Hochwertigen Zielen (der Diamant).

Custom Queries

BloodHound unterstützt Angreifer und Verteidiger mit vielen guten Abfragen, die dann in Graphen umgewandelt werden. Wem die vorhandenen nicht reichen, kann man sich der relativ einfachen Sprache bedienen und eigenen Queries schreiben. Als Beispiel hier zum Anzeigen aller Hochwertigen Ziele:

				
					MATCH (m) WHERE m.highvalue=TRUE RETURN m
				
			
Bloodhound GUI

Zusammenfassung

BloodHound eignet sich sehr gut für Angreifer, aber auch für die Verteidiger, für die Überprüfung und das Auffinden möglicher Privilege Escalations. Aber auch wie von @_wald0 auf Twitter veröffentlicht solch eine Fehlkonfiguration.

Bloodhound GUI
Bloodhound GUI

Das “Unrolled Members” bedeutet, dass Benutzer oder Computer in untergeordneten Gruppen sind. Durch diese Fehlkonfiguration existieren in der Domäne 43622 Domain Admins.

ANDERE BEITRÄGE
E-Mail Spoofing Verhindern
E-Mail Spoofing Verhindern

Inhaltsverzeichnis Absicherung von E-Mail-Servern Offence: Was ist E-Mail Spoofing? „Der Absender ist doch echt …“ E-Mail Spoofing oder Spoofing bezeichnet

Mehr lesen »

Inhaltsverzeichnis

Willst Du Teil unseres Teams werden?

Wir verwenden Cookies, um Ihnen die bestmögliche Erfahrung zu bieten. Wenn Sie unsere Website weiterhin besuchen, stimmen Sie der Verwendung von Cookies zu, wie in unserer Datenschutzerklärung beschrieben.