Skip to content
KitploitKITPLOIT
ToolsBlog
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
jackdaw — sammeln sammeln sammeln | Kitploit
Tools/GitHubGitHub/skelsec/jackdaw
Passwort-CrackingInformationsbeschaffungPenetrationstestsAnomalieerkennung
GitHubskelsec/jackdaw

jackdaw

sammeln sammeln sammeln

Repository anzeigen
58586vor 1 JahrVon 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

jackdaw

sammeln sammeln sammeln jackdaw_card

Was ist das?

Jackdaw sammelt alle Informationen in Ihrer Domäne, speichert sie in einer SQL-Datenbank und zeigt Ihnen schöne Graphen, wie Ihre Domänenobjekte miteinander interagieren und wie ein potenzieller Angreifer diese Interaktionen ausnutzen könnte. Es enthält auch eine praktische Funktion, die Sie bei einem Passwort-Cracking-Projekt unterstützt, indem Hashes/Passwörter/Benutzer gespeichert/nachgeschlagen/gemeldet werden.

Kurze Nutzungshinweise

  • Wenn Sie keine automatische Sammlung verwenden (z. B. nicht unter Windows), müssen Sie eine initiale leere Datenbank über dbinit erstellen.
  • Zuerst müssen Sie enum ausführen. Dies kann unter Windows automatisch durch Doppelklick auf die ausführbare Datei oder durch Eingabe von jackdaw.exe auto erfolgen.
  • Zweitens müssen Sie nest ausführen, um die Weboberfläche zu erhalten. Standardmäßig wird sie unter http://127.0.0.1:5000/nest bereitgestellt. Es gibt eine SWAGGER-dokumentierte API unter http://127.0.0.1:5000/ui.
  • In der Weboberfläche müssen Sie zur Domänenansicht gehen und einmal auf Generate graph cache klicken, um die Kanteninformationen in einer Cache-Datei zu erhalten. Es kann eine Weile dauern, aber in der Befehlszeile sehen Sie einen Fortschrittsbalken.
  • Nachdem der Graph-Cache fertig ist, können Sie mit dem Graphen in der Graphansicht spielen, aber vergessen Sie nicht, die korrekte Cache-Nummer oben links auszuwählen.

Leistungs-Tricks/Tipps

Dieser Abschnitt wird regelmäßig auf Basis von Benutzer-Feedback aktualisiert.

Datenerfassung

Hier gibt es keinen Rat; während einige Verbesserungen im Code vorgenommen werden können, gibt es nichts, was ein generischer Ansatz tun kann.

Generierung der Graph-Daten-Cache-Datei

Die Generierung der Graph-Daten-Cache-Datei muss für jeden Graphen einmal (und nur einmal) durchgeführt werden, was mit dem Standard-SQLAlchemy-Tool eine Weile dauern kann.
Leistung und Geschwindigkeit können erheblich verbessert werden (über 50x mehr Geschwindigkeit und 20x weniger Speicher), wenn Sie das SQLite-Backend verwenden UND das Befehlszeilentool "sqlite3" irgendwo im PATH ablegen. Ich würde dies jedem Benutzer empfehlen.

Pfadberechnung und Graph-Daten-Laden

Hier kommt der große Kompromiss. Frühe Implementierungen von Jackdaw verwendeten das networkx-Modul als Graph-Backend, da es vollständig in Python geschrieben ist. Dies führte jedoch zu erheblichen Speicher- und Geschwindigkeitskosten. Um Jackdaw rein in Python zu halten, besteht diese Option weiterhin, aber die Verwendung des igraph-Backends ist jetzt die Standardeinstellung.
Hinweis: igraph ist eine C++-Bibliothek mit Python-Bindungen. Es hat vorkompilierte Wheels für Windows und die wichtigsten Linux-Distributionen, aber wenn Sie Jackdaw auf etwas anderem verwenden (eingebettete Systeme/Mobiltelefone/Webbrowser), müssen Sie entweder auf networkx zurückgreifen oder die stundenlange Kompilierzeit in Kauf nehmen.

Beispielbefehle

Automatische Enumeration - nur Windows, mit domänengebundenem Benutzer -

Keine Notwendigkeit, die Datenbank vorzuinitialisieren, dies geschieht automatisch. Mit der verteilten Binärdatei können Sie einfach auf jackdaw.exe doppelklicken.
Als Python-Skript verwenden: jackdaw auto

DB-Initialisierung

jackdaw --sql sqlite:///<full path here>/test.db dbinit
UNTER LINUX-SYSTEMEN enthält <full path here> den ersten /, sodass Sie //// vier (4) Striche vor dem Dateinamen haben. Keine Panik.

Enumeration

Vollständige Enumeration mit integriertem SSPI - nur Windows

jackdaw --sql sqlite:///test.db enum 'ldap+sspi-ntlm://<domain>\<placeholder>@10.10.10.2' 'smb+sspi-ntlm://<domain>\<placeholder>@10.10.10.2'

Vollständige Enumeration mit Benutzername und Passwort - plattformunabhängig

Das Passwort ist Passw0rd!
jackdaw --sql sqlite:///test.db enum 'ldap+ntlm-password://TEST\victim:[email protected]' 'smb+ntlm-password://TEST\victim:[email protected]'

Nur-LDAP-Enumeration mit Benutzername und Passwort - plattformunabhängig

Das Passwort ist Passw0rd!
jackdaw --sql sqlite:///test.db ldap 'ldap+ntlm-password://TEST\victim:[email protected]'

Interaktive Weboberfläche starten, um Graph zu zeichnen und auf zusätzliche Funktionen zuzugreifen

jackdaw --sql sqlite:///<FULL PATH TO DB> nest

Öffnen Sie http://127.0.0.1:5000/ui für die API

Bitte lesen Sie den Abschnitt Building the UI weiter unten, um zu erfahren, wie Sie die UI erstellen. Sobald erstellt:

Öffnen Sie http://127.0.0.1:5000/nest für die Graph-Schnittstelle (zeigt den Graphen, aber noch nicht voll funktionsfähig)

Funktionen

Datenerfassung

via LDAP

Die LDAP-Enumeration-Phase erfasst Daten zu AD-Informationen, Benutzer-, Maschinen-, OU- und Gruppenobjekten, die als Knoten im Graphen und als separate Tabelle in der DB dargestellt werden. Zusätzlich werden alle Sicherheitsdeskriptoren der genannten Objekte geparst und die ACLs für die DACL zur DB hinzugefügt. Dies wird zusammen mit den Mitgliedschaftsinformationen als Kanten im Graphen dargestellt. Zudem können bei Bedarf benutzerdefinierte SQL-Abfragen auf jeden der genannten Datentypen ausgeführt werden.

via SMB

Die SMB-Enumeration-Phase erfasst Daten zu Freigaben, lokalen Gruppen, Sitzungen, NTLM-Daten, indem sie eine Verbindung zu jeder Maschine in der Domäne herstellt (die via LDAP erfasst wird).

via Kerberos

Das Kerberos-Modul führt automatisches Kerberoasting und AS-REP Roasting durch.

via LSASS-Dumps (optional)

Das Framework ermöglicht es Benutzern, LSASS-Speicher-Dumps hochzuladen, um Anmeldeinformationen zu speichern und die Sitzungsinformations-Tabelle zu erweitern. Beide werden als zusätzliche Kanten im Graphen verwendet (gemeinsames Passwort bzw. Sitzung). Das Framework nutzt diese Informationen auch, um einen Passwortbericht über schwache/geteilte/geknackte Anmeldeinformationen zu erstellen.

via DCSYNC-Ergebnisse (optional)

Das Framework ermöglicht es Benutzern, DCSYNC-Dateien von Impacket hochzuladen, um Anmeldeinformationen zu speichern. Diese werden als zusätzliche Kanten im Graphen verwendet (gemeinsames Passwort). Das Framework nutzt diese Informationen auch, um einen Passwortbericht über schwache/geteilte/geknackte Anmeldeinformationen zu erstellen.

via manuellem Upload (optional)

Das Framework ermöglicht es, die verfügbare DB manuell in jeder Hinsicht zu erweitern. Beispiel: Wenn Benutzersitzungsinformationen auf einem bestimmten Computer entdeckt werden (außerhalb der automatischen Enumeration), besteht die Möglichkeit, diese Sitzungen manuell hochzuladen, wodurch die DB und auch der Ergebnisgraph befüllt werden.

Graph

Das Framework kann einen Graphen unter Verwendung der in der Datenbank verfügbaren Informationen generieren und über die Weboberfläche (nest) darstellen. Darüber hinaus können die Graphgenerierung und Pfadberechnungen programmatisch aufgerufen werden, entweder über die Web-API (/ui-Endpunkt) oder die Funktionen des Graph-Objekts.

Anomalieerkennung

Das Framework kann häufige AD-Fehlkonfigurationen ohne Graphgenerierung identifizieren. Derzeit nur über die Web-API.

Benutzer

Die Erkennung von Benutzeranomalien umfasst die Erkennung unsicherer UAC-Berechtigungen und umfangreicher Benutzerbeschreibungswerte. Diese Funktionspalette wird voraussichtlich in Zukunft wachsen, wenn neue Funktionen implementiert werden.

Maschine

Die Erkennung von Maschinenanomalien umfasst die Erkennung unsicherer UAC-Berechtigungen, nicht obligatorischer SMB-Signierung, veralteter Betriebssystemversionen und nicht in der Domäne befindlicher Maschinen. Diese Funktionspalette wird voraussichtlich in Zukunft wachsen, wenn neue Funktionen implementiert werden.

Passwort-Cracking

Das Framework führt kein Cracking durch, sondern organisiert nur die Hashes und die Cracking-Ergebnisse
Derzeit liegt der Hauptfokus auf Impacket und aiosmbs DCSYNC-Ergebnissen, nur !NT- und LM-Hashes!
Beispielprozess ist wie folgt:

  1. Ernten von Anmeldeinformationen als Textdatei via Impacket/aiosmb oder als Speicher-Dumps des LSASS-Prozesses mit einem beliebigen geeigneten Tool.
  2. Hochladen der geernteten Anmeldeinformationen über die API
  3. Abfragen ungeknackter Hashes über die API
  4. Diese knacken (hashcat?)
  5. Hochladen der Ergebnisse in das Framework über die API
  6. Erstellen eines Berichts über geknackte/ungeknackte Benutzer, Passwortstärke und Passwortweitergabe

Anmerkung des Autors: Diese Funktion wurde sowohl für Angreifer als auch für Verteidiger implementiert. Persönlich sehe ich nicht viel Mehrwert auf beiden Seiten, da man, sobald man den NT-Hash eines Benutzers hat, diesen genauso gut wie das Passwort verwenden kann... Dennoch führen immer mehr Unternehmen Passwortstärke-Übungen durch, und diese Funktion könnte ihnen helfen. Für Angreifer: Es ist nur eine Spielerei, aber nur zu. Vielleicht kann man das Management damit erschrecken.

Wichtig

Dieses Projekt befindet sich in der Experimentierphase! Das bedeutet mehrere Dinge:

  1. es kann abstürzen
  2. Die Steuerelemente, die Sie verwenden, könnten sich in Zukunft ändern (sehr wahrscheinlich)
  3. (Der schlimmste Teil) Das Datenbankdesign ist nicht unbedingt für zukünftige Anforderungen geeignet, daher kann es sich ändern. Es wird keine Mühe unternommen, die Rückwärtskompatibilität mit der Datenbankstruktur der Experimentierphase zu gewährleisten!

Technischer Teil

Datenbank-Backend

Jackdaw verwendet das SQLAlchemy-ORM-Modul, das Ihnen die Möglichkeit gibt, jedes beliebige SQL-DB-Backend zu verwenden. Die Tests werden hauptsächlich auf SQLite durchgeführt, aus offensichtlichen Gründen. In diesem Projekt werden keine backend-spezifischen Befehle verwendet, die Sie einschränken würden.

Erstellen der UI

DIES IST NUR ERFORDERLICH, WENN SIE ÜBER GIT INSTALLIEREN UND/ODER ETWAS IM UI-CODE ÄNDERN
Die UI wurde in React geschrieben. Vor der ersten Nutzung/Installation müssen Sie sie erstellen. Dazu benötigen Sie installierte nodejs und npm. Dann:

  1. Gehen Sie zu jackdaw/nest/site/nui
  2. Führen Sie npm install aus
  3. Führen Sie npm run build aus

Nach Abschluss der obigen Schritte ist die UI einsatzbereit.

Danksagungen

"Wenn ich weiter gesehen habe, dann nur, weil ich auf den Schultern von Riesen stehe."

Für die ursprüngliche Idee

BloodHound-Team

Für die ACL-Kantenberechnung

@dirkjanm (https://github.com/dirkjanm/)

Für die großartige UI

Zsolt Imre (https://github.com/keymandll)

Für die Datensammlungsteile

siehe den Danksagungsabschnitt in den Modulen aiosmb und msldap

Falls ich jemanden vergessen habe zu erwähnen, bitte senden Sie einen PR

Tool herunterladen