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
S3Scanner — Scanne nach fehlkonfigurierten S3-Buckets über S3-kompatible APIs! | Kitploit
Tools/GitHubGitHub/sa7mon/s3scanner
SchwachstellenscannerInformationsbeschaffungCloud-SicherheitFehlkonfiguration
GitHubsa7mon/s3scanner

S3Scanner

Scanne nach fehlkonfigurierten S3-Buckets über S3-kompatible APIs!

Repository anzeigen
3.2k414vor 1 MonatVon 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
Webseite

S3Scanner

Funktionen - Verwendung - Schnellstart - Installation - Diskutieren


Ein Werkzeug zum Auffinden offener S3-Buckets in AWS oder anderen Cloud-Anbietern:
  • AWS
  • DigitalOcean
  • DreamHost
  • GCP
  • Linode
  • Scaleway
  • Benutzerdefiniert
demo

Funktionen

  • ⚡️ Multi-Thread-Scanning
  • 🔭 Unterstützt viele integrierte S3-Speicheranbieter oder benutzerdefinierte
  • 🕵️‍♀️ Scannt alle Bucket-Berechtigungen, um Fehlkonfigurationen zu finden
  • 💾 Ergebnisse in einer Postgres-Datenbank speichern
  • 🐇 Verbindung zu RabbitMQ für automatisiertes Scannen in großem Maßstab herstellen
  • 🐳 Docker-Unterstützung

Verwendet von

Banner für six2dez/reconftw Banner für yogeshojha/rengine Banner für pry0cc/axiom – das dynamische Infrastruktur-Framework für jedermann

Verwendung

root@kitploit:~
EINGABE: (1 erforderlich)
  -bucket        string  Name des zu überprüfenden Buckets.
  -bucket-file   string  Datei mit Bucketnamen zur Überprüfung.
  -mq                    Verbindung zu RabbitMQ herstellen, um Buckets zu erhalten. Erfordert Konfigurationsdateischlüssel "mq". Standard: "false"

AUSGABE:
  -db       Ergebnisse in einer Postgres-Datenbank speichern. Erfordert Konfigurationsdateischlüssel "db.uri". Standard: "false"
  -json     Logs im JSON-Format auf stdout ausgeben anstatt menschenlesbar. Standard: "false"

OPTIONEN:
  -enumerate           Bucket-Objekte enumerieren (kann zeitaufwendig sein). Standard: "false"
  -provider    string  Objektspeicheranbieter: aws, custom, digitalocean, dreamhost, gcp, linode, scaleway – custom erfordert Konfigurationsdatei. Standard: "aws"
  -threads     int     Anzahl der Threads zum Scannen. Standard: "4"

DEBUG:
  -verbose     Ausführliche Protokollierung aktivieren. Standard: "false"
  -version     Version anzeigen Standard: "false"

Falls eine Konfigurationsdatei erforderlich ist, wird an diesen Speicherorten nach config.yml gesucht: "." "/etc/s3scanner/" "$HOME/.s3scanner/"

🚀 Unterstützung

Wenn Sie dieses Tool nützlich fanden, erwägen Sie bitte eine Spende zur Unterstützung seiner Entwicklung. Sie finden Sponsoring-Optionen auf der Seite dieses Repositorys oder in FUNDING.yml

Großen Dank an tines für die fortlaufende Unterstützung dieses Projekts.

Schnellstart

Scannen Sie AWS nach in einer Datei aufgelisteten Bucket-Namen, enumerieren Sie alle Objekte

root@kitploit:~
$ s3scanner -bucket-file names.txt -enumerate

Scannen Sie einen Bucket in GCP, enumerieren Sie alle Objekte und speichern Sie Ergebnisse in der Datenbank

root@kitploit:~
$ s3scanner -provider gcp -db -bucket my-bucket -enumerate

Installation

Verwendung

Eingabe

s3scanner benötigt genau einen Eingabetyp: -bucket, -bucket-file oder -mq.

root@kitploit:~
EINGABE: (1 erforderlich)
  -bucket        string  Name des zu überprüfenden Buckets.
  -bucket-file   string  Datei mit Bucketnamen zur Überprüfung.
  -mq                    Verbindung zu RabbitMQ herstellen, um Buckets zu erhalten. Erfordert Konfigurationsdateischlüssel "mq". Standard: "false"

-bucket

Scannt einen einzelnen Bucket

root@kitploit:~
s3scanner -bucket secret_uploads

-bucket-file

Scannt jeden in einer Datei aufgelisteten Bucket-Namen

root@kitploit:~
s3scanner -bucket-file names.txt

wobei names.txt einen Bucket-Namen pro Zeile enthält

root@kitploit:~
$ cat names.txt
bucket123
assets
image-uploads

Mehrfach aufgeführte Bucket-Namen werden nur einmal gescannt.

-mq

Stellt eine Verbindung zu einem RabbitMQ-Server her und verarbeitet Nachrichten, die Bucket-Namen zum Scannen enthalten.

root@kitploit:~
s3scanner -mq

Nachrichten sollten JSON-kodierte Bucket-Objekte sein – siehe mqingest für ein Golang-Veröffentlichungsbeispiel.

-mq erfordert die Konfigurationsdateischlüssel mq.uri und mq.queue_name. Siehe Abschnitt Konfigurationsdatei für ein Beispiel.

Ausgabe

root@kitploit:~
AUSGABE:
  -db       Ergebnisse in einer Postgres-Datenbank speichern. Erfordert Konfigurationsdateischlüssel "db.uri". Standard: "false"
  -json     Logs im JSON-Format auf stdout ausgeben anstatt menschenlesbar. Standard: "false"

-db

Speichert alle Scanergebnisse in einer PostgreSQL-Datenbank

root@kitploit:~
s3scanner -bucket images -db
  • Erfordert den Konfigurationsdateischlüssel db.uri. Siehe Abschnitt Konfigurationsdatei für ein Beispiel.
  • Bei Verwendung von -db werden Ergebnisse auch auf der Konsole ausgegeben, wenn -json oder der standardmäßige menschenlesbare Ausgabemodus verwendet wird.
  • s3scanner führt bei jeder Verbindung zur Datenbank Gorms Auto Migration aus. Falls das Schema bereits Tabellen mit den von Gorm erwarteten Namen enthält, kann dies deren Struktur verändern. Es wird empfohlen, ein Postgres-Schema zu erstellen, das nur für s3scanner-Ergebnisse bestimmt ist.

-json

Anstatt Scanergebnisse im menschenlesbaren Format auf der Konsole auszugeben, wird maschinenlesbares JSON ausgegeben.

root@kitploit:~
s3scanner -bucket images -json

Dies gibt pro Zeile ein JSON-Objekt auf der Konsole aus, das dann an jq oder andere Werkzeuge, die JSON-Eingaben akzeptieren, weitergeleitet werden kann.

Beispiel: Bucket-Name und Region für alle existierenden Buckets ausgeben

root@kitploit:~
$ s3scanner -bucket-file names.txt -json | jq -r '. | select(.bucket.exists==1) | [.bucket.name, .bucket.region] | join(" - ")'       
10000 - eu-west-1
10000.pizza - ap-southeast-1
images_staging - us-west-2

Optionen

root@kitploit:~
OPTIONEN:
  -enumerate           Bucket-Objekte enumerieren (kann zeitaufwendig sein). Standard: "false"
  -provider    string  Objektspeicheranbieter: aws, custom, digitalocean, dreamhost, gcp, linode, scaleway – custom erfordert Konfigurationsdatei. Standard: "aws"
  -threads     int     Anzahl der Threads zum Scannen. Standard: "4"

-enumerate

Enumeriert alle im Bucket gespeicherten Objekte. Standardmäßig überprüft s3scanner nur die Berechtigungen von Buckets.

root@kitploit:~
s3scanner -bucket attachments -enumerate
  • Hinweis: Dies kann bei einer großen Anzahl gespeicherter Objekte lange dauern.
  • Beim Enumerieren fordert s3scanner „Seiten" mit je 1.000 Objekten an. Gibt es mehr als 5.000 Seiten, wird der Rest übersprungen.

-provider

Name des zu verwendenden Speicheranbieters beim Überprüfen von Buckets.

root@kitploit:~
s3scanner -bucket assets -provider gcp
  • Verwenden Sie „custom", wenn ein derzeit nicht unterstützter oder lokaler Netzwerkspeicheranbieter als Ziel dient.
  • Der Anbieter „custom" erfordert Konfigurationsdateischlüssel unter providers.custom, die im Abschnitt Konfigurationsdatei aufgeführt sind.

-threads

Anzahl der Threads zum Scannen.

root@kitploit:~
s3scanner -bucket secret_docs -threads 8
  • Das Erhöhen der Threads erhöht die Anzahl der gleichzeitig gescannten Buckets, beschleunigt jedoch nicht die Objektenumerierung. Die Enumeration ist derzeit pro Bucket single-threaded.

Debug

root@kitploit:~
DEBUG:
  -verbose     Ausführliche Protokollierung aktivieren. Standard: "false"
  -version     Version anzeigen Standard: "false"

-verbose

Aktiviert ausführliche Protokollierung von Debug-Meldungen. Diese Option erzeugt viele Logs und wird nur bei der Meldung eines Fehlers empfohlen.

root@kitploit:~
s3scanner -bucket spreadsheets -verbose

-version

Versionsinformationen anzeigen und beenden.

root@kitploit:~
s3scanner -version
  • Gibt dev aus, wenn aus dem Quellcode kompiliert.

Entwicklung

Eine Docker-Compose-Datei ist enthalten, die 4 Container erstellt:

  • rabbitmq
  • postgres
  • app
  • mitm

2 Profile sind konfiguriert:

  • dev – Standard-Entwicklungsumgebung
  • dev-mitm – Umgebung mit mitmproxy konfiguriert zur einfacheren Beobachtung von HTTP-Verkehr beim Debuggen oder Hinzufügen neuer Anbieter.

Um die Entwicklungsumgebung zu starten, führen Sie make dev oder make dev-mitm aus. Wechseln Sie mit docker exec -it -w /app app_dev sh in den app-Container, dann go run . Wenn Sie das dev-mitm-Profil verwenden, öffnen Sie http://127.0.0.1:8081 in einem Browser, um HTTP-Aufrufe anzuzeigen und zu manipulieren, die vom App-Container getätigt werden.

Konfigurationsdatei

Wenn Flags verwendet werden, die Konfigurationsoptionen erfordern, sucht s3scanner nach config.yml in:

  • (aktuelles Verzeichnis)
  • /etc/s3scanner/
  • $HOME/.s3scanner/
root@kitploit:~
# Required by -db
db:
  uri: "postgresql://user:[email protected]:5432/schema_name"

# Required by -mq
mq:
  queue_name: "aws"
  uri: "amqp://user:pass@localhost:5672"

# providers.custom required by `-provider custom`
#   address_style - Addressing style used by endpoints.
#     type: string
#     values: "path" or "vhost"
#   endpoint_format - Format of endpoint URLs. Should contain '$REGION' as placeholder for region name
#     type: string
#   insecure - Ignore SSL errors
#     type: boolean
# regions must contain at least one option
providers:
  custom: 
    address_style: "path"
    endpoint_format: "https://$REGION.vultrobjects.com"
    insecure: false
    regions:
      - "ewr1"

Wenn s3scanner die Konfigurationsdatei analysiert, wird es das endpoint_format nehmen und für alle aufgeführten regions $REGION ersetzen, um eine Liste von Endpunkt-URLs zu erstellen.

S3-kompatible APIs

Hinweis: S3Scanner unterstützt derzeit nur das Scannen nach anonymen Benutzerberechtigungen von Nicht-AWS-Diensten

📚 Weitere Informationen zu Nicht-AWS-APIs finden Sie im Projekt-Wiki.

Berechtigungen

Dieses Tool versucht, alle verfügbaren Informationen über einen Bucket zu erhalten, aber es liegt an Ihnen, die Ergebnisse zu interpretieren.

Mögliche Berechtigungen für Buckets:

  • Lesen – Alle Dateien auflisten und anzeigen
  • Schreiben – Dateien in den Bucket schreiben
  • ACP lesen – Alle dem Bucket zugeordneten Zugriffskontrollrichtlinien lesen
  • ACP schreiben – Zugriffskontrollrichtlinien in den Bucket schreiben
  • Vollzugriff – Alle oben genannten Berechtigungen

Einige oder alle dieser Berechtigungen können für die 2 Hauptbenutzergruppen festgelegt werden:

  • Authentifizierte Benutzer
  • Öffentliche Benutzer (diejenigen ohne AWS-Anmeldeinformationen)
  • Einzelne Benutzer/Gruppen (nicht im Rahmen dieses Tools)

Was das bedeutet: Nur weil ein Bucket das Lesen/Schreiben von ACLs nicht erlaubt, heißt das nicht, dass Sie keine Dateien im Bucket lesen/schreiben können. Umgekehrt können Sie möglicherweise ACLs auflisten, aber keine Dateien im Bucket lesen/schreiben.

Lizenz

MIT

Tool herunterladen
PlattformVersionSchritte
BlackArchBlackArch packagepacman -S s3scanner
DockerDocker releasedocker run ghcr.io/sa7mon/s3scanner
GoGolanggo install -v github.com/sa7mon/s3scanner@latest
Kali LinuxKali packageapt install s3scanner
MacOShomebrew versionbrew install s3scanner
Parrot OSParrot packageapt install s3scanner
Windows - wingetwinget install s3scanner
NixOS stablenixpkgs unstable packagenix-shell -p s3scanner
NixOS unstablenixpkgs unstable packagenix-shell -p s3scanner
Andere – Aus Quellcode bauenGitHub releasegit clone [email protected]:sa7mon/S3Scanner.git && cd S3Scanner && go build -o s3scanner .