我在 2019 年构建了这个工具,用于一次涉及 Azure 的渗透测试,因为当时没有其他枚举工具支持它。它由此发展壮大,我在添加功能的过程中学到了很多。
构建工具很有趣,但维护工具很难。我已经有一段时间没有亲自积极使用这个工具了,但我尽了最大努力修复 bug 并审查 pull request。
展望未来,将这一功能整合到一个维护良好的项目中是合理的,该项目处理基本要素(web/dns 请求、线程、I/O、日志记录等)。Nuclei 非常适合这一点。你可以看到我将 cloud_enum 功能迁移到 Nuclei 的第一个 PR 在这里。
我鼓励其他人向 Nuclei 贡献模板,让我们能够专注于检测云资源,而将基础工作留给 Nuclei。
只要时间允许,我仍然会尝试审查这里的 PR 以解决 bug,但可能没有时间进行重大更改。
感谢所有出色的贡献者。祝你们的侦察工作顺利!
多云 OSINT 工具。枚举 AWS、Azure 和 Google Cloud 中的公共资源。
目前枚举以下内容:
Amazon Web Services:
Microsoft Azure:
Google Cloud Platform
本项目使用 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
到目前为止,我借鉴了: