
Мультиоблачный OSINT-инструмент. Перечисляет публичные ресурсы в AWS, Azure и Google Cloud.
Я создал этот инструмент в 2019 году для пентеста, связанного с Azure, так как на тот момент ни один другой инструмент перечисления его не поддерживал. С тех пор он развивался, и я многому научился, добавляя функции.
Создавать инструменты весело, но поддерживать их сложно. Я давно не использую этот инструмент активно сам, но старался как мог исправлять ошибки и проверять пул-реквесты.
В дальнейшем имеет смысл объединить эту функциональность в хорошо поддерживаемом проекте, который берёт на себя всё необходимое (веб/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
Или установите его как отдельный инструмент:
uv tool install git+https://github.com/initstring/cloud_enum
Единственный обязательный аргумент — хотя бы одно ключевое слово. Вы можете использовать встроенные строки для фаззинга, но результаты будут лучше, если вы укажете свои с помощью -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) обнаруживаются по регионам. Чтобы сэкономить время на сканировании, в enum_tools/azure_regions.py и enum_tools/gcp_regions.py определена переменная "REGIONS", которая по умолчанию настроена на использование только 1 региона. Возможно, вам стоит просмотреть эти файлы и отредактировать их под свои задачи.
Полное описание использования
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
На данный момент я позаимствовал из: