
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 gebaut, da zu dieser Zeit keine anderen Enumerations-Tools dies unterstützten. Es ist von dort aus gewachsen, und ich habe beim Hinzufügen von Funktionen viel gelernt.
Tools zu bauen macht Spaß, aber sie zu warten ist schwer. Ich habe dieses Tool selbst seit einiger Zeit nicht mehr aktiv genutzt, aber ich habe mein Bestes getan, um Fehler zu beheben und Pull-Requests zu überprüfen.
In Zukunft ist es sinnvoll, diese Funktionalität in ein gut gewartetes Projekt zu integrieren, das die Grundlagen (Web/DNS-Anfragen, Threading, I/O, Logging usw.) übernimmt. Nuclei ist dafür wirklich gut geeignet. Sie können meinen ersten PR zur Migration der cloud_enum-Funktionalität zu Nuclei hier sehen.
Ich ermutige andere, Templates zu Nuclei beizutragen, damit wir uns auf die Erkennung von Cloud-Ressourcen konzentrieren können, während Nuclei die Grundlagen übernimmt.
Ich werde weiterhin versuchen, PRs hier zu überprüfen, um Fehler zu beheben, wenn die Zeit es erlaubt, aber wahrscheinlich werde ich keine Zeit für größere Änderungen haben.
Danke an alle großartigen Mitwirkenden. Viel Glück bei Ihrer Recon!
Multi-Cloud-OSINT-Tool. Enumeriert öffentliche Ressourcen in AWS, Azure und Google Cloud.
Enumeriert derzeit Folgendes:
Amazon Web Services:
Microsoft Azure:
Google Cloud Platform
Sehen Sie es in Aktion in Codingos Videodemo hier.
Dieses Projekt verwendet uv für das Abhängigkeitsmanagement. Installieren Sie uv und führen Sie dann aus:
uv sync
Das einzige erforderliche Argument ist mindestens ein Schlüsselwort. Sie können die integrierten Fuzzing-Strings verwenden, aber Sie erhalten bessere Ergebnisse, wenn Sie eigene mit -m und/oder -b bereitstellen.
Sie können mehrere Schlüsselwörter angeben, indem Sie das Argument -k mehrfach angeben.
Schlüsselwörter werden automatisch mit Strings aus enum_tools/fuzz.txt oder einer mit dem Flag -m bereitgestellten Datei mutiert. Dienste, die eine zweite Brute-Force-Ebene erfordern (Azure Container und GCP Functions), verwenden standardmäßig ebenfalls fuzz.txt oder eine mit dem Flag -b bereitgestellte Datei.
Angenommen, Sie recherchieren "somecompany", deren Website "somecompany.io" ist und die ein Produkt namens "blockchaindoohickey" herstellt. Sie könnten das Tool wie folgt ausführen:
uv run cloud_enum -k somecompany -k somecompany.io -k blockchaindoohickey
HTTP-Scraping und DNS-Abfragen verwenden standardmäßig jeweils 5 Threads. Sie können versuchen, diese zu erhöhen, aber irgendwann werden die Cloud-Anbieter Sie drosseln. Hier ist ein Beispiel für eine Erhöhung auf 10.
uv run cloud_enum -k keyword -t 10
WICHTIG: Einige Ressourcen (Azure Container, GCP Functions) werden pro Region ermittelt. Um Zeit beim Scannen zu sparen, gibt es eine "REGIONS"-Variable, die in cloudenum/azure_regions.py und cloudenum/gcp_regions.py definiert ist und standardmäßig nur 1 Region verwendet. Sie sollten sich diese Dateien ansehen und sie für Ihre Arbeit anpassen.
Vollständige Nutzungsdetails
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
Bisher habe ich von folgenden Quellen übernommen: