initstring/cloud_enum

GitHub: initstring/cloud_enum

多云 OSINT 枚举工具,通过关键词变形在 AWS、Azure 和 GCP 上发现公开暴露的云资源。

Stars: 2119 | Forks: 298

# cloud_enum ## cloud_enum 的未来 我在 2019 年构建了这个工具,用于一次涉及 Azure 的渗透测试,因为当时没有其他枚举工具支持它。它从那时起不断发展,我在添加功能的过程中学到了很多。 构建工具很有趣,但维护工具却很困难。我已经有一段时间没有亲自积极使用这个工具了,但我已经尽最大努力修复 bug 并审查 pull request。 展望未来,将此功能合并到一个维护良好且能处理基础操作(web/dns 请求、多线程、I/O、日志记录等)的项目中是合理的。[Nuclei](https://github.com/projectdiscovery/nuclei) 非常适合这项工作。你可以在[这里](https://github.com/projectdiscovery/nuclei-templates/pull/6865)查看我将 cloud_enum 功能迁移到 Nuclei 的第一个 PR。 我鼓励其他人向 Nuclei 贡献模板,这让我们可以专注于检测云资源,而将基础工作交给 Nuclei。 只要时间允许,我仍然会尝试在这里审查 PR 以修复 bug,但可能没有时间进行重大更改。 ## 概述 多云 OSINT 工具。枚举 AWS、Azure 和 Google Cloud 中的公开资源。 目前枚举以下内容: **Amazon Web Services**: - 公开 / 受保护的 S3 Buckets - awsapps(WorkMail、WorkDocs、Connect 等) **Microsoft Azure**: - Storage Accounts - 公开的 Blob Storage Containers - 托管数据库 - 虚拟机 - Web Apps **Google Cloud Platform** - 公开 / 受保护的 GCP Buckets - 公开 / 受保护的 Firebase Realtime Databases - Google App Engine 站点 - Cloud Functions(枚举存在函数的项目/区域,然后暴力破解实际的函数名) - 公开的 Firebase Apps 请在[这里](https://www.youtube.com/embed/pTUDJhWJ1m0)观看 [Codingo](https://github.com/codingo) 的视频演示以查看实际操作。 ## 用法 ### 设置 该项目使用 [uv](https://github.com/astral-sh/uv) 进行依赖管理。安装 uv 后,运行: ``` uv sync ``` ### 运行 唯一必需的参数是至少一个关键字。你可以使用内置的模糊测试字符串,但如果你使用 `-m` 和/或 `-b` 提供自己的字符串,将会得到更好的结果。 你可以通过多次指定 `-k` 参数来提供多个关键字。 关键字会使用 `enum_tools/fuzz.txt` 中的字符串或你通过 `-m` 标志提供的文件自动进行变形(mutate)。需要进行二级暴力破解的服务(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 ``` ## 致谢 到目前为止,我借鉴了: - 来自 [GCPBucketBrute](https://github.com/RhinoSecurityLabs/GCPBucketBrute/blob/master/permutations.txt) 的一些排列组合
标签:Python, 多云计算, 实时处理, 无后门, 枚举工具, 逆向工具