
smbcrawler ist ein unkompliziertes Tool, das Anmeldedaten und eine Liste von Hosts entgegennimmt und durch diese Freigaben 'crawlt' (oder 'spidered').
SmbCrawler ist ein anspruchsloses Tool, das Anmeldedaten und eine Liste von Hosts nimmt und durch diese Freigaben 'crawlt' (oder 'spidert'). Funktionen:
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:
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.
Ausführen wie folgt (10 Threads, maximale Tiefe 5):
$ smbcrawler crawl -i hosts.txt -u pen.tester -p iluvb0b -d contoso.local -t 10 -D 5
SmbCrawler wurde grundlegend überarbeitet. Die wesentlichsten Änderungen sind:
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.
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 Fortschrittss: Anzeigen einer detaillierteren StatusaktualisierungFür weitere Informationen führen Sie smbcrawler -h aus.
Selbst in mittelgroßen Netzwerken wird SmbCrawler Unmengen von Daten finden. Die Herausforderung besteht darin, Fehlalarme zu reduzieren.
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:
--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.
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:
$XDG_DATA_HOME/smbcrawler/ (standardmäßig ~/.local/share/smbcrawler)--extra-profile-directory definierte Zusatzverzeichnis--extra-profile-file definierten ZusatzdateienProfile 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.
comment: Ein hilfreicher String, der dieses Profil beschreibtregex: 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 werdenhigh_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 analysiertcomment, regex, regex_flags: Wie obenhigh_value: ihr Vorhandensein wird gemeldet und die Crawling-Tiefe auf unendlich geändertcrawl_depth: Crawlen Sie diese Freigabe oder dieses Verzeichnis bis zu einer anderen Tiefe als durch das Argument --depth definiertcomment, regex_flags: Wie obenregex: Ein regulärer Ausdruck, der auf das Geheimnis zutrifft. Das Geheimnis selbst kann eine benannte Gruppe mit dem Namen secret sein.