trickest/cloud

GitHub: trickest/cloud

持续采集 AWS EC2 和 GCP 云环境的 SSL 证书数据,以每日更新的 CSV 文件公开发布,辅助安全人员进行云上资产发现与侦察。

Stars: 92 | Forks: 15

Cloud Tweet

Monitoring the Cloud Landscape

我们在这个项目中的目标是为每个主要云服务提供商提供一份始终保持最新且可免费访问的云环境全景图。 考虑到这些数据对安全研究人员的价值,我们决定首先从收集 AWS EC2 和 GCP 机器的 SSL 证书数据开始。不过,我们计划在不久的将来扩展该项目,以涵盖更多的数据和提供商。您的意见和建议对我们来说非常宝贵,因此请随时在 [Twitter](https://twitter.com/trick3st) 或 [Discord](https://discord.gg/7HZmFYTGcQ) 上与我们联系,告诉我们您认为我们接下来应该优先处理哪些领域! ## SSL 证书数据能为您带来什么好处? [SSL 数据](./ssl/)被整理成 CSV 文件,并为每个发现的证书收集了以下属性: - IP 地址 - 通用名称 - 组织 - 国家 - 地区 - 省/州 - 使用者备用 DNS 名称 - 使用者备用 IP 地址 - 自签名 (布尔值) | IP 地址 | 通用名称 | 组织 | 国家 | 地区 | 省/州 | 使用者备用 DNS 名称 | 使用者备用 IP 地址 | 自签名 | |------------|-------------|----------------|---------|----------------|------------|------------------------------|--------------------------------|-------------| | 1.2.3.4 | example.com | Example, Inc. | US | San Francisco | California | example.com | 1.2.3.4 | false | | 5.6.7.8 | acme.net | Acme, Inc. | US | Seattle | Washington | *.acme.net | 5.6.7.8 | false | 那么您可以用这些数据做什么呢? ### 枚举目标域名的子域名 搜索您目标的域名(例如 `example.com`),并在收集到的证书的 `Common Name` 和 `Subject Alternative Name` 字段中查找匹配项。所有 IP 范围每天都会进行扫描,并且数据集会相应地更新,因此您很有可能在临时主机被关闭之前发现它们。 ### 枚举目标公司的域名 搜索您目标的公司名称(例如 `Example, Inc.`),在 `Organization` 字段中查找匹配项,并探索相关的 `Common Name` 和 `Subject Alternative Name` 字段。结果可能包含您熟悉的域名的子域名,如果运气好的话,您甚至可能会发现扩展了范围的新根域名。 ### 枚举可能的子子域名枚举目标 如果证书是为通配符(例如 `*.foo.example.com`)签发的,那么很可能存在其他子域名,您可以通过暴力破解来找到它们。而且您知道[这项技术是多么有效](https://twitter.com/trick3st/status/1614974813889794052)。这里有一些[字典](https://github.com/trickest/wordlists/tree/main/inventory/levels)可以帮助您! 💡 注意:请记住监控数据集的每日更新,以便在有新资产出现时收到通知! ### 执行 IP 查询 搜索一个 IP 地址(例如 `3.122.37.147`)以查找与其关联的主机名,并探索 `Common Name`、`Subject Alternative Name` 和 `Organization` 字段,以获取有关该地址的更多信息。 ### 发现源 IP 地址以绕过代理服务 当网站隐藏在 Cloudflare、Akamai、Incapsula 等安全代理服务后面时,可以在数据集中搜索主机名(例如 `example.com`)。此搜索可能会揭露源 IP 地址,从而允许您绕过代理。我们已经在博客上讨论过类似的技术,您可以[在此处](https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/)找到相关内容! ### 获取最新活跃 Web 服务器数据集 数据集中的每个 IP 地址都对应一个运行在端口 443 上的 HTTPS 服务器。您可以将这些数据用于大规模研究,而无需自己花费时间去收集。 ### 您能想到的任何其他用途 如果您将这些数据用于一个很酷的项目或研究,我们非常乐意听听相关内容! 此外,在下方您将找到有关我们数据收集过程的详细说明,以及您如何实施相同的技术来从您自己的 IP 范围内收集信息。 ## 工作原理 ![Trickest Workflow - SSL](images/ssl.png "Trickest Workflow - SSL") ### TB; DZ (图太大;没放大看): 1. 我们通过 2 个简单的 bash 脚本启动工作流来检索 IP 范围: - [AWS 的 IP 范围](https://ip-ranges.amazonaws.com/ip-ranges.json) 通过 JQ 查询进行过滤。我们通过筛选 `.prefixes[] | select(.service=="EC2") | .ip_prefix` 提取出 EC2 机器的 IP 范围。此工作流排除了其他服务,因为它们不支持自定义 SSL 证书,这使得它们的数据与我们的数据集无关。 - [GCP 的 IP 范围](https://www.gstatic.com/ipranges/cloud.json) 使用另一个 JQ 查询提取:`.prefixes[].ipv4Prefix`。 2. 然后,我们使用 [mapcidr](https://github.com/projectdiscovery/mapcidr) 将第 1 步中获得的 IP 范围划分为更小的范围,每个范围最多包含 10 万台主机(感谢 [ProjectDiscovery](https://github.com/projectdiscovery) 团队!)。这一步将在下一步运行并行扫描过程时派上用场。 3. 在撰写本文时,云 IP 范围包含超过 7500 万个 IP 地址,因此在单台机器上扫描所有这些地址将是不切实际的,这就是我们的 `file-splitter` 节点发挥作用的地方。此节点遍历来自 `mapcidr` 的输入,并为每个范围触发独立的作业。当在多台机器上执行此工作流时(假设为 30 台),它们会并行地并发处理这些作业,从而显著缩短整体运行时间。这种高效率使我们能够每天运行工作流,保持数据不断更新。 4. 并行机器随后启动 [zgrab2](https://github.com/zmap/zgrab2) 实例来收集 SSL 证书。在对各种工具和技术进行实验后,`zgrab2` 的 tls 模块脱颖而出,成为最快、最可靠的选项。向 [The ZMap Project](https://github.com/zmap) 团队致敬! 5. 每个 zgrab2 实例将其数据传递给一个 bash 脚本,该脚本提取相关数据并将其输出写入 CSV 文件。 6. 最后,我们收集所有 CSV 文件并将它们拆分成易于管理的 450 KB 大小的块,以便让 GitHub 能够[渲染这些 CSV 文件](https://docs.github.com/en/repositories/working-with-files/using-files/working-with-non-code-files)。然后,这些块被推送到此存储库中。 ## 贡献 欢迎所有的贡献/想法/建议!随时可以通过 [GitHub issues](https://github.com/trickest/cloud/issues) 创建新工单,在 [@trick3st](https://twitter.com/trick3st) 上向我们发推文,或者加入 [Discord](https://discord.gg/7HZmFYTGcQ) 上的讨论。 ## 构建您自己的工作流 我们相信不断探索的价值;千篇一律的解决方案往往难以胜任。注册获取 [Trickest](https://trickest.com) 演示,根据您的用例自定义此工作流,访问更多的工作流,或者从头开始构建您自己的工作流! [](https://trickest.io/auth/register)
标签:ASM, AWS, DPI, EC2, ESC4, GCP, GitHub, IaC, OSINT, SSL证书, 云计算, 云资产监控, 威胁情报, 实时处理, 密码管理, 应用安全, 开发者工具, 网络安全, 规则引擎, 资产测绘, 隐私保护