
Whois per il Cloud: Strumento di ricognizione per l'attribuzione dei provider cloud. Supporta AWS, Azure, Google, Cloudflare e Digital Ocean.
Cerca un IP per trovare il provider cloud e altri dettagli basandosi sui dati JSON, CSV o di testo pubblicati dal provider
Cloud edge è uno strumento di ricognizione focalizzato sull'esplorazione dei provider di servizi cloud. Può essere utilizzato per l'attribuzione e la forensica cloud, test di penetrazione, bug bounty, red teaming o R&D generale dei provider cloud. Edge carica automaticamente i file degli intervalli di indirizzi IP pubblicati dai Cloud Service Provider (CSP) (AWS, Azure, GCP, Cloudflare, Digital Ocean) ed esegue una ricerca per prefisso basata sull'indirizzo IP di input. Può essere integrato con altri strumenti di ricognizione. In un test di penetrazione di rete black box, edge scopre rapidamente con quale CSP cloud è ospitato il cliente, o semplicemente per verificare il campo di applicazione per le regole di ingaggio. Ciascuno di questi CSP pubblica un elenco di tutti i propri prefissi IP e/o netblock. Per Azure e AWS, vengono aggiunte la regione/centro dati e il nome del servizio. Questo rappresenta un eccellente arricchimento per l'intelligence sulle minacce, consentendo di mappare gli indirizzi IP a centri dati fisici e servizi cloud. Cloud Edge può essere utile nei flussi di lavoro di ricognizione per sapere rapidamente "con cosa hai a che fare" – analizza rapidamente ed esegue una ricerca basata sul prefisso IP.

Ecco alcune note su come funziona lo strumento per input e output.
Esegui Cloud Edge e scaricherà automaticamente tutti i file supportati dai provider cloud. Se i file non esistono nella directory di lavoro, verranno scaricati:
% ./edge
[INF] Starting Cloud Edge version 0.2.4
[INF] File cloud.json has been downloaded and created
[INF] File aws.json has been downloaded and created
[INF] File cloudflare-ipv4.txt has been downloaded and created
[INF] File cloudflare-ipv6.txt has been downloaded and created
[INF] File digitalocean.csv has been downloaded and created
[INF] File azure.json has been downloaded and created
Se sei offline e non possono essere scaricati, controlla la directory csp-files in questo repository. Copiali nella directory di lavoro.
Quando lo strumento viene eseguito per la prima volta, tenta automaticamente di scaricare e caricare i sei file JSON, di testo e CSV degli intervalli di indirizzi IP dei provider cloud nella directory di lavoro. Ecco come funziona:
Per impostazione predefinita tenterà di scaricare i sei file dagli URL seguenti, a meno che i file non siano già presenti nella directory di lavoro.
Cloud Edge controlla ogni file prima di scaricarlo. Quindi se il file esiste già, ovviamente non verrà scaricato di nuovo a meno che non lo si elimina.
Questi sei file sono inclusi in questo repository github nella directory csp-files. Poiché i provider cloud aggiornano frequentemente i loro elenchi, assicurati di avere i file più recenti rimuovendo i file nella tua directory di lavoro: aws.json, azure.json, cloud.json, cloudflare-ipv4.txt, cloudflare-ipv6.txt, digitalocean.csv.
Se trovati nella directory di lavoro, tutti i prefissi IP vengono caricati in memoria. I file degli intervalli IP dei provider cloud tentano sempre di caricarsi dalla directory di lavoro. L'abilitazione della ricerca effettiva viene eseguita con il flag -prefix.
Quando la modalità -dns è abilitata, le ricerche DNS per i record A e CNAME vengono memorizzate nel buffer senza visualizzazione fino a quando tutte le query DNS non sono terminate. Dopo che le query sono terminate, l'output viene visualizzato.
Per impostazione predefinita, l'output visualizza messaggi informativi che iniziano con [INF]. Questo può essere disabilitato con il flag -silent. L'output sarà simile a questo:
./edge -single 140.179.144.130
[INF] Single IP prefix lookup of 140.179.144.130
[INF] Matched IP [140.179.144.130] to Cloud Provider via prefix [AWS:140.179.144.128/25]
[INF] Matched IP [140.179.144.130] to Cloud Service [API_GATEWAY] and Region [cn-north-1]
140.179.144.130,Provider:AWS;Prefix:140.179.144.128/25;Region:cn-north-1;Service:API_GATEWAY
I messaggi informativi ti diranno se un record è stato trovato tramite un record DNS 'A', record DNS 'CNAME', certificato (crt.sh) o se è stata trovata una corrispondenza di prefisso. Le corrispondenze di prefisso indicheranno il provider cloud rilevato con il prefisso corrispondente, nonché il servizio cloud e la regione se applicabile. Le regioni di Azure non vengono attualmente rilevate, ma quelle di AWS sì.
Con la modalità -dns o crt, l'output viene inviato per impostazione predefinita alla console come risultati delimitati da virgole. Questo semplifica l'uso di altri strumenti per analizzare questi risultati.
FQDN,IP,SOURCE,CNAME,DESCRIPTION
-prefix.Con la modalità -prefix e -ip o -nmap, l'output viene inviato per impostazione predefinita alla console come risultati delimitati da virgole:
IP,DESCRIPTION
Il IP è l'indirizzo IP e la DESCRIPTION sono i risultati della ricerca degli intervalli di indirizzi IP nei file JSON degli intervalli di indirizzi IP del provider cloud, se applicabile.
Con la modalità -ptr e ip o nmap, l'output viene inviato per impostazione predefinita alla console come risultati delimitati da virgole:
IP,PTR
Il IP è l'indirizzo IP e il PTR sono i risultati della ricerca PTR DNS se trovata.
Il flag -ip segnala di iterare attraverso un elenco di indirizzi IP e può essere utilizzato in modalità prefix o ptr. Quando esegui lo strumento con -ip <hosts.txt>, si aspetta ogni indirizzo IP su una riga separata e itererà attraverso l'elenco eseguendo le ricerche. Ecco un esempio del contenuto del file:
user@host:~/demo$ cat ip.txt
3.133.110.237
18.117.232.92
18.221.247.211
3.137.199.52
Il flag -nmap segnala di analizzare un file XML di nmap. Cercherà qualsiasi host nel file di scansione nmap contrassegnato come "Up". Ad esempio, -nmap scan1.xml dirà allo strumento di analizzare il file scan1.xml e cercare qualsiasi host contrassegnato come Up da nmap. Successivamente lo esegui con -ptr o -prefix per effettuare una ricerca dell'IP.
Lo strumento esegue l'enumerazione classica dei sottodomini iterando attraverso una wordlist contenente hostname, un hostname per riga. Questo viene utilizzato in modalità -dns con -wordlist <hosts.txt>. Un esempio di come appare per il file hosts.txt:
user@host:~/demo$ more subdomains-5k.txt
www
blog
news
blogs
en
online
$ edge -help
Usage of edge:
-crt
Certificate transparency lookup mode
-csv string
Output results to CSV file
-dns
A and CNAME record lookup mode
-domain string
The domain to perform guessing against.
-ip string
The text file to use with IP addresses
-nmap string
Nmap scan xml file to use.
-output
Enable output to CSV
-prefix
IP Prefix CSP lookup mode
-ptr
PTR lookup mode
-resolver string
The DNS server to use. (default "8.8.8.8:53")
-silent
Enable silent mode to suppress [INF]
-single string
Single IP address to do a prefix lookup
-verbose
Enable verbose output
-wordlist string
The wordlist to use for guessing.
-workers int
The amount of workers to use. (default 10)
Esempio #1: Ricerca di un singolo indirizzo IP
edge -single <ip_address>
Descrizione: Esegue una ricerca per prefisso di un singolo indirizzo IP fornito con <ip_addr> nei file JSON del provider cloud.
Output di esempio:
edge -single 140.179.144.130
[INF] Single IP prefix lookup of 140.179.144.130
[INF] Matched IP [140.179.144.130] to Cloud Provider via prefix [AWS:140.179.144.128/25]
[INF] Matched IP [140.179.144.130] to Cloud Service [API_GATEWAY] and Region [cn-north-1]
140.179.144.130,Provider:AWS;Prefix:140.179.144.128/25;Region:cn-north-1;Service:API_GATEWAY
Esempio #2: Ricerca di un singolo indirizzo IP con soppressione dei messaggi informativi
$ edge -single <ip_address> -silent
Descrizione: Come sopra, ma abilita la modalità silenziosa. Sopprime i messaggi [INF] con informazioni extra.
Output di esempio:
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
Esempio #3: Utilizzare file JSON locali del provider invece di scaricarli.
edge -single <ip_address> -silent -nd
Descrizione: Non tenta di scaricare i file JSON del provider, ma utilizza i file locali nella directory di lavoro.
Esempio #4: Enumerazione dei sottodomini tramite wordlist con trasparenza dei certificati e ricerca per prefisso.
edge -domain <domain> -dns -crt -prefix -wordlist <wordlist.txt>
Descrizione: Esegue un'enumerazione dei sottodomini tramite wordlist di tutti i record A e CNAME basati su wordlist.txt per il dominio con ricerca nella trasparenza dei certificati. Per ogni host trovato con Cert transparency, esegue anche una ricerca DNS. Effettua una ricerca per prefisso IP dell'indirizzo IP su tutti e tre i provider di servizi cloud con i loro elenchi pubblicati di prefissi IP.
Output di esempio:
edge -domain tesla.com -dns -crt -prefix -wordlist subdomains-5k.txt
[INF] Found host via crt.sh [nas-origin.tesla.com]
nas-origin.tesla.com,,Certificate,,
[INF] Found host via crt.sh [eua-origin.tesla.com]
eua-origin.tesla.com,,Certificate,,
[INF] Found host 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] Found host 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] Found host via A [a69ff530d53f14d8e8059a3aee44e9ab-1848028946.us-west-2.elb.amazonaws.com:52.39.128.70]
[INF] Matched Cloud Provider via prefix [AWS:52.36.0.0/14]
[INF] Matched IP [52.39.128.70] to Cloud Service [EC2] and Region [us-west-2]
Esempio #5: Enumerazione dei sottodomini tramite wordlist senza trasparenza dei certificati né ricerca per prefisso IP.
edge -domain <domain> -dns -wordlist <wordlist.txt>
Descrizione: Esegue solo una scansione tramite wordlist di tutti i record A e CNAME basati sulla wordlist.
Output di esempio:
edge -domain tesla.com -dns -wordlist subdomains-5k.txt
[INF] Found host 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] Found host via A [e9056.b.akamaiedge.net:23.2.254.58]
e9056.b.akamaiedge.net,23.2.254.58,A,teslamotors.vanity3.ca1.qualtrics.com,
Esempio #6: Enumerazione dei sottodomini tramite wordlist senza trasparenza dei certificati, ma con ricerca per prefisso IP per ogni indirizzo IP trovato.
edge -domain <domain> -dns -wordlist <wordlist.txt> -prefix
Descrizione: Esegue solo una scansione tramite wordlist di tutti i record A e CNAME basati sulla wordlist. Per ogni indirizzo IP enumerato, esegue una ricerca per prefisso.
Esempio #7: Ricerca nei log di trasparenza dei certificati.
edge -domain <domain> -crt
Descrizione: Esegue una ricerca nei log di trasparenza dei certificati utilizzando https://crt.sh
Output di esempio:
edge -domain tesla.com -crt
[INF] Running certificate transparency lookup crt.sh
[INF] Found host via crt.sh [solarbonds.tesla.com]
solarbonds.tesla.com,,Certificate,,
[INF] Found host via crt.sh [energydesk.tesla.com]
energydesk.tesla.com,,Certificate,,
Esempio #8: Trasparenza dei certificati con ricerca DNS.
edge -domain <domain> -dns -crt
Descrizione: Esegue una ricerca nella trasparenza dei certificati. Per ogni host scoperto tramite Cert Transparency, esegue una ricerca DNS completa di tipo A o CNAME.
Esempio #9: Ricerca per prefisso IP con elenco di indirizzi IP.
edge -prefix -ip <ip-hosts.txt>
Descrizione: Esegue una ricerca dell'indirizzo IP per il prefisso IP del provider di servizi cloud. Prende un elenco di indirizzi IP in ip-hosts.txt e lo esamina eseguendo una ricerca. Un indirizzo IP per riga.
Output di esempio:
edge -prefix -ip ip-hosts.txt
[INF] Matched IP [140.179.144.130] to Cloud Provider via prefix [AWS:140.179.144.128/25]
[INF] Matched IP [140.179.144.130] to Cloud Service [API_GATEWAY] and Region [cn-north-1]
140.179.144.130,Provider:AWS;Prefix:140.179.144.128/25;Region:cn-north-1;Service:API_GATEWAY
[INF] Matched IP [18.189.124.22] to Cloud Provider via prefix [AWS:18.189.0.0/16]
[INF] Matched IP [18.189.124.22] to Cloud Service [EC2] and Region [us-east-2]
18.189.124.22,Provider:AWS;Prefix:18.189.0.0/16;Region:us-east-2;Service:EC2
[INF] Matched IP [20.60.128.132] to Cloud Provider via prefix [Azure:20.60.0.0/16]
[INF] Matched IP [20.60.128.132] to Cloud Service [AzureStorage]
20.60.128.132,Provider:Azure;Prefix:20.60.0.0/16;Name:Storage;ID:Storage;Platform:Azure;SystemService:AzureStorage
Esempio #10: Ricerca DNS PTR con elenco di indirizzi IP.
edge -ptr -ip <ip-hosts.txt>
Descrizione: Esegue una ricerca PTR DNS basata sull'indirizzo IP di ogni riga di ip-hosts.txt.
Output di esempio:
edge -ptr -ip ip-hosts.txt
140.179.144.130,ec2-140-179-144-130.cn-north-1.compute.amazonaws.com.cn.
Esempio #11: Analizza un file nmap ed esegue una ricerca per prefisso degli indirizzi IP trovati.
edge -prefix -nmap <results.xml>
Descrizione: Analizza un file XML di scansione nmap, identificando tutti gli host "Up". Per ogni host "Up" nei risultati della scansione nmap, esegue una ricerca per prefisso IP per il provider di servizi cloud.
Esempio #12: Analizza un file nmap ed esegue una ricerca PTR DNS per ogni indirizzo IP trovato.
edge -ptr -nmap <results.xml>
Descrizione: Analizza un file XML di scansione nmap ed esegue una ricerca PTR di ogni host "Up".
Esempio #13: Aggiunge concorrenza con 100 worker per migliorare le prestazioni.
edge -domain <domain> -dns -wordlist <wordlist.txt> -workers 100
Descrizione: Utilizza una scansione DNS concorrente con 100 worker. Questo aumenta la velocità di scansione. Worker predefiniti: 10.
Esempio #14: Specifica un resolver DNS.
edge -domain <domain> -dns -wordlist <wordlist.txt> -resolver 8.8.4.4:53
Descrizione: Specifica un resolver DNS 8.8.4.4 sulla porta 53. Il valore predefinito è 8.8.8.8.
Puoi ottenere i binari precompilati o compilarli. Assicurati di ottenere anche i file JSON dei prefissi IP del provider cloud.
Testato e compilato con go 1.25
$ git clone https://github.com/iknowjason/edge.git
$ cd edge
~/edge$ go build edge.go
~/edge$ ./edge (Verify it)
@mosesrenegade per l'ispirazione dello strumento
@0xdabbad00 per strumenti AWS generali e ispirazione
Questo strumento è stato ispirato da molti altri strumenti e autori, tra cui dnsrecon e gobuster. Sì, lo so. Non c'è molto di nuovo qui - solo un altro strumento di enumerazione dei sottodomini. Volevo solo imparare Golang :-)
"Black Hat Go" libro
| Provider | Local File | Remote URL |
|---|
| 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 |