
Herramienta de OSINT multi-nube. Enumera recursos públicos en AWS, Azure y Google Cloud.
Construí esta herramienta en 2019 para un pentest que involucraba Azure, ya que ninguna otra herramienta de enumeración lo soportaba en ese momento. Creció a partir de ahí, y aprendí mucho mientras añadía funcionalidades.
Construir herramientas es divertido, pero mantenerlas es difícil. No he usado esta herramienta activamente yo mismo desde hace un tiempo, pero he hecho lo posible por corregir errores y revisar pull requests.
De cara al futuro, tiene sentido consolidar esta funcionalidad en un proyecto bien mantenido que se encargue de lo esencial (peticiones web/DNS, threading, I/O, logging, etc.). Nuclei es realmente adecuado para esto. Puedes ver mi primer PR para migrar la funcionalidad de cloud_enum a Nuclei aquí.
Animo a otros a contribuir con plantillas a Nuclei, permitiéndonos centrarnos en detectar recursos en la nube mientras dejamos las bases a Nuclei.
Seguiré intentando revisar los PRs aquí para solucionar errores según lo permita el tiempo, pero probablemente no tenga tiempo para cambios importantes.
Gracias a todos los grandes contribuidores. ¡Buena suerte con vuestro recon!
Herramienta OSINT multi-nube. Enumera recursos públicos en AWS, Azure y Google Cloud.
Actualmente enumera lo siguiente:
Amazon Web Services:
Microsoft Azure:
Google Cloud Platform
Véalo en acción en la demo en vídeo de Codingo aquí.
Este proyecto utiliza uv para la gestión de dependencias. Instala uv y luego ejecuta:
uv sync
O instálalo como herramienta independiente:
uv tool install git+https://github.com/initstring/cloud_enum
El único argumento obligatorio es al menos una palabra clave. Puedes usar las cadenas de fuzzing integradas, pero obtendrás mejores resultados si proporcionas las tuyas propias con -m y/o -b.
Puedes proporcionar múltiples palabras clave especificando el argumento -k varias veces.
Las palabras clave se mutan automáticamente usando cadenas de enum_tools/fuzz.txt o un archivo que proporciones con el flag -m. Los servicios que requieren un segundo nivel de fuerza bruta (Azure Containers y GCP Functions) también usarán fuzz.txt por defecto o un archivo que proporciones con el flag -b.
Digamos que estabas investigando "somecompany" cuyo sitio web es "somecompany.io" que fabrica un producto llamado "blockchaindoohickey". Podrías ejecutar la herramienta así:
uv run cloud_enum -k somecompany -k somecompany.io -k blockchaindoohickey
El scraping HTTP y las búsquedas DNS usan 5 hilos cada uno por defecto. Puedes intentar aumentarlo, pero eventualmente los proveedores de nube te limitarán la tasa. Aquí tienes un ejemplo para aumentar a 10.
uv run cloud_enum -k keyword -t 10
IMPORTANTE: Algunos recursos (Azure Containers, GCP Functions) se descubren por región. Para ahorrar tiempo de escaneo, hay una variable "REGIONS" definida en enum_tools/azure_regions.py y enum_tools/gcp_regions.py que está configurada por defecto para usar solo 1 región. Es posible que quieras revisar estos archivos y editarlos para que sean relevantes para tu propio trabajo.
Detalles completos de uso
usage: cloud_enum [-h] (-k KEYWORD | -kf KEYFILE) [-m MUTATIONS] [-b BRUTE] [-t THREADS]
[-ns NAMESERVER] [-nsf NAMESERVERFILE] [-l LOGFILE] [-f FORMAT] [--disable-aws]
[--disable-azure] [--disable-gcp] [-qs]
Multi-cloud enumeration utility. All hail OSINT!
options:
-h, --help show this help message and exit
-k, --keyword KEYWORD
Keyword. Can use argument multiple times.
-kf, --keyfile KEYFILE
Input file with a single keyword per line.
-m, --mutations MUTATIONS
Mutations. Default: enum_tools/fuzz.txt
-b, --brute BRUTE List to brute-force Azure container names. Default: enum_tools/fuzz.txt
-t, --threads THREADS
Threads for HTTP brute-force. Default = 5
-ns, --nameserver NAMESERVER
DNS server to use in brute-force. Default: 1.1.1.1
-nsf, --nameserverfile NAMESERVERFILE
Path to the file containing nameserver IPs
-l, --logfile LOGFILE
Appends found items to specified file.
-f, --format FORMAT Format for log file (text,json,csv) - default: text
--disable-aws Disable Amazon checks.
--disable-azure Disable Azure checks.
--disable-gcp Disable Google checks.
-qs, --quickscan Disable all mutations and second-level scans
Hasta ahora, he tomado prestado de: