
3 Tools, die zusammenarbeiten, um die Aufklärung von Windows-Dateifreigaben zu vereinfachen
Eine der zeitaufwändigsten Aufgaben als Red Teamer ist das Eintauchen in Dateisysteme und Freigaben, um nach potenziell sensiblen Informationen zu suchen. SMBCrunch ermöglicht es einem Red Teamer, schnell Windows-Dateifreigaben in einem Netzwerk zu identifizieren, eine rekursive Verzeichnisauflistung der bereitgestellten Freigaben durchzuführen und sogar eine Datei von der entfernten Freigabe zu holen, falls sie wie ein vielversprechendes Ziel aussieht.
Es gibt drei (3) verschiedene Tools, die zusammenarbeiten. Lesen Sie alle drei Abschnitte unten, um eine Vorstellung davon zu bekommen, wie sie zusammenarbeiten.
Mit einer Datei (oder einer gnmap-Datei) findet SMBHunt alle Windows-Dateifreigaben, die mit den bereitgestellten Servern verbunden sind (wenn eine gnmap-Datei bereitgestellt wird, sucht es nach Servern mit offenem Port 445). Wenn keine Anmeldeinformationen für die Überprüfung bereitgestellt werden, wird nach Null-Session-Freigaben gesucht.
Warnung: Wenn Ihr Benutzer Zugriff auf eine Freigabe auf dem Server hat, zeigt das Skript alle Freigaben an, die von diesem Server gehostet werden. Wenn eine Freigabe in dieser Ausgabe aufgeführt ist, bedeutet dies nicht, dass Sie Zugriff auf diese Freigabe haben. Verwenden Sie dafür das nächste Tool.
Dieses Skript warnt Sie, wenn die von Ihnen bereitgestellten Anmeldeinformationen fehlschlagen, um das Sperren von Domänenkonten zu vermeiden. Der Schalter "-f" überschreibt diesen Schutz.
Dieses Skript überprüft einen Server nur mit einer einzigen Anmeldeinformation. Dies ist beabsichtigt, da der Server eine vollständige Liste der Freigaben zurückgibt, wenn der Benutzer Zugriff auf nur eine Freigabe auf dem System hat.
./SMBHunt.pl [-a <account>] -i <file> [-o <output_file>]
./SMBHunt.pl -a 'testdomain\john:hunter2' -i portscan445.gnmap -o shares_found.txt
./SMBHunt.pl -h
-a, --account <string>
Benutzeranmeldeinformationen zum Testen. Benutzernamen werden in der Form 'Domäne\Benutzername:Passwort' akzeptiert ('Domäne' ist optional) Wenn kein Konto angegeben wird, sucht das Skript nach Null-Session-Freigaben
-i, --inputFile <file>
Eine Datei mit Systemen, getrennt durch eine neue Zeile, oder eine gnmap-Datei eines Portscans, die Port 445 enthält. Jeder Server mit offenem Port 445 wird auf SMB-Freigaben überprüft
-o, --output <file>
Ergebnisse in eine Datei schreiben
-f, --force
Zwingt das Skript, fortzufahren, selbst wenn die Domänenanmeldeinformationen möglicherweise falsch sind.
--noipc
IPC-Freigaben (IPC$) nicht anzeigen
--nohidden
Versteckte Freigaben (C$, IPC$, ADMIN$ usw.) nicht anzeigen
SMBList nimmt die Ausgabedatei von "SMBHunt.pl" (oder eine Datei mit Freigaben, getrennt durch eine neue Zeile im Format "\server\share") und führt eine rekursive Verzeichnisauflistung dieser Freigaben mit den bereitgestellten Anmeldeinformationen durch. SMBList versucht, sich bei der Freigabe zu authentifizieren, bis aus der bereitgestellten Liste eine gültige Anmeldeinformation gefunden wird. Anschließend werden die Verzeichnisauflistungen in einem angegebenen Unterverzeichnis gespeichert.
Dies macht die Dateiauflistung extrem einfach zu durchsuchen!
Die beste Ergebnisdatei ist: /ALL_COMBINED_RESULTS.txt
./SMBList.pl -c <credential/file> -s <share/file> -o <nonexistent directory>
./SMBList.pl -c credentials_found.txt -s shares_found.txt -o share_listing -m 150
./SMBList.pl -h
-c, --credentials <credential/file>
Eine einzelne Anmeldeinformation oder eine Datei mit Anmeldeinformationen zum Testen. Anmeldeinformationen werden in der Form 'Domäne\Benutzername:Passwort' akzeptiert, getrennt durch eine neue Zeile (bei Bereitstellung einer Datei)
-s, --shares <share/file>
Eine einzelne Freigabe oder eine Datei mit Freigaben zum Testen. Jede Anmeldeinformation wird auf Autorisierung getestet, bis eine gültige gefunden wird. Freigaben sollten in der Form "\server\share" vorliegen, getrennt durch eine neue Zeile (bei Bereitstellung einer Datei)
-o, --output <nonexistent directory>
Ein neues Verzeichnis wird mit diesem Namen erstellt. Zum Schutz der Ausgabe kann das Skript nicht ausgeführt werden, wenn dieses Verzeichnis bereits existiert. Es muss ein Verzeichnis sein, das nicht existiert!
-m, --maxexec <seconds>
Die maximale Zeit, die für das Abrufen einer Freigabe aufgewendet wird, in Sekunden. Standardwert ist 300 Sekunden (5 Minuten)
-f, --force
Entfernt niemals eine Freigabe aus der Liste, wenn sie einen Fehler verursacht, und entfernt niemals eine Anmeldeinformation, wenn eine Anmeldung fehlschlägt. Wenn Sie dieses Flag verwenden, stellen Sie sicher, dass Sie wissen, was Sie tun! Sie könnten Konten sperren, wenn Sie nicht vorsichtig sind!
-n, --nocreds
Keine Anmeldeinformationen in die Ausgabe einbeziehen. WARNUNG: Wenn Sie diesen Schalter verwenden, können Sie die Ausgabe nicht mit dem nächsten Tool "SMBGrab.pl" verwenden.
Dateiauflistungen von SMBList.pl können an dieses Dienstprogramm weitergeleitet werden, um die gewünschten Dateien von den Freigaben zu holen. Die ursprüngliche Auflistung von SMBList.pl sollte vor der Übergabe an dieses Skript "gegrept" werden, da sonst alle Dateien heruntergeladen werden (was dem Kopieren der gesamten Freigabe entspricht und schlecht ist).
Dieses Skript erfordert, dass SMBList.pl an es weitergeleitet wird. Beachten Sie die "Beispielverwendung" unten.
./SMBGrab.pl [-s <directory>]
grep -i 'password.txt' share_listing/ALL_COMBINED_RESULTS.TXT | ./SMBGrab.pl -s savedfiles
./SMBGrab.pl -h
Wenn keine Argumente angegeben werden, wird die Datei von der Freigabe abgerufen und dem Benutzer angezeigt. Sie wird nicht gespeichert.
-s, --savedir <directory>
Ein Verzeichnis, in dem alle abgerufenen Dateien gespeichert werden. Wenn dieses Verzeichnis nicht existiert, wird es erstellt. Die Verwendung dieses Arguments speichert die Dateien, verhindert jedoch, dass die Dateien auf dem Bildschirm ausgegeben werden
-a, --all
Alle weitergeleiteten Dateien lesen. Ohne diesen Schalter schützt das Skript vor versehentlichem Herunterladen großer Dateimengen, indem die Eingabe auf 100 Dateien begrenzt wird.
-n, --noedit
Dadurch bleiben die Dateien in ihrer ursprünglichen Form erhalten. Wenn dieser Schalter nicht verwendet wird, wird am Ende jeder Datei ein Hinweis mit Informationen zu den Dateimetadaten (Lese-/Schreibzeiten, Speicherort in der Freigabe usw.) hinzugefügt
-h, --help
Hilfemenü anzeigen
Bei Änderungen oder Funktionswünschen können Sie mich gerne kontaktieren!