S3Scanner: encontrando buckets de almacenamiento en la nube expuestos

S3Scanner · MIT

S3Scanner comprueba si existen buckets de almacenamiento en la nube y qué permisos exponen. Cubre S3 y proveedores compatibles con S3, y lee permisos sin necesitar credenciales de la cuenta objetivo.

Instalación

pipx install s3scanner
# o
docker run --rm ghcr.io/sa7mon/s3scanner scan --bucket example-assets

Comandos principales

# un bucket
s3scanner scan --bucket example-assets

# una lista de candidatos
s3scanner scan --buckets-file candidates.txt

# genera candidatos a partir de un nombre de empresa
s3scanner scan --bucket-name-file names.txt --enumerate

# salida JSON
s3scanner --json scan --buckets-file candidates.txt > buckets.json

# proveedores no-AWS
s3scanner --endpoint-url https://storage.googleapis.com scan --bucket example-assets

Salida

{"bucket":"example-assets","exists":true,"region":"us-east-1",
 "permissions":{"AuthUsers":{"read":true,"write":false},"AllUsers":{"read":true,"write":false}}}

AllUsers.read: true significa lectura anónima. Ese es el finding.

Dónde encaja en Tandera

S3Scanner es el núcleo de recon_cloud_enum — el flujo de footprint en la nube no autenticado que se ejecuta desde una seed de dominio y no necesita acceso a la cuenta de nube del cliente. Eso lo distingue de recon_cloud, que ejecuta prowler y scoutsuite contra una cuenta autenticada y ya conectada.

Se ejecuta en discovery, junto a cdncheck.

Uso en un pentest

Lee el permiso, no lo ejerzas. Confirmar AllUsers.read es el finding. Descargar el contenido es un manejo de datos que probablemente no estabas autorizado a hacer, y cambia la postura legal del engagement. Captura el estado del permiso como evidencia y detente.

El permiso de escritura es un crítico, siempre. AllUsers.write en un bucket que sirve un sitio web es defacement del sitio o compromiso de supply chain. Supera casi cualquier otra cosa que encuentres ese día.

Adivina nombres a partir de lo que ya tienes. Los nombres de bucket reflejan la organización: example-assets, example-backups, example-prod-logs. Construye la lista de candidatos a partir de los hostnames que tu recon ya produjo en lugar de una lista genérica.

Los buckets pertenecen a cuentas, no a dominios. Verifica que un bucket sea realmente del cliente antes de reportarlo. La similitud de nombre no es propiedad.

acceso anticipado

Consigue Tandera antes de tu próximo engagement.

Únete a la waitlist para acceso anticipado. Estamos incorporando equipos de pentest por oleadas.

Onboarding prioritario para equipos de pentest.
Línea directa con quienes lo construyen.
Precio de acceso anticipado, asegurado.

Sin spam, sin tarjeta. Cancela cuando quieras.

enespt-br