Escanea endpoints públicos de almacenamiento de objetos en la nube de Yandex, VK, Selectel, Sber, Alibaba, Tencent, Huawei y Baidu para encontrar buckets listables y objetos expuestos.
Escáner de exposición de almacenamiento de objetos en la nube para pruebas de seguridad autorizadas, trabajo de bug bounty e infraestructura propia.
BucketBuster comprueba nombres de buckets candidatos contra endpoints públicos de Yandex Cloud, VK Cloud, Selectel, SberCloud, Alibaba OSS, Tencent COS, Huawei OBS y Baidu BOS. Puede identificar buckets listables públicamente, coincidir nombres de objetos relacionados con certificados y, opcionalmente, descargar objetos accesibles públicamente mediante HTTP GET.
Autorización requerida: Utiliza esta herramienta únicamente contra activos que poseas o para los que tengas permiso explícito de prueba. Escanear o descargar datos de buckets de terceros puede ser ilegal. Eres responsable de cumplir con las leyes aplicables, contratos, reglas de bug-bounty y políticas del proveedor.
git clone <repository-url>
cd bucketbuster
python -m venv .venv
Activa el entorno virtual:
# Linux/macOS
source .venv/bin/activate
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
Instala las dependencias:
python -m pip install -r requirements.txt
Crea una wordlist como buckets.txt:
example-company
example-company-backup
example-company-documents
Ejecuta el conjunto de proveedores por defecto, Yandex Cloud y VK Cloud:
python bucketbuster.py --wordlist buckets.txt
El escáner informa de respuestas HTTP 200, listados públicos, nombres de objetos coincidentes y endpoints con acceso denegado que parecen existir. Una respuesta 404 se ignora.
| Flag de proveedor | Servicio | Familias de endpoints incluidas |
|---|---|---|
yandex | Yandex Cloud | Endpoints de Storage y website |
vk | VK Cloud | Endpoints vkcloud-storage.ru |
selectel | Selectel | Endpoints S3 y selstorage.ru |
sber | SberCloud | Endpoints OBS y s3.cloud.ru |
aliyun | Alibaba Cloud OSS | Regiones seleccionadas de China |
tencent | Tencent Cloud COS | Regiones seleccionadas de China y Asia |
huawei | Huawei Cloud OBS | Regiones seleccionadas de China |
baidu | Baidu Cloud BOS | Regiones seleccionadas de China y Asia |
Grupos de proveedores:
--providers russia # yandex, vk, selectel, sber
--providers china # aliyun, tencent, huawei, baidu
--providers all # todos los proveedores compatibles
También puedes proporcionar una lista separada por comas, por ejemplo:
python bucketbuster.py -w buckets.txt --providers aliyun,tencent
| Opción | Por defecto | Descripción |
|---|---|---|
-w, --wordlist PATH | Obligatorio | Archivo que contiene nombres de buckets candidatos, uno por línea. Las líneas en blanco y los comentarios que comienzan con # se ignoran. |
--providers VALUE | yandex,vk | Flags de proveedor separados por comas, o all, russia o china. |
--dns | Deshabilitado | Realiza una comprobación DNS pasiva y omite los nombres de host que no resuelven. |
-t, --threads N | 12 | Número de workers de bucket concurrentes. |
--delay SECONDS | 0.12 | Retardo entre peticiones HTTP. |
| Opción | Descripción |
|---|---|
--match-ext LIST | Extensiones separadas por comas como .pfx,.p12,.cer,.crt. Se añade un punto inicial cuando se omite. |
--match-name LIST | Subcadenas de nombre/ruta separadas por comas y sin distinción de mayúsculas y minúsculas. Se admite un comodín * simple. |
--match-regex PATTERN | Expresión regular sin distinción de mayúsculas y minúsculas que se compara con la clave completa del objeto. Pasa la opción varias veces para varios patrones. |
--match-cert | Habilita las extensiones y palabras clave de certificado integradas, incluidos CryptoPro, GOST, signing, certificate y términos de certificados rusos. |
Cuando se proporciona uno o más filtros, utilizan lógica OR: un objeto coincide si satisface cualquier extensión, nombre, regex o condición --match-cert configurada. Sin filtros, todos los objetos listados se consideran coincidentes para el reporte y la selección de descargas.
| Opción | Descripción |
|---|---|
-o, --output PATH | Escribe un informe JSON. Los resultados se transmiten durante el escaneo. |
--csv PATH | Escribe un informe CSV. Los resultados se transmiten durante el escaneo. |
| Opción | Por defecto | Descripción |
|---|---|---|
--download | Deshabilitado | Descarga objetos coincidentes de listados públicos mediante peticiones HTTP GET sin autenticación. |
--download-all | Deshabilitado | Con --download, intenta descargar todos los objetos de cada listado público analizado e ignora los filtros de coincidencia. |
--download-dir PATH | ./downloads | Directorio raíz para los objetos descargados. |
--allow-private-keys | Deshabilitado | Permite descargas de objetos .pfx, .p12, .key, .p8 y .pem. Úsalo solo cuando estés explícitamente autorizado. |
--download-all requiere --download. Las descargas están limitadas a 25 MiB por objeto, y las respuestas vacías o las respuestas que no sean 200 no se guardan. Los contenedores de claves privadas se bloquean a menos que se proporcione explícitamente --allow-private-keys.
Escanea proveedores de Rusia/CIS con comprobaciones DNS pasivas:
python bucketbuster.py -w buckets.txt --providers russia --dns
Escanea todos los proveedores compatibles y escribe ambos formatos de informe:
python bucketbuster.py \
--wordlist buckets.txt \
--providers all \
--dns \
--output findings.json \
--csv findings.csv
Reporta probables archivos de certificado por extensión:
python bucketbuster.py -w buckets.txt --match-ext .pfx,.p12,.cer,.crt,.der
Coincide nombres y rutas usando subcadenas y comodines simples:
python bucketbuster.py \
-w buckets.txt \
--match-name cryptopro,*keystore*,backups/*.sql
Usa múltiples expresiones regulares:
python bucketbuster.py \
-w buckets.txt \
--match-regex '.*backup.*\.sql$' \
--match-regex 'config/.*\.ya?ml$'
Habilita la lista integrada de extensiones y palabras clave relacionadas con certificados:
python bucketbuster.py -w buckets.txt --match-cert
Descarga solo objetos que coincidan con las extensiones seleccionadas:
python bucketbuster.py \
-w buckets.txt \
--providers aliyun,tencent \
--match-ext .cer,.crt,.p7b \
--download \
--download-dir ./authorized-downloads
Descarga todos los objetos visibles en un listado público. Esto ignora intencionadamente todos los filtros de coincidencia y solo debe usarse en un activo de prueba aprobado:
python bucketbuster.py -w buckets.txt --download --download-all
La entrada candidata puede ser un nombre de bucket simple, un nombre de host, una URL de almacenamiento completa o una URL path-style. Los nombres se normalizan y validan antes de cualquier operación DNS o HTTP. Los candidatos duplicados e inválidos se descartan.