Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
S3Scanner — Escanea en busca de buckets S3 mal configurados a través de APIs compatibles con S3! | Kitploit
Herramientas/GitHubGitHub/sa7mon/s3scanner
Escáneres de VulnerabilidadesRecopilación de InformaciónSeguridad en la NubeMala Configuración
GitHubsa7mon/s3scanner

S3Scanner

Escanea en busca de buckets S3 mal configurados a través de APIs compatibles con S3!

Ver Repositorio
3.2k414hace 1 mesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

S3Scanner

Características - Uso - Inicio rápido - Instalación - Discutir


Una herramienta para encontrar buckets S3 abiertos en AWS u otros proveedores de nube:
  • AWS
  • DigitalOcean
  • DreamHost
  • GCP
  • Linode
  • Scaleway
  • Custom
demostración

Características

  • ⚡️ Escaneo multihilo
  • 🔭 Soporta muchos proveedores de almacenamiento S3 integrados o personalizado
  • 🕵️‍♀️ Escanea todos los permisos del bucket para encontrar configuraciones incorrectas
  • 💾 Guarda los resultados en una base de datos Postgres
  • 🐇 Conecta a RabbitMQ para escaneo automatizado a escala
  • 🐳 Soporte para Docker

Usado por

banner para six2dez/reconftw banner para yogeshojha/rengine banner para pry0cc/axiom - lee 'el marco de infraestructura dinámica para todos'

Uso

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/"

🚀 Soporte

Si has encontrado útil esta herramienta, por favor considera donar para apoyar su desarrollo. Puedes encontrar opciones de patrocinio en el lateral de esta página del repositorio o en FUNDING.yml

Un enorme agradecimiento a tines por ser un patrocinador continuo de este proyecto.

Inicio rápido

Escanea AWS por nombres de bucket listados en un archivo, enumera todos los objetos

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

Escanea un bucket en GCP, enumera todos los objetos y guarda los resultados en la base de datos

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

Instalación

Uso

Entrada

s3scanner requiere exactamente un tipo de entrada: -bucket, -bucket-file, o -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

Escanea un único bucket

root@kitploit:~
s3scanner -bucket secret_uploads

-bucket-file

Escanea cada nombre de bucket listado en el archivo

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

donde names.txt contiene un nombre de bucket por línea

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

Los nombres de bucket listados varias veces solo se escanearán una vez.

-mq

Se conecta a un servidor RabbitMQ y consume mensajes que contienen nombres de bucket para escanear.

root@kitploit:~
s3scanner -mq

Los mensajes deben ser objetos Bucket codificados en JSON - consulte mqingest para un ejemplo de publicación en Golang.

-mq requiere las claves de archivo de configuración mq.uri y mq.queue_name. Consulte la sección de Archivo de Configuración para un ejemplo.

Salida

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

Guarda todos los resultados del escaneo en una base de datos PostgreSQL

root@kitploit:~
s3scanner -bucket images -db
  • Requiere la clave de archivo de configuración db.uri. Consulte la sección de Archivo de Configuración para un ejemplo.
  • Si se usa -db, los resultados también se imprimirán en la consola si se usa -json o el modo de salida legible por humanos predeterminado.
  • s3scanner ejecuta la característica Auto Migration de Gorm cada vez que se conecta a la base de datos. Si el esquema ya tiene tablas con nombres que Gorm espera, puede cambiar la estructura de esas tablas. Se recomienda crear un esquema Postgres dedicado a los resultados de s3scanner.

-json

En lugar de mostrar los resultados del escaneo en la consola en formato legible por humanos, muestra JSON legible por máquina.

root@kitploit:~
s3scanner -bucket images -json

Esto imprimirá un objeto JSON por línea en la consola, que luego se puede enviar a través de tuberías a jq u otras herramientas que aceptan entrada JSON.

Ejemplo: Imprime el nombre del bucket y la región para todos los buckets que existen

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

Opciones

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

Enumera todos los objetos almacenados en el bucket. Por defecto, s3scanner solo verificará los permisos de los buckets.

root@kitploit:~
s3scanner -bucket attachments -enumerate
  • Nota: Esto puede llevar mucho tiempo si hay una gran cantidad de objetos almacenados.
  • Al enumerar, s3scanner solicitará "páginas" de 1,000 objetos. Si hay más de 5,000 páginas de objetos, omitirá el resto.

-provider

Nombre del proveedor de almacenamiento a utilizar al verificar los buckets.

root@kitploit:~
s3scanner -bucket assets -provider gcp
  • Use "custom" cuando se dirija a un proveedor de almacenamiento no soportado actualmente o de red local.
  • El proveedor "custom" requiere claves de archivo de configuración bajo providers.custom listadas en la sección de Archivo de Configuración.

-threads

Número de hilos para escanear.

root@kitploit:~
s3scanner -bucket secret_docs -threads 8
  • Aumentar los hilos aumentará el número de buckets escaneados simultáneamente, pero no acelerará la enumeración de objetos. La enumeración actualmente es de un solo hilo por bucket.

Depuración

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

-verbose

Habilita el registro detallado de mensajes de depuración. Esta opción generará muchos registros y no se recomienda su uso a menos que se esté reportando un error.

root@kitploit:~
s3scanner -bucket spreadsheets -verbose

-version

Imprime la información de la versión y sale.

root@kitploit:~
s3scanner -version
  • Imprimirá dev si se compila desde el código fuente.

Desarrollo

Se incluye un archivo docker compose que crea 4 contenedores:

  • rabbitmq
  • postgres
  • app
  • mitm

Se configuran 2 perfiles:

  • dev - Entorno de desarrollo estándar
  • dev-mitm - Entorno configurado con mitmproxy para una observación más fácil del tráfico HTTP al depurar o agregar nuevos proveedores.

Para levantar el entorno de desarrollo ejecuta make dev o make dev-mitm. Ingresa al contenedor app con docker exec -it -w /app app_dev sh, luego go run . Si se usa el perfil dev-mitm, abre http://127.0.0.1:8081 en un navegador para ver y manipular las llamadas HTTP realizadas desde el contenedor de la aplicación.

Archivo de Configuración

Si se usan banderas que requieren opciones de configuración, s3scanner buscará config.yml en:

  • (directorio actual)
  • /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"

Cuando s3scanner analiza el archivo de configuración, tomará el endpoint_format y reemplazará $REGION por todas las regions listadas para crear una lista de URLs de endpoint.

APIs compatibles con S3

Nota: S3Scanner actualmente solo soporta el escaneo de permisos de usuario anónimo de servicios que no son AWS

📚 Más información sobre APIs no AWS se puede encontrar en la wiki del proyecto.

Permisos

Esta herramienta intentará obtener toda la información disponible sobre un bucket, pero depende de ti interpretar los resultados.

Permisos posibles para los buckets:

  • Leer - Listar y ver todos los archivos
  • Escribir - Escribir archivos en el bucket
  • Leer ACP - Leer todas las Políticas de Control de Acceso adjuntas al bucket
  • Escribir ACP - Escribir Políticas de Control de Acceso en el bucket
  • Control Total - Todos los permisos anteriores

Cualquiera o todos estos permisos pueden establecerse para los 2 grupos principales de usuarios:

  • Usuarios autenticados
  • Usuarios públicos (aquellos sin credenciales AWS establecidas)
  • Usuarios/grupos individuales (fuera del alcance de esta herramienta)

Lo que esto significa: El hecho de que un bucket no permita leer/escribir ACL no significa que no puedas leer/escribir archivos en el bucket. Por el contrario, es posible que puedas listar ACL pero no leer/escribir en el bucket.

Licencia

MIT

Descargar herramienta
PlataformaVersiónPasos
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
Otros - Compilar desde el código fuenteGitHub releasegit clone [email protected]:sa7mon/S3Scanner.git && cd S3Scanner && go build -o s3scanner .