
Мультиоблачный OSINT-инструмент. Перечисляет публичные ресурсы в AWS, Azure и Google Cloud.
Я создал этот инструмент в 2019 году для пентеста с использованием Azure, так как на тот момент другие инструменты перечисления его не поддерживали. Оттуда он и вырос, и я многому научился, добавляя функции.
Создавать инструменты — это весело, но поддерживать их — сложно. Я сам уже давно активно не использовал этот инструмент, но делал всё возможное, чтобы исправлять ошибки и проверять pull request'ы.
Двигаясь вперёд, имеет смысл объединить эту функциональность в хорошо поддерживаемый проект, который обрабатывает основные вещи (веб/DNS-запросы, многопоточность, ввод/вывод, логирование и т.д.). Nuclei для этого очень подходит. Вы можете увидеть мой первый PR по переносу функциональности cloud_enum в Nuclei здесь.
Я призываю других вносить шаблоны в Nuclei, чтобы мы могли сосредоточиться на обнаружении облачных ресурсов, оставив основную работу Nuclei.
Я всё ещё буду стараться проверять PR здесь для исправления ошибок, если позволит время, но, скорее всего, у меня не будет времени на крупные изменения.
Спасибо всем замечательным участникам. Удачи в вашей разведке!
Мультиоблачный OSINT-инструмент. Перечисляет общедоступные ресурсы в AWS, Azure и Google Cloud.
В настоящее время перечисляет следующее:
Amazon Web Services:
Microsoft Azure:
Google Cloud Platform
Посмотрите демонстрацию в видео Codingo здесь.
В этом проекте используется uv для управления зависимостями. Установите uv, затем выполните:
uv sync
Единственный обязательный аргумент — хотя бы одно ключевое слово. Вы можете использовать встроенные строки для фаззинга, но лучшие результаты вы получите, если укажете свои собственные с помощью -m и/или -b.
Вы можете указать несколько ключевых слов, повторяя аргумент -k.
Ключевые слова автоматически мутируют с помощью строк из enum_tools/fuzz.txt или файла, указанного вами с флагом -m. Сервисы, требующие второй уровень перебора (Azure Containers и GCP Functions), по умолчанию также используют fuzz.txt или файл, указанный вами с флагом -b.
Допустим, вы исследуете «somecompany», чей веб-сайт — «somecompany.io» и которая выпускает продукт под названием «blockchaindoohickey». Вы можете запустить инструмент так:
uv run cloud_enum -k somecompany -k somecompany.io -k blockchaindoohickey
HTTP-скрапинг и DNS-запросы по умолчанию используют по 5 потоков. Вы можете попробовать увеличить это число, но в конечном итоге облачные провайдеры ограничат вас по скорости. Вот пример увеличения до 10.
uv run cloud_enum -k keyword -t 10
ВАЖНО: Некоторые ресурсы (Azure Containers, GCP Functions) обнаруживаются по регионам. Чтобы сэкономить время при сканировании, в cloudenum/azure_regions.py и cloudenum/gcp_regions.py определена переменная «REGIONS», которая по умолчанию использует только 1 регион. Возможно, вам стоит просмотреть эти файлы и отредактировать их в соответствии с вашей задачей.
Полная информация об использовании
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
На данный момент я позаимствовал идеи из: