Skip to main content

CI

vamp-cloud-enum

Cloud Storage Bucket Enumerator — VampSecure Labs

VampSecure Labs · Security Research Division

🇬🇧 English · 🇪🇸 Español


🇬🇧 English

vamp-cloud-enum discovers and audits misconfigured cloud storage buckets across AWS S3, Azure Blob Storage, and Google Cloud Storage. Starting from one or more target domain names, the tool generates a candidate bucket name wordlist (40+ suffix and prefix permutations) and probes each combination across all three cloud providers simultaneously.

For each bucket found, the tool determines whether it is publicly accessible, whether directory listing is enabled, and whether the bucket name or exposed contents contain sensitive keywords — escalating severity accordingly. Public buckets with listing enabled are classified as CRITICAL; exposed namespaces without listing are classified based on sensitive-keyword presence.


Features

  • Three-provider coverage: AWS S3 (virtual-hosted, path-style, listing API, website endpoint), Azure Blob Storage (account and container enumeration), GCP Cloud Storage (path-style and virtual-hosted)
  • 40+ bucket name candidates generated from target domain permutations
  • Sensitive keyword detection for automatic severity escalation (backup, credentials, private, secret, config, etc.)
  • Custom wordlist support for organization-specific naming conventions
  • Provider filtering — run against a single provider or all three
  • Content listing detection — distinguishes PUBLIC (browseable) from PUBLIC (opaque)
  • Configurable concurrency and timeout for rate-sensitive environments

Requirements

Python 3.11+
aiohttp >= 3.9.0
rich >= 13.7.0

Install dependencies:

pip install -r requirements.txt

Installation

pip install vamp-cloud-enum
# or with Homebrew:
brew install vampsecure-labs/labs/vamp-cloud-enum
git clone https://github.com/Vampsecure-Labs/vamp-cloud-enum.git
cd vamp-cloud-enum
pip install -r requirements.txt

Usage

python vamp_cloud_enum.py -d DOMAIN [OPTIONS]

Target (required, repeatable):
  -d, --domain DOMAIN            Target domain — use multiple times for multiple domains

Wordlist:
  -w, --wordlist FILE            Custom wordlist for bucket name generation

Provider selection:
      --providers PROVIDER,...   Comma-separated: s3, azure, gcp (default: all)

Performance:
      --concurrency N            Concurrent HTTP workers (default: 30)
      --timeout N                Per-request timeout in seconds (default: 8)

Analysis control:
      --no-content-listing       Skip directory listing detection probes

Output:
      --json FILE                Write findings to JSON
      --html FILE                Generate standalone HTML report

Examples

Enumerate all providers for a single target domain:

python vamp_cloud_enum.py -d example.com

Enumerate multiple domains and generate a JSON report:

python vamp_cloud_enum.py -d example.com -d subsidiary.com -o cloud_findings.json

Check only AWS S3 with a custom wordlist:

python vamp_cloud_enum.py -d example.com --providers s3 -w corp_names.txt

Full enumeration with HTML report for client delivery:

python vamp_cloud_enum.py -d example.com -d example-cdn.com \
  --providers s3,azure,gcp \
  --concurrency 50 \
  --html cloud_report.html

Output Formats

Format How to enable Description
Console Default Rich table with provider, bucket name, status, listing, and severity
JSON --json FILE Full structured findings with URL, provider, status code, and keywords found
HTML --html FILE Standalone dark-theme report for client delivery or archival

Exit Codes

Code Meaning CI/CD usage
0 No public buckets found Pass gate
1 HIGH findings — public bucket without listing Escalate to owner
2 CRITICAL findings — listing enabled or sensitive-name public bucket Fail gate — immediate action required

Severity Model

Severity Condition
CRITICAL Bucket is PUBLIC and directory listing is enabled, or public bucket name contains sensitive keywords
HIGH Bucket is PUBLIC — accessible but listing is disabled
MEDIUM Bucket is PRIVATE but name contains sensitive keywords (namespace exposure)
LOW Bucket namespace exists but content is fully private

Sample Output

$ python vamp_cloud_enum.py -d example.com --providers s3,azure,gcp
  vamp-cloud-enum v1.4 — Cloud Storage Bucket Enumerator
  Target: example.com | Providers: S3 · Azure · GCP
  Generating 43 candidate bucket names...
  ────────────────────────────────────────────────────────────

  [CRITICAL] S3 — example-com-backup
    URL: https://example-com-backup.s3.amazonaws.com
    Status: PUBLIC · Listing: ENABLED
    Keywords detected: backup
    Objects visible: 47  (includes .sql.gz, .tar.gz, config/)

  [HIGH]     S3 — example-assets
    URL: https://example-assets.s3.amazonaws.com
    Status: PUBLIC · Listing: disabled
    Keywords: none

  [MEDIUM]   Azure — examplecomcredentials
    URL: https://examplecomcredentials.blob.core.windows.net
    Status: PRIVATE · Namespace: exposed
    Keywords detected: credentials

  ────────────────────────────────────────────────────────────
  Candidates tested: 129 (43 × 3 providers) | Buckets found: 3
  CRITICAL: 1 | HIGH: 1 | MEDIUM: 1 | Duration: 4.2 s
  Exit code: 2

Why vamp-cloud-enum vs. CloudEnum · S3Scanner · GrayhatWarfare

Feature vamp-cloud-enum CloudEnum S3Scanner GrayhatWarfare
AWS S3 enumeration ✅ ✅ ✅ ✅
Azure Blob Storage ✅ ✅ ❌ ⚠️ search only
GCP Cloud Storage ✅ ✅ ❌ ⚠️ search only
Sensitive keyword severity escalation ✅ ❌ ❌ ❌
Directory listing detection ✅ ⚠️ ✅ ❌
Async concurrent probing (aiohttp) ✅ ❌ sync ❌ n/a
Standalone HTML report ✅ dark theme ❌ ❌ ✅ web UI
OWASP Cloud Top 10 mapping ✅ ❌ ❌ ❌
CIS Cloud Foundations alignment ✅ ❌ ❌ ❌
Self-hosted / no account required ✅ ✅ ✅ ❌ SaaS
  • Severity escalation: automatic CRITICAL upgrade when an exposed bucket name contains sensitive keywords (backup, secret, credentials, config, private) — surfaces the highest-impact findings without manual triage.
  • Async three-provider sweep: all three cloud providers are probed simultaneously per candidate, not in sequence — 43 candidates × 3 providers in under 5 seconds.
  • Client-ready HTML: dark-theme standalone report is the only format in this category suitable for immediate pentest deliverable inclusion.

Check Coverage

Check ID Description Standard Severity
CE-001 S3 bucket publicly accessible with directory listing enabled OWASP Cloud C4 CRITICAL
CE-002 Azure Blob container public with listing (anonymous read+list) OWASP Cloud C4 · CIS Azure 3.3 CRITICAL
CE-003 GCP bucket public with object listing enabled CIS GCP 5.1 CRITICAL
CE-004 S3 bucket public but listing disabled (opaque public) OWASP Cloud C5 HIGH
CE-005 Azure Blob public without listing (unauthenticated read) CIS Azure 3.3 HIGH
CE-006 GCP bucket public without listing enabled CIS GCP 5.2 HIGH
CE-007 S3 website endpoint active (unauthenticated index.html) OWASP Cloud C4 HIGH
CE-008 Private bucket with sensitive keyword in name (namespace leak) OWASP Cloud C5 MEDIUM
CE-009 Bucket namespace exposed — private, no sensitive keywords CIS Cloud L1 LOW
CE-010 Multiple public buckets sharing the same domain root CIS Cloud Foundations 2.1 HIGH

Part of VampSecure Labs Toolkit

vamp-cloud-enum is part of the VampSecure Labs Security Research Toolkit — a collection of professional-grade, self-hosted security assessment tools.

Tool Purpose
vamp-forticheck Multi-vendor edge device CVE scanner
vamp-cve-oracle CVE intelligence and RBVM engine
vamp-passive-recon Passive recon and attack surface mapping
vamp-subdomain-takeover Subdomain takeover vulnerability scanner
vamp-cloud-enum Cloud storage bucket enumerator
vamp-orchestrator Multi-tool assessment orchestrator

Version History

Version Main changes
v1.5 Findings now carry their OWASP Cloud Top 10 / CIS Cloud Foundations reference (standard field in JSON) by exposure state — the comparison table advertised the mapping; the output now delivers it.
v1.4 Bilingual README (EN/ES)
v1.3 GCP Cloud Functions detection
v1.1 Cloud Storage Bucket Enumerator — AWS S3, Azure, GCP

© VampSecure Studios — VampSecure Labs Security Research Division
For authorized security assessments only. Unauthorized use is prohibited.



🇪🇸 Español

vamp-cloud-enum descubre y audita buckets de almacenamiento cloud mal configurados en AWS S3, Azure Blob Storage y Google Cloud Storage. A partir de uno o más dominios objetivo, la herramienta genera una lista de candidatos de nombres de bucket (más de 40 permutaciones de sufijos y prefijos) y prueba cada combinación en los tres proveedores simultáneamente.

Para cada bucket encontrado, determina si es públicamente accesible, si el listado de directorios está habilitado y si el nombre del bucket o el contenido expuesto contiene palabras clave sensibles — escalando la severidad según corresponda. Los buckets públicos con listado habilitado se clasifican como CRITICAL; los espacios de nombres expuestos sin listado se clasifican según la presencia de palabras clave sensibles.


Características

  • Cobertura de tres proveedores: AWS S3 (virtual-hosted, path-style, listing API, website endpoint), Azure Blob Storage (enumeración de cuentas y contenedores), GCP Cloud Storage (path-style y virtual-hosted)
  • Más de 40 nombres candidatos de bucket generados a partir de permutaciones del dominio objetivo
  • Detección de palabras clave sensibles para escalado automático de severidad (backup, credentials, private, secret, config, etc.)
  • Soporte de wordlist personalizada para convenciones de nomenclatura específicas de la organización
  • Filtrado por proveedor — ejecutar contra un solo proveedor o los tres
  • Detección de listado de contenido — distingue PÚBLICO (navegable) de PÚBLICO (opaco)
  • Concurrencia y timeout configurables para entornos sensibles a la tasa de peticiones

Requisitos

Python 3.11+
aiohttp >= 3.9.0
rich >= 13.7.0

Instalar dependencias:

pip install -r requirements.txt

Instalación

pip install vamp-cloud-enum
# o con Homebrew:
brew install vampsecure-labs/labs/vamp-cloud-enum
git clone https://github.com/Vampsecure-Labs/vamp-cloud-enum.git
cd vamp-cloud-enum
pip install -r requirements.txt

Uso

python vamp_cloud_enum.py -d DOMINIO [OPCIONES]

Objetivo (obligatorio, repetible):
  -d, --domain DOMINIO           Dominio objetivo — usar varias veces para múltiples dominios

Wordlist:
  -w, --wordlist FICHERO         Wordlist personalizada para la generación de nombres de bucket

Selección de proveedor:
      --providers PROVEEDOR,...  Lista separada por comas: s3, azure, gcp (por defecto: todos)

Rendimiento:
      --concurrency N            Workers HTTP concurrentes (por defecto: 30)
      --timeout N                Timeout por petición en segundos (por defecto: 8)

Control de análisis:
      --no-content-listing       Omitir sondas de detección de listado de directorios

Salida:
      --json FICHERO             Escribir hallazgos en JSON
      --html FICHERO             Generar informe HTML standalone

Ejemplos

Enumerar todos los proveedores para un dominio objetivo:

python vamp_cloud_enum.py -d ejemplo.com

Enumerar múltiples dominios y generar un informe JSON:

python vamp_cloud_enum.py -d ejemplo.com -d filial.com -o hallazgos_cloud.json

Comprobar solo AWS S3 con una wordlist personalizada:

python vamp_cloud_enum.py -d ejemplo.com --providers s3 -w nombres_empresa.txt

Enumeración completa con informe HTML para entrega al cliente:

python vamp_cloud_enum.py -d ejemplo.com -d ejemplo-cdn.com \
  --providers s3,azure,gcp \
  --concurrency 50 \
  --html informe_cloud.html

Formatos de salida

Formato Cómo activar Descripción
Consola Por defecto Tabla Rich con proveedor, nombre de bucket, estado, listado y severidad
JSON --json FICHERO Hallazgos estructurados completos con URL, proveedor, código de estado y palabras clave encontradas
HTML --html FICHERO Informe standalone dark-theme para entrega al cliente o archivo

Exit codes

Código Significado Uso en CI/CD
0 No se encontraron buckets públicos Pasa el gate
1 Hallazgos HIGH — bucket público sin listado Escalar al responsable
2 Hallazgos CRITICAL — listado habilitado o bucket público con nombre sensible Falla el gate — acción inmediata requerida

Modelo de severidad

Severidad Condición
CRITICAL El bucket es PÚBLICO y el listado de directorios está habilitado, o el nombre del bucket público contiene palabras clave sensibles
HIGH El bucket es PÚBLICO — accesible pero sin listado
MEDIUM El bucket es PRIVADO pero el nombre contiene palabras clave sensibles (exposición de namespace)
LOW El namespace del bucket existe pero el contenido es completamente privado

Salida de ejemplo

$ python vamp_cloud_enum.py -d ejemplo.com --providers s3,azure,gcp
  vamp-cloud-enum v1.4 — Cloud Storage Bucket Enumerator
  Target: ejemplo.com | Providers: S3 · Azure · GCP
  Generando 43 nombres candidatos de bucket...
  ────────────────────────────────────────────────────────────

  [CRITICAL] S3 — ejemplo-com-backup
    URL: https://ejemplo-com-backup.s3.amazonaws.com
    Status: PUBLIC · Listing: ENABLED
    Keywords detected: backup
    Objects visible: 47  (incluye .sql.gz, .tar.gz, config/)

  [HIGH]     S3 — ejemplo-assets
    URL: https://ejemplo-assets.s3.amazonaws.com
    Status: PUBLIC · Listing: disabled
    Keywords: none

  [MEDIUM]   Azure — ejemplocomcredentials
    URL: https://ejemplocomcredentials.blob.core.windows.net
    Status: PRIVATE · Namespace: exposed
    Keywords detected: credentials

  ────────────────────────────────────────────────────────────
  Candidatos probados: 129 (43 × 3 providers) | Buckets encontrados: 3
  CRITICAL: 1 | HIGH: 1 | MEDIUM: 1 | Duración: 4.2 s
  Exit code: 2

Why vamp-cloud-enum vs. CloudEnum · S3Scanner · GrayhatWarfare

Feature vamp-cloud-enum CloudEnum S3Scanner GrayhatWarfare
AWS S3 enumeration ✅ ✅ ✅ ✅
Azure Blob Storage ✅ ✅ ❌ ⚠️ solo búsqueda
GCP Cloud Storage ✅ ✅ ❌ ⚠️ solo búsqueda
Sensitive keyword severity escalation ✅ ❌ ❌ ❌
Directory listing detection ✅ ⚠️ ✅ ❌
Async concurrent probing (aiohttp) ✅ ❌ sync ❌ n/a
Standalone HTML report ✅ dark theme ❌ ❌ ✅ web UI
OWASP Cloud Top 10 mapping ✅ ❌ ❌ ❌
CIS Cloud Foundations alignment ✅ ❌ ❌ ❌
Self-hosted / no account required ✅ ✅ ✅ ❌ SaaS
  • Escalado de severidad: upgrade automático a CRITICAL cuando el nombre de un bucket expuesto contiene palabras clave sensibles (backup, secret, credentials, config, private) — permite detectar los hallazgos de mayor impacto sin triaje manual.
  • Barrido asíncrono de tres proveedores: los tres proveedores cloud se sondean simultáneamente por candidato, no en secuencia — 43 candidatos × 3 proveedores en menos de 5 segundos.
  • HTML listo para cliente: el informe standalone dark-theme es el único formato de esta categoría adecuado para su inclusión directa en entregables de pentest.

Check Coverage

Check ID Description Standard Severity
CE-001 S3 bucket publicly accessible with directory listing enabled OWASP Cloud C4 CRITICAL
CE-002 Azure Blob container public with listing (anonymous read+list) OWASP Cloud C4 · CIS Azure 3.3 CRITICAL
CE-003 GCP bucket public with object listing enabled CIS GCP 5.1 CRITICAL
CE-004 S3 bucket public but listing disabled (opaque public) OWASP Cloud C5 HIGH
CE-005 Azure Blob public without listing (unauthenticated read) CIS Azure 3.3 HIGH
CE-006 GCP bucket public without listing enabled CIS GCP 5.2 HIGH
CE-007 S3 website endpoint active (unauthenticated index.html) OWASP Cloud C4 HIGH
CE-008 Private bucket with sensitive keyword in name (namespace leak) OWASP Cloud C5 MEDIUM
CE-009 Bucket namespace exposed — private, no sensitive keywords CIS Cloud L1 LOW
CE-010 Multiple public buckets sharing the same domain root CIS Cloud Foundations 2.1 HIGH

Parte del toolkit VampSecure Labs

vamp-cloud-enum es parte del toolkit de investigación de seguridad de VampSecure Labs — una colección de herramientas de evaluación de seguridad profesionales y auto-hospedadas.

Herramienta Propósito
vamp-forticheck Escáner CVE multi-vendor de dispositivos de borde
vamp-cve-oracle Inteligencia CVE y motor RBVM
vamp-passive-recon Reconocimiento pasivo y mapeo de superficie de ataque
vamp-subdomain-takeover Escáner de vulnerabilidades de subdomain takeover
vamp-cloud-enum Enumerador de buckets de almacenamiento cloud
vamp-orchestrator Orquestador de evaluaciones multi-herramienta

Historial de versiones

Versión Cambios principales
v1.5 Los hallazgos llevan ahora su referencia OWASP Cloud Top 10 / CIS Cloud Foundations (campo standard en JSON) según el estado de exposición — la tabla comparativa anunciaba el mapeo; la salida ahora lo entrega.
v1.4 README bilingüe (EN/ES)
v1.3 Detección de GCP Cloud Functions
v1.1 Cloud Storage Bucket Enumerator — AWS S3, Azure, GCP

© VampSecure Studios — VampSecure Labs Security Research Division
Solo para evaluaciones de seguridad autorizadas. El uso no autorizado está prohibido.

Metadata

Release files for vamp-cloud-enum 1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vamp-cloud-enum 1.5
File Size Uploaded Provenance Actions
vamp_cloud_enum-1.5.tar.gz 61.0 kB Without provenance Details for vamp_cloud_enum-1.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for vamp-cloud-enum 1.5
File Interpreter ABI Platform Actions
vamp_cloud_enum-1.5-py3-none-any.whl Python 3 none any Details for vamp_cloud_enum-1.5-py3-none-any.whl

Total release size: 112.6 kB

Release files / vamp_cloud_enum-1.5.tar.gz

Download URL vamp_cloud_enum-1.5.tar.gz
Size 61.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e881394f8f2ee63063c967b25d8517bae7a160db2b1fd914ff2d8ef335af7b8e
BLAKE2b-256 checksum
How to use checksums
0b53e26cdd662400ab9a3a95e547922b13893f6a80d5e496e1e817f989d8121e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / vamp_cloud_enum-1.5-py3-none-any.whl

Download URL vamp_cloud_enum-1.5-py3-none-any.whl
Size 51.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6fd98afe16eb635ff172984b6b29afddce28d9d5cf4a199b42b70eccc2f9298b
BLAKE2b-256 checksum
How to use checksums
1196b1495c0a4ac792b5df22bf7cfdef0632b137f45849fbef7ad94c8151e035
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for vamp-cloud-enum 1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page