
Strumento OSINT multi-cloud. Enumera risorse pubbliche in AWS, Azure e Google Cloud.
Ho costruito questo strumento nel 2019 per un pentest che coinvolgeva Azure, poiché all'epoca nessun altro strumento di enumerazione lo supportava. Da lì è cresciuto e ho imparato molto aggiungendo funzionalità.
Costruire strumenti è divertente, ma mantenerli è difficile.
Non ho usato attivamente questo strumento per un po', ma ho fatto del mio meglio per correggere bug e revisionare le richieste pull.
Andando avanti, ha senso consolidare questa funzionalità in un progetto ben mantenuto che gestisca gli aspetti essenziali (richieste web/dns, threading, I/O, logging, ecc.). Nuclei è davvero adatto a questo. Puoi vedere la mia prima PR per migrare la funzionalità di cloud_enum su Nuclei qui.
Incoraggio altri a contribuire con template a Nuclei, permettendoci di concentrarci sul rilevamento delle risorse cloud mentre lasciamo le basi a Nuclei.
Cercherò comunque di revisionare le PR qui per risolvere i bug come il tempo lo permette, ma probabilmente non avrò tempo per modifiche importanti.
Grazie a tutti i grandi contributori. Buona fortuna con la vostra ricognizione!
Strumento OSINT multi-cloud. Enumera le risorse pubbliche in AWS, Azure e Google Cloud.
Attualmente enumera quanto segue:
Amazon Web Services:
Microsoft Azure:
Google Cloud Platform
Vedilo in azione nel video demo di Codingo qui.
Questo progetto utilizza uv per la gestione delle dipendenze. Installa uv, quindi esegui:
uv sync
L'unico argomento obbligatorio è almeno una parola chiave. Puoi utilizzare le stringhe di fuzzing integrate, ma otterrai risultati migliori se fornisci le tue con -m e/o -b.
Puoi fornire più parole chiave specificando più volte l'argomento -k.
Le parole chiave vengono mutate automaticamente usando le stringhe da enum_tools/fuzz.txt o da un file che fornisci con il flag -m. I servizi che richiedono un secondo livello di forza bruta (Contenitori Azure e Funzioni GCP) utilizzeranno anche fuzz.txt per impostazione predefinita o un file che fornisci con il flag -b.
Supponiamo che tu stia facendo ricerche su "somecompany" il cui sito web è "somecompany.io" che produce un prodotto chiamato "blockchaindoohickey". Potresti eseguire lo strumento in questo modo:
uv run cloud_enum -k somecompany -k somecompany.io -k blockchaindoohickey
Lo scraping HTTP e le ricerche DNS utilizzano 5 thread ciascuno per impostazione predefinita. Puoi provare ad aumentare questo numero, ma alla fine i provider cloud ti limiteranno. Ecco un esempio per aumentare a 10.
uv run cloud_enum -k keyword -t 10
IMPORTANTE: Alcune risorse (Contenitori Azure, Funzioni GCP) vengono scoperte per regione. Per risparmiare tempo nella scansione, esiste una variabile "REGIONS" definita in cloudenum/azure_regions.py e cloudenum/gcp_regions.py che è impostata per default per utilizzare solo 1 regione. Potresti voler guardare questi file e modificarli per renderli pertinenti al tuo lavoro.
Dettagli completi sull'utilizzo
usage: cloud_enum.py [-h] -k KEYWORD [-m MUTATIONS] [-b BRUTE]
Multi-cloud enumeration utility. All hail OSINT!
optional arguments:
-h, --help show this help message and exit
-k KEYWORD, --keyword KEYWORD
Keyword. Can use argument multiple times.
-kf KEYFILE, --keyfile KEYFILE
Input file with a single keyword per line.
-m MUTATIONS, --mutations MUTATIONS
Mutations. Default: enum_tools/fuzz.txt
-b BRUTE, --brute BRUTE
List to brute-force Azure container names. Default: enum_tools/fuzz.txt
-t THREADS, --threads THREADS
Threads for HTTP brute-force. Default = 5
-ns NAMESERVER, --nameserver NAMESERVER
DNS server to use in brute-force.
-l LOGFILE, --logfile LOGFILE
Will APPEND found items to specified file.
-f FORMAT, --format FORMAT
Format for log file (text,json,csv - defaults to 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
Finora ho preso in prestito da: