
Whois for the Cloud: Recon-Tool für die Zuordnung von Cloud-Anbietern. Unterstützt AWS, Azure, Google, Cloudflare und Digital Ocean.
Ermitteln Sie zu einer IP den Cloud-Anbieter und weitere Details basierend auf den veröffentlichten JSON-, CSV- oder Textdaten des Anbieters
Cloud edge ist ein Recon-Tool, das auf die Erkundung von Cloud-Service-Providern spezialisiert ist. Es kann für Cloud-Attribution und Forensik, Pentesting, Bug Bounty, Red Teaming oder allgemeine Forschung und Entwicklung von Cloud-Anbietern eingesetzt werden. Edge lädt automatisch die veröffentlichten IP-Adressbereiche von Cloud-Service-Providern (CSP) (AWS, Azure, GCP, Cloudflare, Digital Ocean) und führt eine Präfixsuche basierend auf der eingegebenen IP-Adresse durch. Es kann in andere Recon-Tools integriert werden. Bei einem Black-Box-Netzwerk-Pentest findet edge schnell heraus, bei welchem Cloud-CSP der Kunde gehostet ist, oder überprüft einfach den Umfang für die Regeln des Engagements. Jeder dieser CSPs veröffentlicht eine Liste aller ihrer IP-Präfixe und/oder Netblöcke. Für Azure und AWS werden die Region/Rechenzentrum und der Dienstname hinzugefügt. Dies ist eine hervorragende Anreicherung für die Bedrohungsaufklärung, die es ermöglicht, IP-Adressen physischen Rechenzentren und Cloud-Diensten zuzuordnen. Cloud Edge kann für Reconnaissance-Workflows nützlich sein, um schnell zu wissen, „womit man es zu tun hat“ – es parst schnell und führt eine Suche basierend auf dem IP-Präfix durch.

Hier sind einige Hinweise zur Funktionsweise des Tools für Ein- und Ausgaben.
Führen Sie Cloud Edge aus, und es werden automatisch alle unterstützten Cloud-Anbieterdateien heruntergeladen. Wenn die Dateien nicht im Arbeitsverzeichnis vorhanden sind, werden sie heruntergeladen:
% ./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
Wenn Sie offline sind und sie nicht heruntergeladen werden können, überprüfen Sie das Verzeichnis csp-files in diesem Repository. Kopieren Sie sie in das Arbeitsverzeichnis.
Wenn das Tool zum ersten Mal ausgeführt wird, versucht es automatisch, die sechs JSON-, Text- und CSV-Dateien mit IP-Adressbereichen der Cloud-Anbieter herunterzuladen und in das Arbeitsverzeichnis zu laden. So funktioniert es:
Standardmäßig wird versucht, die sechs Dateien von den unten stehenden URLs herunterzuladen, es sei denn, die Dateien sind bereits im Arbeitsverzeichnis vorhanden.
Cloud Edge prüft jede Datei vor dem Herunterladen. Wenn die Datei bereits existiert, wird sie natürlich nicht erneut heruntergeladen, es sei denn, Sie löschen sie.
Diese sechs Dateien sind in diesem GitHub-Repository im Verzeichnis csp-files enthalten. Da die Cloud-Anbieter ihre Listen häufig aktualisieren, stellen Sie sicher, dass Sie die neuesten Dateien haben, indem Sie die Dateien in Ihrem Arbeitsverzeichnis entfernen: aws.json, azure.json, cloud.json, cloudflare-ipv4.txt, cloudflare-ipv6.txt, digitalocean.csv.
Wenn sie im Arbeitsverzeichnis gefunden werden, werden alle IP-Präfixe in den Speicher geladen. Die Cloud-Anbieter-IP-Bereichsdateien werden immer versucht, aus dem Arbeitsverzeichnis zu laden. Die eigentliche Suche wird mit dem Flag -prefix aktiviert.
Wenn der Modus -dns aktiviert ist, werden DNS-Abfragen für sowohl A- als auch CNAME-Einträge gepuffert, ohne Anzeige, bis alle DNS-Abfragen abgeschlossen sind. Nach Abschluss der Abfragen wird die Ausgabe angezeigt.
Standardmäßig zeigt die Ausgabe Informationsmeldungen an, die mit [INF] beginnen. Dies kann mit dem Flag -silent deaktiviert werden. Die Ausgabe sieht dann so aus:
./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
Informationsmeldungen teilen Ihnen mit, ob ein Datensatz über einen DNS 'A'-Eintrag, DNS 'CNAME'-Eintrag, ein Zertifikat (crt.sh) oder eine Präfix-Übereinstimmung gefunden wurde. Präfix-Übereinstimmungen geben den erkannten Cloud-Anbieter mit dem passenden Präfix sowie den Cloud-Dienst und die Region an, falls zutreffend. Azure-Regionen werden derzeit nicht erkannt, aber AWS-Regionen schon.
Mit dem Modus -dns oder crt wird die Ausgabe standardmäßig als kommagetrennte Ergebnisse an die Konsole gesendet. Dies erleichtert die Verwendung anderer Tools zum Parsen dieser Ergebnisse.
FQDN,IP,SOURCE,CNAME,DESCRIPTION
-prefix aktiviert ist.Mit dem Modus -prefix und entweder -ip oder -nmap wird die Ausgabe standardmäßig als kommagetrennte Ergebnisse an die Konsole gesendet:
IP,DESCRIPTION
Die IP ist die IP-Adresse und die DESCRIPTION sind die Ergebnisse aus der IP-Adressbereichssuche in den JSON-Dateien der Cloud-Anbieter, falls zutreffend.
Mit dem Modus -ptr und entweder ip oder nmap wird die Ausgabe standardmäßig als kommagetrennte Ergebnisse an die Konsole gesendet:
IP,PTR
Die IP ist die IP-Adresse und die PTR sind die Ergebnisse der DNS-PTR-Abfrage, falls vorhanden.
Das Flag -ip signalisiert, eine Liste von IP-Adressen zu durchlaufen und kann im Modus prefix oder ptr verwendet werden. Wenn Sie das Tool mit -ip <hosts.txt> ausführen, erwartet es jede IP-Adresse in einer separaten Zeile und durchläuft die Liste mit Abfragen. Hier ist ein Beispiel für den Dateiinhalt:
user@host:~/demo$ cat ip.txt
3.133.110.237
18.117.232.92
18.221.247.211
3.137.199.52
Das Flag -nmap signalisiert, eine nmap-XML-Datei zu parsen. Es sucht nach jedem Host in der nmap-Scan-Datei, der als "Up" markiert ist. Beispielsweise weist -nmap scan1.xml das Tool an, die Datei scan1.xml zu parsen und nach Hosts zu suchen, die von nmap als "Up" markiert sind. Sie führen es dann mit entweder -ptr oder -prefix aus, um eine IP-Abfrage durchzuführen.
Das Tool führt eine klassische Subdomain-Enumeration durch, indem es eine Wortliste mit Hostnamen durchläuft, ein Hostname pro Zeile. Dies wird im Modus -dns mit -wordlist <hosts.txt> verwendet. Ein Beispiel dafür, wie dies für die Datei hosts.txt aussieht:
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)
Beispiel #1: Eine einzelne IP-Adresse nachschlagen
edge -single <ip_address>
Beschreibung: Führen Sie eine Präfixsuche für eine einzelne IP-Adresse aus, die mit <ip_addr> angegeben wird, gegen die JSON-Dateien des Cloud-Anbieters.
Beispielausgabe:
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
Beispiel #2: Eine einzelne IP-Adresse nachschlagen und Info-Meldungen unterdrücken
$ edge -single <ip_address> -silent
Beschreibung: Gleiche wie oben, jedoch mit aktiviertem Silent-Modus. Dies unterdrückt die [INF]-Meldungen mit zusätzlichen Informationen.
Beispielausgabe:
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
Beispiel #3: Lokale Provider-JSON-Dateien verwenden, anstatt sie herunterzuladen.
edge -single <ip_address> -silent -nd
Beschreibung: Versuchen Sie nicht, die Provider-JSON-Dateien herunterzuladen, sondern verwenden Sie stattdessen die lokalen Dateien im Arbeitsverzeichnis.
Beispiel #4: Wortlisten-Subdomain-Enumeration mit Zertifikatstransparenz und Präfixsuche.
edge -domain <domain> -dns -crt -prefix -wordlist <wordlist.txt>
Beschreibung: Führen Sie eine Wortlisten-Subdomain-Enumeration aller A- und CNAME-Einträge basierend auf wordlist.txt für die Domain mit Zertifikatstransparenzsuche durch. Führen Sie für jeden gefundenen Host (über Cert Transparency) auch eine DNS-Abfrage durch. Führen Sie eine IP-Präfixsuche der IP-Adresse über die veröffentlichten IP-Präfixlisten aller drei Cloud-Service-Provider durch.
Beispielausgabe:
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]
Beispiel #5: Wortlisten-Subdomain-Enumeration ohne Zertifikatstransparenz oder IP-Präfixsuche.
edge -domain <domain> -dns -wordlist <wordlist.txt>
Beschreibung: Führen Sie nur einen Wortlisten-Scan aller A- und CNAME-Einträge basierend auf der Wortliste durch.
Beispielausgabe:
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,
Beispiel #6: Wortlisten-Subdomain-Enumeration ohne Zertifikatstransparenz, aber mit IP-Präfixsuche für alle gefundenen IP-Adressen.
edge -domain <domain> -dns -wordlist <wordlist.txt> -prefix
Beschreibung: Führen Sie nur einen Wortlisten-Scan aller A- und CNAME-Einträge basierend auf der Wortliste durch. Für jede ermittelte IP-Adresse führen Sie eine Präfixsuche durch.
Beispiel #7: Zertifikatstransparenz-Protokollsuche.
edge -domain <domain> -crt
Beschreibung: Führen Sie eine Zertifikatstransparenz-Protokollsuche mit https://crt.sh durch.
Beispielausgabe:
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,,
Beispiel #8: Zertifikatstransparenz mit DNS-Abfrage
edge -domain <domain> -dns -crt
Beschreibung: Führen Sie eine Zertifikatstransparenzsuche durch. Für jeden über Cert Transparency entdeckten Host führen Sie eine vollständige DNS A- oder CNAME-Abfrage durch.
Beispiel #9: IP-Präfixsuche mit IP-Adressliste
edge -prefix -ip <ip-hosts.txt>
Beschreibung: Führen Sie eine Suche der IP-Adresse im Cloud-Service-Provider-IP-Präfix durch. Nimmt eine Liste von IP-Adressen in ip-hosts.txt und durchläuft sie mit einer Suche. Eine IP-Adresse pro Zeile.
Beispielausgabe:
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
Beispiel #10: DNS-PTR-Suche mit IP-Adressliste
edge -ptr -ip <ip-hosts.txt>
Beschreibung: Führt eine DNS-PTR-Suche basierend auf der IP-Adresse jeder Zeile von ip-hosts.txt durch.
Beispielausgabe:
edge -ptr -ip ip-hosts.txt
140.179.144.130,ec2-140-179-144-130.cn-north-1.compute.amazonaws.com.cn.
Beispiel #11: Parst eine nmap-Datei und führt eine Präfixsuche der gefundenen IP-Adressen durch
edge -prefix -nmap <results.xml>
Beschreibung: Parst eine nmap-Scan-XML-Datei und identifiziert alle "Up"-Hosts. Für jeden "Up"-Host in den nmap-XML-Scannergebnissen führen Sie eine IP-Präfixsuche für den Cloud-Service-Provider durch.
Beispiel #12: Parst eine nmap-Datei und führt eine DNS-PTR-Suche für jede gefundene IP-Adresse durch
edge -ptr -nmap <results.xml>
Beschreibung: Parst eine nmap-Scan-XML-Datei und führt eine PTR-Suche für jeden "Up"-Host durch.
Beispiel #13: Fügt Parallelverarbeitung mit 100 Workern hinzu, um die Leistung zu steigern
edge -domain <domain> -dns -wordlist <wordlist.txt> -workers 100
Beschreibung: Verwendet einen DNS-Parallelscan mit 100 Workern. Dies erhöht die Scangeschwindigkeit. Standardmäßige Worker: 10.
Beispiel #14: Geben Sie einen DNS-Resolver an
edge -domain <domain> -dns -wordlist <wordlist.txt> -resolver 8.8.4.4:53
Beschreibung: Geben Sie einen DNS-Resolver von 8.8.4.4 auf Port 53 an. Standard ist 8.8.8.8.
Sie können die vorkompilierten Binärdateien herunterladen oder sie selbst erstellen. Stellen Sie sicher, dass Sie auch die IP-Präfix-JSON-Dateien des Cloud-Anbieters erhalten.
Getestet und erstellt mit Go 1.25
$ git clone https://github.com/iknowjason/edge.git
$ cd edge
~/edge$ go build edge.go
~/edge$ ./edge (Überprüfen)
@mosesrenegade für die Tool-Inspiration
@0xdabbad00 für allgemeine AWS-Tools und Inspiration
Dieses Tool wurde von vielen anderen Tools und Autoren inspiriert, darunter dnsrecon und gobuster. Ja, ich weiß. Nicht viel Neues hier – nur ein weiteres Subdomain-Enumeration-Tool. Ich wollte einfach nur Golang lernen :-)
"Black Hat Go" Buch
| Provider | Lokale Datei | 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 |