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
smbcrawler — smbcrawler ist ein unkompliziertes Tool, das Anmeldedaten und eine Liste von Hosts entgegennimmt und durch diese Freigaben 'crawlt' (oder 'spidered'). | Kitploit
Tools/GitHubGitHub/syss-research/smbcrawler
AufklärungSchwachstellenanalyseDatenexfiltrationInformationsbeschaffungNetzwerksicherheitPenetrationstests
GitHubsyss-research/smbcrawler

smbcrawler

smbcrawler ist ein unkompliziertes Tool, das Anmeldedaten und eine Liste von Hosts entgegennimmt und durch diese Freigaben 'crawlt' (oder 'spidered').

Repository anzeigen
18926vor 9 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

SmbCrawler

SmbCrawler ist ein anspruchsloses Tool, das Anmeldedaten und eine Liste von Hosts nimmt und durch diese Freigaben 'crawlt' (oder 'spidert'). Funktionen:

  • akzeptiert Hostnamen, IP-Adressen, IP-Bereiche oder eine nmap-XML-Datei als Eingabe
  • überprüft Berechtigungen (Überprüfung auf 'Schreib'-Berechtigungen ist optional, da dafür ein leeres Verzeichnis auf der Freigabe erstellt werden muss)
  • Crawling-Tiefe ist anpassbar
  • gibt Ergebnisse in maschinenlesbaren Formaten oder als interaktiven HTML-Bericht aus
  • Pass-the-Hash-Unterstützung
  • automatischer Download interessanter Dateien
  • Meldung potenzieller Geheimnisse
  • multithreaded
  • pausierbar
  • interaktives Überspringen einzelner Freigaben und Hosts

Installation

Wenn Sie Anweisungen zur Installation eines Python-Pakets benötigen, empfehle ich, sicherzustellen, dass Sie pipx installiert haben und führen Sie pipx install smbcrawler aus.

SmbCrawler kann einige Binärdateien wie PDF, XLSX, DOCX, ZIP usw. mithilfe von MarkItDown automatisch in Klartext konvertieren. Da dieses Paket viele Abhängigkeiten mit sich bringt, ist es als Extra markiert. Es wird jedoch dringend empfohlen, es zu installieren, um die besten Ergebnisse zu erzielen. Wenn Sie Binärdateien automatisch konvertieren möchten, installieren Sie SmbCrawler wie folgt:

root@kitploit:~
pipx install 'smbcrawler[binary-conversion]'

Das Hinzufügen der Shell-Vervollständigung wird dringend empfohlen. Als Python-App, die die click-Bibliothek verwendet, können Sie die Tab-Vervollständigung für bash, zsh und fish mit dem üblichen Mechanismus hinzufügen.

Beispiel

Ausführen wie folgt (10 Threads, maximale Tiefe 5):

root@kitploit:~
$ smbcrawler crawl -i hosts.txt -u pen.tester -p iluvb0b -d contoso.local -t 10 -D 5

Wichtige Änderungen in Version 1.0

SmbCrawler wurde grundlegend überarbeitet. Die wesentlichsten Änderungen sind:

  • Wir haben die CLI bereinigt und einen "Profil"-Mechanismus eingeführt, um das Verhalten des Crawlers zu steuern
  • Die Ausgabe erfolgt nun in einer SQLite-Datenbank anstatt in verstreuten JSON-Dateien
  • Berechtigungen werden nun granularer gemeldet

Die alten CLI-Argumente zu "interessanten Dateien", "langweiligen Freigaben" usw. waren umständlich und verwirrend. Stattdessen verwenden wir nun "Profile"; siehe unten für Details.

Außerdem habe ich erkannt, dass ich im Grunde relationale Datenbanken neu erfunden habe, nur sehr schlecht, also warum nicht direkt SQLite verwenden? Der SQLite-Ansatz ermöglicht es uns, einen schönen interaktiven HTML-Bericht mit guter Leistung zu erstellen. Sie können die Ergebnisse weiterhin in verschiedenen Formaten exportieren, wenn Sie die Daten in einer Tool-Pipeline verwenden müssen.

Die alte Art und Weise, wie SmbCrawler Berechtigungen meldete, war manchmal nicht sehr nützlich. Beispielsweise ist es nicht ungewöhnlich, dass Sie Leseberechtigungen im Stammverzeichnis der Freigabe haben, aber alle Unterverzeichnisse geschützt sind, z. B. für Benutzerprofile. SmbCrawler meldet nun, wie tief es den Verzeichnisbaum einer Freigabe lesen konnte und ob es die maximale Tiefe erreicht hat oder tiefer hätte gehen können, wenn Sie einen höheren Wert für das Argument --depth angegeben hätten.

Wenn Sie die alte Version bevorzugen, ist sie weiterhin auf PyPI verfügbar und kann z. B. mit pipx install smbcrawler==0.2.0 installiert werden.

Verwendung

Während der Laufzeit können Sie die folgenden Tasten verwenden:

  • p: Pausieren des Crawlers und Überspringen einzelner Hosts oder Freigaben
  • <Leertaste>: Anzeigen des aktuellen Fortschritts
  • s: Anzeigen einer detaillierteren Statusaktualisierung

Für weitere Informationen führen Sie smbcrawler -h aus.

Hinweise

Selbst in mittelgroßen Netzwerken wird SmbCrawler Unmengen von Daten finden. Die Herausforderung besteht darin, Fehlalarme zu reduzieren.

Hinweise zu Berechtigungen

Es ist wichtig zu verstehen, dass Berechtigungen auf Dienstebene und auf Dateisystemebene greifen können. Der entfernte SMB-Dienst kann Ihnen die Authentifizierung erlauben, und Ihr Benutzerkonto kann grundsätzlich Leseberechtigungen haben, aber es könnte diese Berechtigungen auf dem Dateisystem nicht besitzen.

SmbCrawler meldet, ob Sie Berechtigungen haben:

  • sich als Gast bei einem Ziel zu authentifizieren und Freigaben aufzulisten
  • sich mit den Benutzer-Anmeldedaten bei einem Ziel zu authentifizieren
  • auf eine Freigabe als Gast zuzugreifen
  • mit den Benutzer-Anmeldedaten auf eine Freigabe zuzugreifen
  • ein Verzeichnis im Stammverzeichnis der Freigabe zu erstellen
  • die tiefste Verzeichnisebene einer Freigabe, auf die zugegriffen werden konnte (begrenzt durch das Argument --depth)

Da es nicht trivial ist, Berechtigungen von SMB-Freigaben zu überprüfen, ohne die betreffende Aktion zu versuchen, wird SmbCrawler versuchen, auf jeder Freigabe ein Verzeichnis zu erstellen. Sein Name ist smbcrawler_DELETEME_<8 zufällige Zeichen> und wird sofort gelöscht, seien Sie sich dessen jedoch bewusst.

[!WARNING] Manchmal haben Sie die Berechtigung, Verzeichnisse zu erstellen, aber nicht, sie zu löschen, sodass Sie ein leeres Verzeichnis hinterlassen.

Profile

Um zu entscheiden, was mit bestimmten Freigaben, Dateien oder Verzeichnissen geschehen soll, verfügt SmbCrawler über eine Funktion namens "Profile". Werfen Sie einen Blick auf das Standardprofil.

Profile werden aus Dateien mit den Endungen *.yml oder *.yaml von diesen Speicherorten geladen:

  • Das eingebaute Standardprofil
  • $XDG_DATA_HOME/smbcrawler/ (standardmäßig ~/.local/share/smbcrawler)
  • Das durch --extra-profile-directory definierte Zusatzverzeichnis
  • Die durch --extra-profile-file definierten Zusatzdateien

Profile von jedem Speicherort überschreiben vorherige Definitionen.

Der regex-Wert definiert, ob ein Profil zutrifft, und das letzte zutreffende Profil wird verwendet. Alle regulären Ausdrücke sind case-insensitiv, was dem häufigsten Verhalten in der Windows-Welt entspricht.

Da es verwirrend sein kann, wie Profile aus verschiedenen Quellen zusammenwirken, stellen Sie sicher, dass Sie den Parameter --dry-run verwenden. Er zeigt Ihnen die effektive Konfiguration und tut nichts weiter.

Schauen wir uns jeden Abschnitt an, der immer eine Liste von Dictionaries ist. Jeder der Schlüssel des Dictionaries ist ein beliebiges Label, und jeder der Werte ist wiederum ein Dictionary mit verschiedenen Eigenschaften.

Dateien

  • comment: Ein hilfreicher String, der dieses Profil beschreibt
  • regex: Ein regulärer Ausdruck, der definiert, auf welche Dateien dieses Profil zutrifft. Der letzte Regex, der zutrifft, zählt.
  • regex_flags: Ein Array von Flags, die an die match-Funktion des regulären Ausdrucks übergeben werden
  • high_value (Standard: false): Wenn eine Datei "hochwertig" ist, wird ihr Vorhandensein gemeldet, aber sie wird nicht unbedingt heruntergeladen (denken Sie an virtuelle Festplatten – wichtig, aber zu groß für den automatischen Download)
  • download (Standard: true): Wenn true, werden die ersten 200KiBi heruntergeladen (oder die gesamte Datei, wenn high_value=true) und auf Geheimnisse analysiert

Freigaben und Verzeichnisse

  • comment, regex, regex_flags: Wie oben
  • high_value: ihr Vorhandensein wird gemeldet und die Crawling-Tiefe auf unendlich geändert
  • crawl_depth: Crawlen Sie diese Freigabe oder dieses Verzeichnis bis zu einer anderen Tiefe als durch das Argument --depth definiert

Geheimnisse

  • comment, regex_flags: Wie oben
  • regex: Ein regulärer Ausdruck, der auf das Geheimnis zutrifft. Das Geheimnis selbst kann eine benannte Gruppe mit dem Namen secret sein.

Typischer Arbeitsablauf

Es ist sinnvoll, SmbCrawler zunächst mit einer Crawling-Tiefe von 1 auszuführen, um eine Vorstellung davon zu bekommen, womit Sie es zu tun haben. In diesem ersten Durchlauf können Sie die Schreibprüfung mit -w aktivieren:

root@kitploit:~
$ smbcrawler -C permissions_check.crwl crawl -D1 -t10 -w \
    -i <EINGABEDATEI> -u <BENUTZER> -d <DOMÄNE> -p <PASSWORT>

Beachten Sie, dass dies nur die Schreib- und Leseberechtigungen im Stammverzeichnis jeder Freigabe überprüft. Erst ein vollständiger Durchlauf wird Ihnen mehr darüber verraten, wie tief die Leseberechtigungen reichen.

Nach der ersten Berechtigungsprüfung können Sie interessante und langweilige Freigaben für Ihren nächsten oder mehrere Durchläufe identifizieren. Einige Freigaben wie SYSVOL und NETLOGON erscheinen oft mehrmals, daher sollten Sie die Crawling-Tiefe in Ihrem nächsten Durchlauf auf Null setzen und einen Host auswählen, um diese doppelten Freigaben in einem dritten Durchlauf zu scannen. Hier ist ein Beispiel:

root@kitploit:~
$ smbcrawler -C dc_only.crwl crawl -D -1 <DC-IP> \
    -u <BENUTZER> -d <DOMÄNE> -p <PASSWORT>
$ smbcrawler -C full.crwl crawl -D5 -t10 -i <NEUE EINGABEDATEI> \
    -u <BENUTZER> -d <DOMÄNE> -p <PASSWORT> \
    --extra-profile-file skip_sysvol.yml

Hier wäre skip_sysvol.yml:

root@kitploit:~
shares:
  sysvol:
    comment: "SYSVOL- und NETLOGON-Freigabe überspringen"
    regex: 'SYSVOL|NETLOGON'
    crawl_depth: 0

Fügen Sie hier gerne andere Freigaben hinzu, die Ihrer Meinung nach nicht gecrawlt werden müssen.

Ausgabe

Die Rohdaten befinden sich in einer SQLite-Datenbank und einem Verzeichnis (standardmäßig output.crwl und output.crwl.d). Das Verzeichnis enthält zwei weitere Verzeichnisse: eines mit den heruntergeladenen Dateien, eindeutig gemacht durch den Hash-Inhalt, und ein Verzeichnis, das alle Freigaben mit Symlinks zu den Inhaltsdateien spiegelt. Letzteres eignet sich gut zum Durchsuchen aller heruntergeladenen Dateien mit grep.

Die Daten können in verschiedene Formate umgewandelt werden. Sie können auch einfach mit sqlitebrowser auf die Datenbank zugreifen, zum Beispiel. Es wurden einige nützliche Ansichten vordefiniert. Oder Sie geben JSON aus und verwenden jq, um die Daten zu manipulieren.

Wenn Sie alle Freigaben, die Sie über das Stammverzeichnis hinaus lesen konnten, in einer LaTeX-Tabelle anzeigen möchten, verwenden Sie diese Abfrage:

root@kitploit:~
SELECT target_id || " & " || name || " & " || remark || " \\"
FROM share
WHERE read_level > 0
ORDER BY target_id, name

Es gibt auch eine experimentelle HTML-Ausgabefunktion. Sie ist für große Datenmengen möglicherweise noch nicht vollständig nutzbar.

Helfen Sie mit

Wenn Ihnen viele Fehlalarme oder Fehltreffer bei den gemeldeten Geheimnissen auffallen, helfen Sie bitte mit und lassen Sie es mich wissen. Community-Beiträge sind wichtig, um die automatische Erkennung zu verbessern. Idealerweise stellen Sie einen Pull-Request mit Änderungen an der Standard-Profil-Datei zur Verfügung.

Credits

Adrian Vollmer, SySS GmbH

Lizenz

MIT-Lizenz; siehe LICENSE für Details.

Tool herunterladen