Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cypherhound — Ihr vorlagenbasiertes BloodHound-Terminal-Begleitwerkzeug | Kitploit
Tools/GitHubGitHub/fin3ss3g0d/cypherhound
AufklärungInformationsbeschaffungPenetrationstestsDienstprogramme & Frameworks
GitHubfin3ss3g0d/cypherhound

cypherhound

Ihr vorlagenbasiertes BloodHound-Terminal-Begleitwerkzeug

Repository anzeigen
4543641vor 8 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CypherHound

logo

Eine Python3-Terminalanwendung, die Neo4j-Cypher für BloodHound-Datensätze enthält, mit einem Skript zum automatischen Importieren in BloodHound CE.

Ausgabebeispiele

Terminal

demo

HTML-Bericht

report summary

HTML-Bericht (Fortsetzung)

details sample

Warum?

BloodHound ist ein Standardwerkzeug für jeden Penetrationstester. Allerdings gibt es einige negative Nebeneffekte aufgrund seines Designs. Ich werde die größten Problemstellen behandeln, die ich erlebt habe und was dieses Tool zu adressieren versucht:

  1. Meine Tools denken in Listen – bis meine Tools exportierte JSON-Graphen parsen, benötige ich Graph-Ergebnisse in einem zeilenweisen .txt-Format, um tatsächlich Angriffe aus anderen Tools durchzuführen
  2. Kopieren/Einfügen von Graphergebnissen – das spielt in den ersten Punkt mit ein, aber müssen wir das wirklich erklären?
  3. Graphen können zu groß zum Zeichnen sein – Große AD-Umgebungen, mehrere kürzeste Pfade, die auf demselben Graphen gezeichnet werden, usw. Die in jedem Graphen enthaltenen Informationen können unsere Ziele als Angreifer unterstützen, und wir müssen in der Lage sein, alle Daten effizient anzuzeigen.
  4. Manuelles Ausführen benutzerdefinierter Cypher ist zeitaufwendig – lasst es uns automatisieren :)

Dieses Tool kann sowohl für Red- als auch Blue-Teams einen erheblichen Mehrwert bieten.

Funktionen

Übernimm die Kontrolle über deine BloodHound-Daten mit CypherHound!

  • Cypher-Vorlagen aus einer YAML-Datei lesen
    • Cypher zum Suchen basierend auf Benutzereingaben festlegen (benutzer-, gruppen- und computerspezifisch)
    • Benutzerdefinierte Regex-Cypher
  • Benutzerdefinierter Export aller Ergebnisse
    • Beispiele im grep/cut/awk-freundlichen Format bereitgestellt
    • Beliebige Kombination von Cyphern in einen modernen, eleganten HTML-Bericht exportieren
  • Dieselben Abfragen aus der BloodHound CE GUI ausführen
    • YAML->JSON-Konverter und automatischer BloodHound CE-Abfrage-Importer
    • BloodHound Legacy customqueries.json-Importskript für BloodHound CE enthalten

Installation

Stelle sicher, dass python3 installiert ist, und führe aus:

python3 -m pip install -r requirements.txt

Verwendung

Starte das Programm mit: python3 cypherhound.py -c config.json -y queries.yaml

config.json

Das Programm liest eine Konfigurationsdatei im json-Format. Ein Beispiel dieser Datei ist unten dargestellt:

{
    "user": "neo4j",
    "pwd": "password",
    "database": "neo4j"
}

wobei:

  • user dein Neo4j-Benutzername ist
  • pwd dein Neo4j-Passwort ist
  • database deine Neo4j-Datenbank ist

YAML-Format

Das Programm liest Abfragen aus einer YAML-Datei im folgenden Format. ad-queries.yaml wurde als Beispiel mit Abfragen zu Active Directory bereitgestellt. msg_template ist für Kürzeste-Pfade-Abfragen nicht erforderlich, aber sie müssen die Variable zurückgeben, die den Pfad enthält

queries:
- group: general
  desc: List all AddKeyCredentialLink privileges for owned principals
  cypher: |-
    MATCH (n {owned: true})-[r:AddKeyCredentialLink]->(m)
    RETURN n.name AS n_name, m.name AS m_name, labels(m) AS labels_m, labels(n) AS labels_n
    ORDER BY n.name
  msg_template: |-
    {{ n_name }} ({{ labels_n[0] }}/{{ labels_n[1] }}) has AddKeyCredentialLink over {{ m_name }} ({{
    labels_m[0] }}/{{ labels_m[1] }})

Eine Aufschlüsselung der Schlüssel/Wert-Paare ist unten zu sehen:

KeyBeschreibung
groupDie Gruppe, zu der diese Abfrage gehört, Gruppen sind benutzerdefiniert, z.B. "general"
descDie Beschreibung der Abfrage
cypherDie Abfrage selbst im Neo4j-Format
msg_templateJinja2-Vorlage für die Terminalausgabe basierend auf Cypher-Variablen, Aliase für Neo4j-Variablen verwenden, um zu vermeiden, dass Jinja versucht, sie als verschachtelte Variablen zu rendern

Dynamische Parameter in Cypher (Jinja2 params.*)

Das Programm verwendet Jinja2, um Cypher zu rendern. Definiere Laufzeitparameter mit dem Befehl set und referenziere sie in YAML als {{ params.<key> }}.

CLI

set <key> <value...> # e.g., set user [email protected]
unset <key> # optional
show # optional

YAML-Beispiel

- group: user
  desc: List all privileges for this user
  cypher: |-
    MATCH (n:User)-[r]->(m)
    WHERE n.name =~ '((?i){{ params.user }})'
    RETURN n.name AS n_name, TYPE(r) AS rel_type, labels(m) AS labels_m, m.name AS m_name
    ORDER BY TYPE(r)
  msg_template: |-
    User {{ n_name }} has {{ rel_type }} over {{ m_name }} ({{ labels_m[0] }}/{{ labels_m[1] }})

Häufige Parametermuster

Param-SchlüsselBeispielwertVerwendung in Cypher
params.user[email protected]= {{ params.user }}
params.user_regex(?i)john\.doe(@example\.com)?=~ '{{ params.user_regex }}'
params.groupDomain [email protected]= {{ params.group }}
params.prefixACME-STARTS WITH {{ params.prefix }}

JSON-Format

Dieses Repository stellt ein Skript query-importer.py bereit, um Abfragen automatisch aus einer JSON-Datei in die BloodHound CE UI zu importieren. bh_query_converter.py wurde ebenfalls bereitgestellt, um eine für die Terminalanwendung vorgesehene YAML-Datei in das von query-importer.py & BloodHound CE erwartete JSON-Format zu konvertieren. Ein Beispiel des erforderlichen JSON-Formats ist unten zu sehen:

Tool herunterladen