
Multi-Cloud-OSINT-Tool. Zählt öffentliche Ressourcen in AWS, Azure und Google Cloud auf.
Ich habe dieses Tool 2019 für einen Pentest mit Azure entwickelt, da damals kein anderes Enumeration-Tool dies unterstützte. Von dort aus ist es gewachsen, und ich habe viel gelernt, während ich Funktionen hinzugefügt habe.
Tools zu bauen macht Spaß, aber Tools zu pflegen ist schwierig. Ich habe dieses Tool selbst eine Weile nicht mehr aktiv genutzt, aber ich habe mein Bestes getan, um Fehler zu beheben und Pull Requests zu prüfen.
Für die Zukunft ist es sinnvoll, diese Funktionalität in ein gut gepflegtes Projekt zu konsolidieren, das die Grundlagen abdeckt (Web-/DNS-Anfragen, Threading, I/O, Logging usw.). Nuclei eignet sich dafür sehr gut. Meinen ersten PR zur Migration der cloud_enum-Funktionalität zu Nuclei findet ihr hier.
Ich ermutige andere, Templates zu Nuclei beizusteuern, damit wir uns auf die Erkennung von Cloud-Ressourcen konzentrieren können und die Grundlagen Nuclei überlassen.
Ich werde weiterhin versuchen, PRs hier zu prüfen, um Fehler zu beheben, sofern es die Zeit erlaubt, aber wahrscheinlich keine Zeit für größere Änderungen haben.
Danke an alle großartigen Mitwirkenden. Viel Erfolg bei eurem Recon!
Multi-Cloud-OSINT-Tool. Enumeriert öffentliche Ressourcen in AWS, Azure und Google Cloud.
Derzeit werden folgende Ressourcen enumeriert:
Amazon Web Services:
Microsoft Azure:
Google Cloud Platform
Seht es in Aktion in Codingos Video-Demo hier.
Dieses Projekt verwendet uv für die Abhängigkeitsverwaltung. Installiert uv und führt dann aus:
uv sync
Oder installiert es als eigenständiges Tool:
uv tool install git+https://github.com/initstring/cloud_enum
Das einzige erforderliche Argument ist mindestens ein Keyword. Ihr könnt die integrierten Fuzzing-Strings verwenden, aber ihr erzielt bessere Ergebnisse, wenn ihr eigene mit -m und/oder -b angebt.
Ihr könnt mehrere Keywords angeben, indem ihr das Argument -k mehrfach angebt.
Keywords werden automatisch mit Strings aus enum_tools/fuzz.txt oder einer Datei, die ihr mit dem -m-Flag angebt, mutiert. Dienste, die eine zweite Brute-Force-Ebene erfordern (Azure Containers und GCP Functions), verwenden standardmäßig ebenfalls fuzz.txt oder eine Datei, die ihr mit dem -b-Flag angebt.
Angenommen, ihr recherchiert "somecompany", deren Website "somecompany.io" ist und die ein Produkt namens "blockchaindoohickey" herstellt. Ihr könntet das Tool so ausführen:
uv run cloud_enum -k somecompany -k somecompany.io -k blockchaindoohickey
HTTP-Scraping und DNS-Lookups verwenden standardmäßig jeweils 5 Threads. Ihr könnt versuchen, dies zu erhöhen, aber irgendwann werden die Cloud-Anbieter euch rate-limiten. Hier ist ein Beispiel, um auf 10 zu erhöhen.
uv run cloud_enum -k keyword -t 10
WICHTIG: Einige Ressourcen (Azure Containers, GCP Functions) werden pro Region entdeckt. Um Zeit beim Scannen zu sparen, ist eine "REGIONS"-Variable in enum_tools/azure_regions.py und enum_tools/gcp_regions.py definiert, die standardmäßig so eingestellt ist, dass nur 1 Region verwendet wird. Ihr solltet euch diese Dateien ansehen und sie so bearbeiten, dass sie für eure eigene Arbeit relevant sind.
Vollständige Nutzungsdetails
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
Bisher habe ich Folgendes übernommen: