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)
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.
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.
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.
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.
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
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.
Der Weg bis zur Domäne von bereits Übernommenen Nodes (das Totenkopf Symbol)
Mögliche Wege zu Hochwertigen Zielen (der Diamant).
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 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.
Das „Unrolled Members“ bedeutet, dass Benutzer oder Computer in untergeordneten Gruppen sind. Durch diese Fehlkonfiguration existieren in der Domäne 43622 Domain Admins.
Wir verwenden Cookies, und Google reCAPTCHA, das Google Fonts lädt und mit Google-Servern kommuniziert. Durch die weitere Nutzung unserer Website stimmen Sie der Verwendung von Cookies und unserer Datenschutzerklärung zu.