
18 Mai Beschleunigung von BloodHound – Automatisierung von Neo4j Abfragen
Diesen Monat möchten wir gerne wieder etwas an die Community zurückgeben. Wie Ihr in unserem Novemberblog gelesen habt, nutzen wir zahlreiche Open-Source Tools für unser Active Directory Assessment. Ein prominentes Beispiel ist Bloodhound mit der Neo4j Graphendatenbank im Hintergrund. Bloodhound ist ein Tool, mit dem ein Angreifer das Active Directory mit Userrechten „scannt“ und die Daten im Anschluss offline auswerten kann. Es werden sämtliche Gruppen, Benutzer und Computer- Objekte, aber vor allem auch Anmeldedaten (wer hat wo eine Session) und Berechtigungen gespeichert. Diese können mit speziellen Abfragen ausgewertet werden und potenzielle Angriffsziele und Wege werden aufgezeigt.
Neben der Visualisierung der Angriffspfade in Bloodhound gibt es zahlreiche Abfragen, die man nur direkt gegen Neo4J absetzen kann, weil das Ergebnis kein Pfad, sondern eine Liste ist. Im Netz gibt es schon zahlreiche Seiten mit interessanten Abfragen, z.B. von @Haus3c oder auch von den Bloodhound Autoren (@wald0 und @CptJesus) selbst. Von letzteren gibt es auch einen guten Artikel wie man eigene Cypher- Abfragen (so heißt die Neo4j Sprache) schreibt.
Im Kontext unseres AD Assessments führen wir immer das gleiche Basis-Set an Queries zusammen mit kundenspezifischen Abfragen aus und übergeben das Ergebnis im CSV-Format dem Kunden als Teil der Assessment-Dokumentation. Genau diesen Schritt haben wir automatisiert und veröffentlichen das Script zusammen mit diesem Blogartikel 😊.
Das Skript funktioniert wie folgt:
Das Skript liest ein oder mehrere Cypher-Abfragen sowie deren Titel aus einer Eingabedatei im JSON-Format, übermittelt die Anfragen nacheinander mit den hinterlegten Credentials an die Neo4j API und schreibt das Ergebnis in eine CSV-Datei im gleichen Verzeichnis.
Die API URL, die Eingabedatei, Username, Passwort sowie das Ausgabeverzeichnis können als Parameter übergeben werden.
Beachtet bei der Nutzung bitte eins: Wenn mal eine Anfrage zu lange läuft und Ihr das PowerShell Skript abbrecht, läuft die Verarbeitung der Abfrage innerhalb von Neo4j weiter. Ihr müsst also den Neo4j Service neustarten, um die Abfrage abzubrechen.
Und so sieht das ganze aus:

Skript und Inputfile

Das Queryfile

Aufruf ohne Parameter

Skript und Inputfile
Die Ausgabedateien

Das Ergebnis
Ihr könnt das Skript in unserem GitHub Repo finden.
Viel Spaß damit. Bei Fragen kommt gerne auf uns zu. Sollten wir Euer Interesse an einem AD Assessment geweckt haben, könnt Ihr euch natürlich auch gerne bei uns melden 😊.
LATEST POSTS
-
Cyberhygiene: 8 Stunden im Monat für saubere Systeme
Unser Managing Director und Security Architect, Fabian Böhm, war kürzlich im Podcast "Bits and Bytes" von Stegmann and Company mit Alexa Dippold und hat genau über dieses oft vernachlässigte Thema gesprochen. Und die Kernaussage ist ...
06 Mai, 2025 -
Stand der Technik – Analyse der TeleTrusT Handreichung (Teil 1/2)
TEIL 1: In unserer zweiteiligen Serie möchten wir auf die aktuelle Handreichung zum Thema "Stand der Technik in der IT-Security" des TeleTrusT Arbeitskreises eingehen und unsere Sicht darstellen. Los geht’s!...
23 Juni, 2025 -
Stand der Technik – Analyse der TeleTrusT Handreichung (Teil 2/2)
TEIL 2: Viele erfolgreiche Cyberangriffe - ob durch staatlich motivierte Gruppen oder professionelle Cyberkriminelle - haben eines gemeinsam: sie nutzen kompromittierte Benutzerkonten. Häufig beginnt der Angriff mit einem einzigen Zugang, ...
02 Juli, 2025