
Outil OSINT multi-cloud. Énumère les ressources publiques dans AWS, Azure et Google Cloud.
J'ai créé cet outil en 2019 pour un pentest impliquant Azure, car aucun autre outil d'énumération ne le prenait en charge à l'époque. Il s'est développé à partir de là, et j'ai beaucoup appris en ajoutant des fonctionnalités.
Créer des outils est amusant, mais les maintenir est difficile. Je n'utilise plus activement cet outil moi-même depuis un moment, mais j'ai fait de mon mieux pour corriger les bugs et examiner les pull requests.
À l'avenir, il est logique de consolider cette fonctionnalité dans un projet bien maintenu qui gère l'essentiel (requêtes web/DNS, threading, I/O, logging, etc.). Nuclei est vraiment bien adapté à cela. Vous pouvez voir ma première PR pour migrer la fonctionnalité de cloud_enum vers Nuclei ici.
J'encourage les autres à contribuer des templates à Nuclei, ce qui nous permet de nous concentrer sur la détection des ressources cloud tout en laissant les fondations à Nuclei.
J'essaierai toujours d'examiner les PR ici pour corriger les bugs selon le temps disponible, mais je n'aurai probablement pas le temps pour des changements majeurs.
Merci à tous les excellents contributeurs. Bonne chance avec votre reconnaissance !
Outil OSINT multi-cloud. Énumérez les ressources publiques dans AWS, Azure et Google Cloud.
Énumère actuellement les éléments suivants :
Amazon Web Services :
Microsoft Azure :
Google Cloud Platform
Voyez-le en action dans la démo vidéo de Codingo ici.
Ce projet utilise uv pour la gestion des dépendances. Installez uv, puis exécutez :
uv sync
Ou installez-le comme outil autonome :
uv tool install git+https://github.com/initstring/cloud_enum
Le seul argument requis est au moins un mot-clé. Vous pouvez utiliser les chaînes de fuzzing intégrées, mais vous obtiendrez de meilleurs résultats si vous fournissez les vôtres avec -m et/ou -b.
Vous pouvez fournir plusieurs mots-clés en spécifiant l'argument -k plusieurs fois.
Les mots-clés sont mutés automatiquement à l'aide des chaînes de enum_tools/fuzz.txt ou d'un fichier que vous fournissez avec le flag -m. Les services qui nécessitent un second niveau de force brute (Azure Containers et GCP Functions) utiliseront également fuzz.txt par défaut ou un fichier que vous fournissez avec le flag -b.
Disons que vous recherchiez « somecompany » dont le site web est « somecompany.io » qui fabrique un produit appelé « blockchaindoohickey ». Vous pourriez exécuter l'outil comme ceci :
uv run cloud_enum -k somecompany -k somecompany.io -k blockchaindoohickey
Le scraping HTTP et les recherches DNS utilisent 5 threads chacun par défaut. Vous pouvez essayer d'augmenter cela, mais les fournisseurs cloud finiront par vous limiter. Voici un exemple pour augmenter à 10.
uv run cloud_enum -k keyword -t 10
IMPORTANT : Certaines ressources (Azure Containers, GCP Functions) sont découvertes par région. Pour gagner du temps lors du scan, une variable « REGIONS » est définie dans enum_tools/azure_regions.py et enum_tools/gcp_regions.py et est configurée par défaut pour n'utiliser qu'une seule région. Vous voudrez peut-être consulter ces fichiers et les modifier pour qu'ils correspondent à votre propre travail.
Détails complets d'utilisation
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
Jusqu'à présent, j'ai emprunté à :