
Whois pour le Cloud : Outil de reconnaissance pour l'attribution de fournisseurs cloud. Prend en charge AWS, Azure, Google, Cloudflare et Digital Ocean.
Recherchez une adresse IP pour trouver le fournisseur de cloud et d'autres détails basés sur les données JSON, CSV ou texte publiées par le fournisseur
Cloud edge est un outil de reconnaissance axé sur l'exploration des fournisseurs de services cloud. Il peut être utilisé pour l'attribution et la criminalistique cloud, les tests d'intrusion, les programmes de bug bounty, les opérations Red Team ou la R&D générale sur les fournisseurs cloud. Edge charge automatiquement les fichiers de plages d'adresses IP publiés par les fournisseurs de services cloud (CSP) (AWS, Azure, GCP, Cloudflare, Digital Ocean) et effectue une recherche de préfixe basée sur l'adresse IP en entrée. Il peut être intégré à d'autres outils de reconnaissance. Lors d'un test d'intrusion en boîte noire, Edge découvre rapidement avec quel CSP cloud le client est hébergé, ou permet de double-vérifier le périmètre pour les règles d'engagement. Chacun de ces CSP publie une liste de tous leurs préfixes IP et/ou blocs réseau. Pour Azure et AWS, cela ajoute la région/le centre de données et le nom du service. C'est un excellent enrichissement pour le renseignement de menaces, permettant de mapper les adresses IP vers des centres de données physiques et des services cloud. Cloud Edge peut être utile dans les workflows de reconnaissance pour savoir rapidement « à quoi vous avez affaire » - il analyse rapidement et effectue une recherche basée sur le préfixe IP.

Voici quelques notes sur le fonctionnement de l'outil pour les entrées et sorties.
Exécutez Cloud Edge et il téléchargera automatiquement tous les fichiers des fournisseurs cloud pris en charge. Si les fichiers n'existent pas dans le répertoire de travail, ils seront téléchargés :
% ./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
Si vous êtes hors ligne et qu'ils ne peuvent pas être téléchargés, vérifiez le répertoire csp-files dans ce dépôt. Copiez-les dans le répertoire de travail.
Lorsque l'outil s'exécute pour la première fois, il essaie automatiquement de télécharger et de charger les six fichiers de plages d'adresses IP des fournisseurs cloud (JSON, texte et CSV) dans le répertoire de travail. Voici comment cela fonctionne :
Par défaut, il tentera de télécharger les six fichiers à partir des URL ci-dessous, sauf si les fichiers sont déjà présents dans le répertoire de travail.
Cloud Edge vérifie chaque fichier avant de le télécharger. Donc si le fichier existe déjà, il ne sera évidemment pas téléchargé à nouveau sauf si vous le supprimez.
Ces six fichiers sont inclus dans ce dépôt GitHub dans le répertoire csp-files. Puisque les fournisseurs cloud mettent fréquemment à jour leurs listes, assurez-vous d'avoir les fichiers les plus récents en supprimant les fichiers dans votre répertoire de travail : aws.json, azure.json, cloud.json, cloudflare-ipv4.txt, cloudflare-ipv6.txt, digitalocean.csv.
S'ils sont trouvés dans le répertoire de travail, tous les préfixes IP sont chargés en mémoire. Les fichiers de plages IP des fournisseurs cloud sont toujours chargés depuis le répertoire de travail. L'activation de la recherche proprement dite se fait avec le drapeau -prefix.
Lorsque le mode -dns est activé, les requêtes DNS pour les enregistrements A et CNAME sont mises en mémoire tampon sans affichage jusqu'à ce que toutes les requêtes DNS soient terminées. Une fois les requêtes terminées, la sortie est affichée.
Par défaut, la sortie affiche des messages d'information commençant par [INF]. Cela peut être désactivé avec le drapeau -silent. La sortie ressemblera à ceci :
./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
Les messages d'information vous indiqueront si un enregistrement est trouvé via un enregistrement DNS 'A', un enregistrement DNS 'CNAME', un certificat (crt.sh), ou si une correspondance de préfixe est trouvée. Les correspondances de préfixe vous indiqueront le fournisseur cloud détecté avec le préfixe correspondant, ainsi que le service cloud et la région le cas échéant. Les régions Azure ne sont pas actuellement détectées, contrairement à celles d'AWS.
Avec le mode -dns ou crt, la sortie est envoyée par défaut à la console sous forme de résultats délimités par des virgules. Cela permet d'utiliser facilement d'autres outils pour analyser ces résultats.
FQDN,IP,SOURCE,CNAME,DESCRIPTION
-prefix est activé.Avec le mode -prefix et soit -ip soit -nmap, la sortie est envoyée par défaut à la console sous forme de résultats délimités par des virgules :
IP,DESCRIPTION
IP est l'adresse IP et DESCRIPTION est le résultat de la recherche dans les plages d'adresses IP des fichiers JSON des fournisseurs cloud, le cas échéant.
Avec le mode -ptr et soit ip soit nmap, la sortie est envoyée par défaut à la console sous forme de résultats délimités par des virgules :
IP,PTR
IP est l'adresse IP et PTR est le résultat de la recherche DNS PTR si trouvé.
Le drapeau -ip signale d'itérer à travers une liste d'adresses IP et peut être utilisé en mode prefix ou ptr. Lorsque vous exécutez l'outil avec -ip <hosts.txt>, il s'attend à ce que chaque adresse IP soit sur une ligne distincte, et il parcourra la liste en effectuant des recherches. Voici un exemple du contenu du fichier :
user@host:~/demo$ cat ip.txt
3.133.110.237
18.117.232.92
18.221.247.211
3.137.199.52
Le drapeau -nmap signale d'analyser un fichier XML nmap. Il recherchera tout hôte dans le fichier de scan nmap marqué comme "Up". Par exemple, -nmap scan1.xml indiquera à l'outil d'analyser le fichier scan1.xml et de rechercher les hôtes marqués comme Up par nmap. Vous l'exécutez ensuite avec soit -ptr soit -prefix pour effectuer une recherche de l'IP.
L'outil effectue une énumération classique de sous-domaines en parcourant une wordlist contenant des noms d'hôtes, un nom d'hôte par ligne. Cela est utilisé en mode -dns avec -wordlist <hosts.txt>. Un exemple de ce à quoi ressemble le fichier 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)
Exemple #1 : Rechercher une seule adresse IP
edge -single <ip_address>
Description : Effectuer une recherche de préfixe d'une seule adresse IP fournie avec <ip_addr> dans les fichiers JSON du fournisseur cloud.
Exemple de sortie :
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
Exemple #2 : Rechercher une seule adresse IP et supprimer les messages d'information
$ edge -single <ip_address> -silent
Description : Identique à ci-dessus, mais en activant le mode silencieux. Cela supprime les messages [INF] avec des informations supplémentaires.
Exemple de sortie :
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
Exemple #3 : Utiliser les fichiers JSON locaux du fournisseur au lieu de les télécharger.
edge -single <ip_address> -silent -nd
Description : Ne pas essayer de télécharger les fichiers JSON du fournisseur, mais utiliser les fichiers locaux dans le répertoire de travail.
Exemple #4 : Énumération de sous-domaines avec wordlist, transparence des certificats et recherche de préfixe.
edge -domain <domain> -dns -crt -prefix -wordlist <wordlist.txt>
Description : Effectuer une énumération de sous-domaines avec wordlist de tous les enregistrements A et CNAME basée sur wordlist.txt pour un domaine avec recherche de transparence des certificats. Pour chaque hôte énuméré trouvé avec la transparence des certificats, effectuer également une requête DNS. Effectuer une recherche de préfixe IP de l'adresse IP dans la liste publiée des préfixes IP des trois fournisseurs de services cloud.
Exemple de sortie :
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]
Exemple #5 : Énumération de sous-domaines avec wordlist sans transparence des certificats ni recherche de préfixe IP.
edge -domain <domain> -dns -wordlist <wordlist.txt>
Description : Effectuer simplement un scan de wordlist de tous les enregistrements A et CNAME basé sur wordlist.
Exemple de sortie :
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,
Exemple #6 : Énumération de sous-domaines avec wordlist sans transparence des certificats mais en recherchant le préfixe IP pour toute adresse IP trouvée.
edge -domain <domain> -dns -wordlist <wordlist.txt> -prefix
Description : Effectuer simplement un scan de wordlist de tous les enregistrements A et CNAME basé sur wordlist. Pour chaque adresse IP énumérée, effectuer une recherche de préfixe.
Exemple #7 : Recherche dans les journaux de transparence des certificats.
edge -domain <domain> -crt
Description : Effectuer une recherche dans les journaux de transparence des certificats en utilisant https://crt.sh
Exemple de sortie :
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,,
Exemple #8 : Transparence des certificats avec recherche DNS
edge -domain <domain> -dns -crt
Description : Effectuer une recherche de transparence des certificats. Pour chaque hôte découvert via la transparence des certificats, effectuer une recherche DNS complète A ou CNAME.
Exemple #9 : Recherche de préfixe IP avec une liste d'adresses IP
edge -prefix -ip <ip-hosts.txt>
Description : Effectuer une recherche de l'adresse IP pour le préfixe IP du fournisseur de services cloud. Prend une liste d'adresses IP dans ip-hosts.txt et la parcourt en effectuant une recherche. Une adresse IP par ligne.
Exemple de sortie :
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
Exemple #10 : Recherche DNS PTR avec une liste d'adresses IP
edge -ptr -ip <ip-hosts.txt>
Description : Effectue une recherche DNS PTR basée sur l'adresse IP de chaque ligne de ip-hosts.txt.
Exemple de sortie :
edge -ptr -ip ip-hosts.txt
140.179.144.130,ec2-140-179-144-130.cn-north-1.compute.amazonaws.com.cn.
Exemple #11 : Analyse un fichier nmap et effectue une recherche de préfixe des adresses IP trouvées
edge -prefix -nmap <results.xml>
Description : Analyse un fichier XML de scan nmap, identifiant tous les hôtes "Up". Pour chaque hôte "Up" dans les résultats de scan nmap XML, effectuer une recherche de préfixe IP pour le fournisseur de services cloud.
Exemple #12 : Analyse un fichier nmap et effectue une recherche DNS PTR de chaque adresse IP trouvée
edge -ptr -nmap <results.xml>
Description : Analyse un fichier XML de scan nmap et effectue une recherche PTR de chaque hôte "Up".
Exemple #13 : Ajoute de la concurrence avec 100 workers pour améliorer les performances
edge -domain <domain> -dns -wordlist <wordlist.txt> -workers 100
Description : Utilise un scan DNS concurrent de 100 workers. Cela augmente la vitesse de scan. Workers par défaut : 10.
Exemple #14 : Spécifier un résolveur DNS
edge -domain <domain> -dns -wordlist <wordlist.txt> -resolver 8.8.4.4:53
Description : Spécifier un résolveur DNS 8.8.4.4 sur le port 53. Par défaut : 8.8.8.8.
Vous pouvez récupérer les binaires pré-compilés ou le compiler. Assurez-vous également d'obtenir les fichiers JSON des préfixes IP des fournisseurs cloud.
Testé et compilé avec Go 1.25
$ git clone https://github.com/iknowjason/edge.git
$ cd edge
~/edge$ go build edge.go
~/edge$ ./edge (Verify it)
@mosesrenegade pour l'inspiration de l'outil
@0xdabbad00 pour les outils AWS généraux et l'inspiration
Cet outil a été inspiré par de nombreux autres outils et auteurs, notamment dnsrecon et gobuster. Oui, je sais. Rien de très nouveau ici - juste un autre outil d'énumération de sous-domaines. Je voulais vraiment apprendre Go :-)
Livre "Black Hat Go"
| Fournisseur | Fichier local | URL distante |
|---|
| 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 |