
Whois para la nube: Herramienta de reconocimiento para atribución de proveedores de nube. Compatible con AWS, Azure, Google, Cloudflare y Digital Ocean.
Consulta una IP para encontrar el proveedor de nube y otros detalles basados en los datos publicados en JSON, CSV o texto del proveedor
Cloud edge es una herramienta de reconocimiento enfocada en explorar proveedores de servicios en la nube. Puede usarse para atribución y forense en la nube, pentesting, bug bounty, red teaming, o I+D general de proveedores de nube. Edge carga automáticamente los archivos de rangos de direcciones IP publicados por los Proveedores de Servicios en la Nube (CSP) (AWS, Azure, GCP, Cloudflare, Digital Ocean) y realiza una búsqueda de prefijo basada en la dirección IP de entrada. Se puede integrar con otras herramientas de reconocimiento. En una prueba de penetración de red en caja negra, edge descubre rápidamente con qué CSP está alojado el cliente, o simplemente verifica el alcance para las reglas de compromiso. Cada uno de estos CSP publica una lista de todos sus prefijos IP y/o netblocks. Para Azure y AWS, esto añade la región/centro de datos y el nombre del servicio. Esto es un excelente enriquecimiento para inteligencia de amenazas, permitiendo mapear direcciones IP a centros de datos físicos y servicios en la nube. Cloud Edge puede ser útil en flujos de trabajo de reconocimiento para saber rápidamente "con qué estás lidiando": analiza y realiza una búsqueda basada en el prefijo IP.

Aquí hay algunas notas sobre cómo funciona la herramienta para entradas y salidas.
Ejecuta Cloud Edge y automáticamente descargará todos los archivos de proveedores de nube soportados. Si los archivos no existen en el directorio de trabajo, se descargarán:
% ./edge
[INF] Iniciando Cloud Edge versión 0.2.4
[INF] El archivo cloud.json ha sido descargado y creado
[INF] El archivo aws.json ha sido descargado y creado
[INF] El archivo cloudflare-ipv4.txt ha sido descargado y creado
[INF] El archivo cloudflare-ipv6.txt ha sido descargado y creado
[INF] El archivo digitalocean.csv ha sido descargado y creado
[INF] El archivo azure.json ha sido descargado y creado
Si estás desconectado y no se pueden descargar, revisa el directorio csp-files en este repositorio. Cópialos al directorio de trabajo.
Cuando la herramienta se ejecuta por primera vez, intenta automáticamente descargar y cargar los seis archivos de rangos de direcciones IP de los proveedores de nube (JSON, texto y CSV) al directorio de trabajo. Así es como funciona:
Por defecto, intentará descargar los seis archivos desde las URLs siguientes, a menos que los archivos ya estén en el directorio de trabajo.
Cloud Edge verifica cada archivo antes de descargarlo. Por lo tanto, si el archivo ya existe, obviamente no se descargará de nuevo a menos que lo elimines.
Estos seis archivos están incluidos en este repositorio de GitHub en el directorio csp-files. Dado que los Proveedores de Nube actualizan sus listas con frecuencia, asegúrate de tener los archivos más recientes eliminando los archivos en tu directorio de trabajo: aws.json, azure.json, cloud.json, cloudflare-ipv4.txt, cloudflare-ipv6.txt, digitalocean.csv.
Si se encuentran en el directorio de trabajo, todos los prefijos IP se cargan en memoria. Los archivos de rangos IP de los proveedores de nube siempre intentan cargarse desde el directorio de trabajo. La búsqueda real se habilita con la bandera -prefix.
Cuando el modo -dns está activado, las búsquedas DNS tanto de registros A como CNAME se almacenan en búfer sin mostrar hasta que todas las consultas DNS hayan terminado. Después de que las consultas terminan, se muestra la salida.
Por defecto, la salida muestra mensajes informativos que comienzan con [INF]. Esto se puede desactivar con la bandera -silent. La salida se verá así:
./edge -single 140.179.144.130
[INF] Búsqueda de prefijo IP único de 140.179.144.130
[INF] IP coincidente [140.179.144.130] con Proveedor de Nube mediante prefijo [AWS:140.179.144.128/25]
[INF] IP coincidente [140.179.144.130] con Servicio en la Nube [API_GATEWAY] y Región [cn-north-1]
140.179.144.130,Provider:AWS;Prefix:140.179.144.128/25;Region:cn-north-1;Service:API_GATEWAY
Los mensajes informativos te dirán si se encuentra un registro a través de un registro DNS 'A', registro DNS 'CNAME', certificado (crt.sh), o si se encuentra una coincidencia de prefijo. Las coincidencias de prefijo te indicarán el proveedor de nube detectado con el prefijo coincidente, así como el servicio en la nube y la región si corresponde. Las regiones de Azure no se detectan actualmente, pero las de AWS sí.
Con los modos -dns o crt, la salida se envía por defecto a la consola como resultados delimitados por comas. Esto facilita el uso de otras herramientas para analizar estos resultados.
FQDN,IP,SOURCE,CNAME,DESCRIPTION
-prefix está activado.Con el modo -prefix y ya sea -ip o -nmap, la salida se envía por defecto a la consola como resultados delimitados por comas:
IP,DESCRIPTION
La IP es la dirección IP y la DESCRIPTION son los resultados de la búsqueda en los rangos de direcciones IP de los archivos JSON del proveedor de nube, si corresponde.
Con el modo -ptr y ya sea ip o nmap, la salida se envía por defecto a la consola como resultados delimitados por comas:
IP,PTR
La IP es la dirección IP y el PTR es el resultado de la búsqueda DNS PTR si se encuentra.
La bandera -ip indica que se debe iterar a través de una lista de direcciones IP y se puede usar en modo prefix o ptr. Cuando ejecutas la herramienta con -ip <hosts.txt>, espera que cada dirección IP esté en una línea separada e itera a través de la lista realizando búsquedas. Aquí hay un ejemplo del contenido del archivo:
user@host:~/demo$ cat ip.txt
3.133.110.237
18.117.232.92
18.221.247.211
3.137.199.52
La bandera -nmap indica que se debe analizar un archivo XML de nmap. Buscará cualquier host en el archivo de escaneo de nmap marcado como "Up". Por ejemplo, -nmap scan1.xml le indicará a la herramienta que analice el archivo scan1.xml y busque cualquier host marcado como Up por nmap. Luego lo ejecutas con -ptr o -prefix para realizar una búsqueda de la IP.
La herramienta realiza enumeración clásica de subdominios iterando a través de una wordlist que contiene nombres de host, un nombre de host por línea. Esto se usa en el modo -dns con -wordlist <hosts.txt>. Un ejemplo de cómo se ve esto para el archivo hosts.txt:
user@host:~/demo$ more subdomains-5k.txt
www
blog
news
blogs
en
online
$ edge -help
Uso de edge:
-crt
Modo de búsqueda de transparencia de certificados
-csv string
Salida de resultados a un archivo CSV
-dns
Modo de búsqueda de registros A y CNAME
-domain string
El dominio sobre el que realizar adivinanzas.
-ip string
El archivo de texto a usar con direcciones IP
-nmap string
Archivo XML de escaneo nmap a usar.
-output
Habilitar salida a CSV
-prefix
Modo de búsqueda de prefijo IP CSP
-ptr
Modo de búsqueda PTR
-resolver string
El servidor DNS a usar. (por defecto "8.8.8.8:53")
-silent
Habilitar modo silencioso para suprimir [INF]
-single string
Dirección IP única para realizar una búsqueda de prefijo
-verbose
Habilitar salida detallada
-wordlist string
La wordlist a usar para adivinar.
-workers int
La cantidad de workers a usar. (por defecto 10)
Ejemplo #1: Consultar una sola dirección IP
edge -single <ip_address>
Descripción: Realiza una búsqueda de prefijo de una sola dirección IP suministrada con <ip_addr> contra los archivos JSON del proveedor de nube.
Salida de ejemplo:
edge -single 140.179.144.130
[INF] Búsqueda de prefijo IP único de 140.179.144.130
[INF] IP coincidente [140.179.144.130] con Proveedor de Nube mediante prefijo [AWS:140.179.144.128/25]
[INF] IP coincidente [140.179.144.130] con Servicio en la Nube [API_GATEWAY] y Región [cn-north-1]
140.179.144.130,Provider:AWS;Prefix:140.179.144.128/25;Region:cn-north-1;Service:API_GATEWAY
Ejemplo #2: Consultar una sola dirección IP y suprimir mensajes de información
$ edge -single <ip_address> -silent
Descripción: Igual que arriba, pero activa el modo silencioso. Esto suprime los mensajes [INF] con información adicional.
Salida de ejemplo:
edge -single 140.179.144.130
140.179.144.130,Provider:AWS;Prefix:140.179.144.128/25;Region:cn-north-1;Service:API_GATEWAY
Ejemplo #3: Usar archivos JSON locales del proveedor en lugar de descargarlos.
edge -single <ip_address> -silent -nd
Descripción: No intenta descargar los archivos JSON del proveedor, sino que usa los archivos locales en el directorio de trabajo.
Ejemplo #4: Enumeración de subdominios con wordlist, transparencia de certificados y búsqueda de prefijo.
edge -domain <domain> -dns -crt -prefix -wordlist <wordlist.txt>
Descripción: Realiza una enumeración de subdominios con wordlist de todos los registros A y CNAME basados en wordlist.txt contra el dominio con búsqueda de transparencia de certificados. Para cada host encontrado con Cert transparency, también realiza una búsqueda DNS. Realiza una búsqueda de prefijo IP de la dirección IP en los tres proveedores de servicios en la nube según sus listas publicadas de prefijos IP.
Salida de ejemplo:
edge -domain tesla.com -dns -crt -prefix -wordlist subdomains-5k.txt
[INF] Host encontrado via crt.sh [nas-origin.tesla.com]
nas-origin.tesla.com,,Certificate,,
[INF] Host encontrado via crt.sh [eua-origin.tesla.com]
eua-origin.tesla.com,,Certificate,,
[INF] Host encontrado via CNAME [fleetview.prd.na.fn.tesla.com.:fleetview.prd.usw2.fn.tesla.com]
fleetview.prd.na.fn.tesla.com.,,CNAME,fleetview.prd.usw2.fn.tesla.com,
[INF] Host encontrado via CNAME [fleetview.prd.usw2.fn.tesla.com.:a69ff530d53f14d8e8059a3aee44e9ab-1848028946.us-west-2.elb.amazonaws.com]
fleetview.prd.usw2.fn.tesla.com.,,CNAME,a69ff530d53f14d8e8059a3aee44e9ab-1848028946.us-west-2.elb.amazonaws.com,
[INF] Host encontrado via A [a69ff530d53f14d8e8059a3aee44e9ab-1848028946.us-west-2.elb.amazonaws.com:52.39.128.70]
[INF] Coincidencia de Proveedor de Nube mediante prefijo [AWS:52.36.0.0/14]
[INF] IP coincidente [52.39.128.70] con Servicio en la Nube [EC2] y Región [us-west-2]
Ejemplo #5: Enumeración de subdominios con wordlist sin transparencia de certificados ni búsqueda de prefijo IP.
edge -domain <domain> -dns -wordlist <wordlist.txt>
Descripción: Realiza solo un escaneo de wordlist de todos los registros A y CNAME basados en wordlist.
Salida de ejemplo:
edge -domain tesla.com -dns -wordlist subdomains-5k.txt
[INF] Host encontrado via CNAME [fleetview.prd.na.fn.tesla.com.:fleetview.prd.usw2.fn.tesla.com]
fleetview.prd.na.fn.tesla.com.,,CNAME,fleetview.prd.usw2.fn.tesla.com,
[INF] Host encontrado via A [e9056.b.akamaiedge.net:23.2.254.58]
e9056.b.akamaiedge.net,23.2.254.58,A,teslamotors.vanity3.ca1.qualtrics.com,
Ejemplo #6: Enumeración de subdominios con wordlist sin transparencia de certificados, pero consultando el prefijo IP para cualquier dirección IP encontrada.
edge -domain <domain> -dns -wordlist <wordlist.txt> -prefix
Descripción: Realiza solo un escaneo de wordlist de todos los registros A y CNAME basados en wordlist. Para cada dirección IP enumerada, realiza una búsqueda de prefijo.
Ejemplo #7: Búsqueda en registros de transparencia de certificados.
edge -domain <domain> -crt
Descripción: Realiza una búsqueda en el registro de transparencia de certificados usando https://crt.sh
Salida de ejemplo:
edge -domain tesla.com -crt
[INF] Ejecutando búsqueda de transparencia de certificados crt.sh
[INF] Host encontrado via crt.sh [solarbonds.tesla.com]
solarbonds.tesla.com,,Certificate,,
[INF] Host encontrado via crt.sh [energydesk.tesla.com]
energydesk.tesla.com,,Certificate,,
Ejemplo #8: Transparencia de certificados con búsqueda DNS
edge -domain <domain> -dns -crt
Descripción: Realiza una búsqueda de transparencia de certificados. Para cada host descubierto mediante Cert Transparency, realiza una búsqueda DNS completa de A o CNAME.
Ejemplo #9: Búsqueda de prefijo IP con lista de direcciones IP
edge -prefix -ip <ip-hosts.txt>
Descripción: Realiza una búsqueda de la dirección IP en el prefijo IP del proveedor de servicios en la nube. Toma una lista de direcciones IP en ip-hosts.txt y la recorre realizando una búsqueda. Una dirección IP por línea.
Salida de ejemplo:
edge -prefix -ip ip-hosts.txt
[INF] IP coincidente [140.179.144.130] con Proveedor de Nube mediante prefijo [AWS:140.179.144.128/25]
[INF] IP coincidente [140.179.144.130] con Servicio en la Nube [API_GATEWAY] y Región [cn-north-1]
140.179.144.130,Provider:AWS;Prefix:140.179.144.128/25;Region:cn-north-1;Service:API_GATEWAY
[INF] IP coincidente [18.189.124.22] con Proveedor de Nube mediante prefijo [AWS:18.189.0.0/16]
[INF] IP coincidente [18.189.124.22] con Servicio en la Nube [EC2] y Región [us-east-2]
18.189.124.22,Provider:AWS;Prefix:18.189.0.0/16;Region:us-east-2;Service:EC2
[INF] IP coincidente [20.60.128.132] con Proveedor de Nube mediante prefijo [Azure:20.60.0.0/16]
[INF] IP coincidente [20.60.128.132] con Servicio en la Nube [AzureStorage]
20.60.128.132,Provider:Azure;Prefix:20.60.0.0/16;Name:Storage;ID:Storage;Platform:Azure;SystemService:AzureStorage
Ejemplo #10: Búsqueda DNS PTR con lista de direcciones IP
edge -ptr -ip <ip-hosts.txt>
Descripción: Realiza una búsqueda DNS PTR basada en la dirección IP de cada línea de ip-hosts.txt.
Salida de ejemplo:
edge -ptr -ip ip-hosts.txt
140.179.144.130,ec2-140-179-144-130.cn-north-1.compute.amazonaws.com.cn.
Ejemplo #11: Analiza un archivo nmap y realiza una búsqueda de prefijo de las direcciones IP encontradas
edge -prefix -nmap <results.xml>
Descripción: Analiza un archivo XML de escaneo nmap, identificando todos los hosts "Up". Para cada host "Up" en los resultados del escaneo nmap XML, realiza una búsqueda de prefijo IP para el proveedor de servicios en la nube.
Ejemplo #12: Analiza un archivo nmap y realiza una búsqueda DNS PTR de cada dirección IP encontrada
edge -ptr -nmap <results.xml>
Descripción: Analiza un archivo XML de escaneo nmap y realiza una búsqueda PTR de cada host "Up".
Ejemplo #13: Añade concurrencia con 100 workers para mejorar el rendimiento
edge -domain <domain> -dns -wordlist <wordlist.txt> -workers 100
Descripción: Utiliza un escaneo DNS concurrente de 100 workers. Esto aumenta la velocidad de escaneo. Workers por defecto: 10.
Ejemplo #14: Especifica un resolvedor DNS
edge -domain <domain> -dns -wordlist <wordlist.txt> -resolver 8.8.4.4:53
Descripción: Especifica un resolvedor DNS de 8.8.4.4 en el puerto 53. El valor por defecto es 8.8.8.8.
Puedes obtener los binarios precompilados o compilarlo. Asegúrate de obtener también los archivos JSON de prefijos IP del proveedor de nube.
Probado y compilado con go 1.25
$ git clone https://github.com/iknowjason/edge.git
$ cd edge
~/edge$ go build edge.go
~/edge$ ./edge (Verificar que funciona)
@mosesrenegade por la inspiración de la herramienta
@0xdabbad00 por las herramientas generales de AWS y la inspiración
Esta herramienta se inspiró en muchas otras herramientas y autores, incluyendo dnsrecon y gobuster. Sí, lo sé. No hay mucho nuevo aquí, solo otra herramienta de enumeración de subdominios. Solo tenía muchas ganas de aprender Golang :-)
Libro "Black Hat Go"
| Proveedor | Archivo Local | URL Remota |
|---|
| AWS | aws.json | https://ip-ranges.amazonaws.com/ip-ranges.json |
| Azure | azure.json | https://azservicetags.azurewebsites.net/ |
| GCP | cloud.json | https://www.gstatic.com/ipranges/cloud.json |
| Cloudflare | cloudflare-ipv4.txt | https://www.cloudflare.com/ips-v4/# |
| Cloudflare | cloudflare-ipv6.txt | https://www.cloudflare.com/ips-v6/# |
| Digital Ocean | digitalocean.csv | https://digitalocean.com/geo/google.csv |