
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
-
2024 bei TEAL: Innovation, Teamspirit und neue Meilensteine!
Unser Fokus lag dabei nicht nur auf der Optimierung unserer internen Prozesse, sondern auch auf dem Ausbau unseres Netzwerks und der physischen Präsenz in der IT-Sicherheitsbranche. In diesem Beitrag möchten wir die Höhepunkte des Jahres 2024...
19 Dezember, 2024 -
ChatGPT 1/3: Revolution in der KI-Technologie? – Wir stellen Cybersecurity-Fragen an eine Chat-KI
Die Künstliche Intelligenz (KI) ist ein faszinierendes und immer wieder viel diskutiertes Thema in der heutigen Technologie- und Informationsgesellschaft. Egal ob in der Wissenschaft, der Industrie oder im Alltag, die Möglichkeiten...
16 Januar, 2023 -
ChatGPT 2/3: Die Krux mit der KI
Nein, im zweiten Teil werden wir nicht noch ein Interview mit ChatGPT führen und über dessen Fähigkeiten staunen. Diesmal betrachten wir die Entwicklung und Möglichkeiten von KI im Allgemeinen und wagen einen Ausblick in die Zukunft, die in der IT-Welt...
16 März, 2023