Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
S3Scanner — Scannez les buckets S3 mal configurés à travers les API compatibles S3 ! | Kitploit
Outils/GitHubGitHub/sa7mon/s3scanner
Scanners de VulnérabilitésCollecte d'InformationsSécurité CloudMauvaise Configuration
GitHubsa7mon/s3scanner

S3Scanner

Scannez les buckets S3 mal configurés à travers les API compatibles S3 !

Voir le dépôt
3.2k414il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

S3Scanner

Fonctionnalités - Utilisation - Démarrage rapide - Installation - Discuter


Un outil pour trouver des buckets S3 ouverts dans AWS ou d'autres fournisseurs cloud :
  • AWS
  • DigitalOcean
  • DreamHost
  • GCP
  • Linode
  • Scaleway
  • Personnalisé
demo

Fonctionnalités

  • ⚡️ Scan multi-threadé
  • 🔭 Prend en charge de nombreux fournisseurs de stockage S3 intégrés ou personnalisés
  • 🕵️‍♀️ Analyse toutes les permissions des buckets pour détecter les mauvaises configurations
  • 💾 Sauvegarde des résultats dans une base de données Postgres
  • 🐇 Connexion à RabbitMQ pour une analyse automatisée à grande échelle
  • 🐳 Support Docker

Utilisé par

banner for six2dez/reconftw banner for yogeshojha/rengine banner for pry0cc/axiom - reads 'the dynamic infrastructure framework for everybody'

Utilisation

root@kitploit:~
INPUT: (1 required)
  -bucket        string  Name of bucket to check.
  -bucket-file   string  File of bucket names to check.
  -mq                    Connect to RabbitMQ to get buckets. Requires config file key "mq". Default: "false"

OUTPUT:
  -db       Save results to a Postgres database. Requires config file key "db.uri". Default: "false"
  -json     Print logs to stdout in JSON format instead of human-readable. Default: "false"

OPTIONS:
  -enumerate           Enumerate bucket objects (can be time-consuming). Default: "false"
  -provider    string  Object storage provider: aws, custom, digitalocean, dreamhost, gcp, linode, scaleway - custom requires config file. Default: "aws"
  -threads     int     Number of threads to scan with. Default: "4"

DEBUG:
  -verbose     Enable verbose logging. Default: "false"
  -version     Print version Default: "false"

If config file is required these locations will be searched for config.yml: "." "/etc/s3scanner/" "$HOME/.s3scanner/"

🚀 Soutien

Si vous avez trouvé cet outil utile, veuillez envisager de faire un don pour soutenir son développement. Vous trouverez les options de sponsoring sur le côté de cette page de dépôt ou dans FUNDING.yml

Un immense merci à tines pour être un sponsor continu de ce projet.

Démarrage rapide

Analyser les noms de buckets AWS listés dans un fichier, énumérer tous les objets

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

Analyser un bucket dans GCP, énumérer tous les objets et sauvegarder les résultats dans la base de données

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

Installation

Utilisation détaillée

Entrée

s3scanner nécessite exactement un type d'entrée : -bucket, -bucket-file ou -mq.

root@kitploit:~
INPUT: (1 required)
  -bucket        string  Name of bucket to check.
  -bucket-file   string  File of bucket names to check.
  -mq                    Connect to RabbitMQ to get buckets. Requires config file key "mq". Default: "false"

-bucket

Analyser un seul bucket

root@kitploit:~
s3scanner -bucket secret_uploads

-bucket-file

Analyse chaque nom de bucket listé dans le fichier

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

où names.txt contient un nom de bucket par ligne

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

Les noms de buckets apparaissant plusieurs fois ne seront analysés qu'une seule fois.

-mq

Se connecte à un serveur RabbitMQ et consomme des messages contenant des noms de buckets à analyser.

root@kitploit:~
s3scanner -mq

Les messages doivent être des objets Bucket encodés en JSON - reportez-vous à mqingest pour un exemple de publication en Golang.

-mq nécessite les clés de fichier de configuration mq.uri et mq.queue_name. Voir la section Fichier de configuration pour un exemple.

Sortie

root@kitploit:~
OUTPUT:
  -db       Save results to a Postgres database. Requires config file key "db.uri". Default: "false"
  -json     Print logs to stdout in JSON format instead of human-readable. Default: "false"

-db

Sauvegarde tous les résultats d'analyse dans une base de données PostgreSQL

root@kitploit:~
s3scanner -bucket images -db
  • Nécessite la clé de fichier de configuration db.uri. Voir la section Fichier de configuration pour un exemple.
  • Si vous utilisez -db, les résultats seront également affichés dans la console si vous utilisez -json ou le mode de sortie lisible par défaut.
  • s3scanner exécute la fonctionnalité Auto Migration de Gorm à chaque connexion à la base de données. Si le schéma contient déjà des tables avec les noms attendus par Gorm, ces tables peuvent voir leur structure modifiée. Il est recommandé de créer un schéma Postgres dédié aux résultats de s3scanner.

-json

Au lieu d'afficher les résultats d'analyse dans la console au format lisible par l'humain, affiche du JSON lisible par la machine.

root@kitploit:~
s3scanner -bucket images -json

Cela affichera un objet JSON par ligne dans la console, qui peut ensuite être redirigé vers jq ou d'autres outils acceptant une entrée JSON.

Exemple : Afficher le nom et la région du bucket pour tous les buckets qui existent

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

Options

root@kitploit:~
OPTIONS:
  -enumerate           Enumerate bucket objects (can be time-consuming). Default: "false"
  -provider    string  Object storage provider: aws, custom, digitalocean, dreamhost, gcp, linode, scaleway - custom requires config file. Default: "aws"
  -threads     int     Number of threads to scan with. Default: "4"

-enumerate

Énumère tous les objets stockés dans le bucket. Par défaut, s3scanner vérifie uniquement les permissions des buckets.

root@kitploit:~
s3scanner -bucket attachments -enumerate
  • Remarque : Cela peut prendre beaucoup de temps s'il y a un grand nombre d'objets stockés.
  • Lors de l'énumération, s3scanner demande des « pages » de 1 000 objets. S'il y a plus de 5 000 pages d'objets, il ignorera le reste.

-provider

Nom du fournisseur de stockage à utiliser pour vérifier les buckets.

root@kitploit:~
s3scanner -bucket assets -provider gcp
  • Utilisez « custom » pour cibler un fournisseur de stockage non pris en charge ou local.
  • Le fournisseur « custom » nécessite des clés de fichier de configuration sous providers.custom listées dans la section Fichier de configuration.

-threads

Nombre de threads à utiliser pour l'analyse.

root@kitploit:~
s3scanner -bucket secret_docs -threads 8
  • L'augmentation du nombre de threads augmentera le nombre de buckets analysés simultanément, mais n'accélérera pas l'énumération des objets. L'énumération est actuellement monothread par bucket.

Débogage

root@kitploit:~
DEBUG:
  -verbose     Enable verbose logging. Default: "false"
  -version     Print version Default: "false"

-verbose

Active la journalisation verbeuse des messages de débogage. Cette option génère beaucoup de logs et n'est pas recommandée sauf en cas de rapport de bug.

root@kitploit:~
s3scanner -bucket spreadsheets -verbose

-version

Affiche les informations de version et quitte.

root@kitploit:~
s3scanner -version
  • Affichera dev si compilé à partir des sources.

Développement

Un fichier docker compose est inclus, créant 4 conteneurs :

  • rabbitmq
  • postgres
  • app
  • mitm

2 profils sont configurés :

  • dev - Environnement de développement standard
  • dev-mitm - Environnement configuré avec mitmproxy pour une observation plus facile du trafic HTTP lors du débogage ou de l'ajout de nouveaux fournisseurs.

Pour lancer l'environnement de développement, exécutez make dev ou make dev-mitm. Accédez au conteneur app avec docker exec -it -w /app app_dev sh, puis go run . Si vous utilisez le profil dev-mitm, ouvrez http://127.0.0.1:8081 dans un navigateur pour visualiser et manipuler les appels HTTP effectués depuis le conteneur app.

Fichier de configuration

Si vous utilisez des flags nécessitant des options de configuration, s3scanner cherchera config.yml dans :

  • (répertoire actuel)
  • /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"

Lorsque s3scanner analyse le fichier de configuration, il prendra le endpoint_format et remplacera $REGION pour toutes les regions listées afin de créer une liste d'URL de points de terminaison.

API compatibles S3

Remarque : S3Scanner ne prend actuellement en charge que l'analyse des permissions des utilisateurs anonymes pour les services non-AWS

📚 Plus d'informations sur les API non-AWS peuvent être trouvées dans le wiki du projet.

Permissions

Cet outil tentera d'obtenir toutes les informations disponibles sur un bucket, mais c'est à vous d'interpréter les résultats.

Permissions possibles pour les buckets :

  • Lecture - Lister et voir tous les fichiers
  • Écriture - Écrire des fichiers dans le bucket
  • Lecture ACP - Lire toutes les politiques de contrôle d'accès attachées au bucket
  • Écriture ACP - Écrire des politiques de contrôle d'accès sur le bucket
  • Contrôle total - Toutes les permissions ci-dessus

Toutes ou certaines de ces permissions peuvent être définies pour les 2 principaux groupes d'utilisateurs :

  • Utilisateurs authentifiés
  • Utilisateurs publics (ceux sans informations d'identification AWS)
  • Utilisateurs/groupes individuels (hors scope de cet outil)

Ce que cela signifie : Ce n'est pas parce qu'un bucket n'autorise pas la lecture/l'écriture des ACL que vous ne pouvez pas lire/écrire des fichiers dans le bucket. Inversement, vous pouvez lister les ACL mais ne pas lire/écrire dans le bucket.

Licence

MIT

Télécharger l’outil
PlateformeVersionÉtapes
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
Autres - Compiler depuis les sourcesGitHub releasegit clone [email protected]:sa7mon/S3Scanner.git && cd S3Scanner && go build -o s3scanner .