gcpwn 是我在尝试学习 GCP 时构建的一个工具,并利用了较新的 GRPC 客户端库。它由我编写的众多枚举模块以及利用该领域其他人(例如 Rhino Security)所做的研究的利用模块以及一些现有的已知独立工具(例如 GCPBucketBrute)组成,努力使该工具成为 GCP 测试的一站式商店。虽然其他漏洞利用脚本通常是一次性使用的,但 GCPwn 在您运行模块时会存储数据和权限,为您组织数据,并重新使用它,使您的渗透测试/跟踪权限变得更轻松。
作者:Scott Weston (@webbinroot),NetSPI
所需依赖项:请参阅Requirements.txt + Wiki 安装指南
依赖项说明:主要在 Kali Linux 上测试;通过 Dockerfile 可以安装 Docker
该工具主要面向渗透测试人员、刚刚学习 GCP 安全的人员以及一般安全研究人员。
对于渗透测试人员来说,如上所示,该工具会自动执行您通常运行的许多脚本并存储数据,以使漏洞利用模块的执行变得简单。
对于那些刚刚学习 GCP 安全性的人来说,该工具的设置方式是,当您深入研究各个服务时,应该可以轻松地通过 Pull 请求添加您自己的模块。
对于安全研究人员来说,该工具允许您运行大量 GCP API 调用,我记录了如何通过 Burp Suite 等本地工具在后台代理该工具。因此,通过 burp suite 运行enum_all
记录所有请求,您可以通过一个命令了解所有不同 python 库中的所有不同 API 端点。至少这是希望,如果有人能完成破解代码的话,我可以部分使用环境变量:)
查看 wiki:https://github.com/NetSPI/gcpwn/wiki:
安装说明和文件夹设置:如何设置首次使用该工具和使用的默认文件夹
身份验证管理和令牌信息:加载用户和/或服务凭据以获取凭据设置
管理项目和检索资源数据:如何管理项目 ID 以及如何从 SQLite 表检索枚举数据。
模块指南:如何调用模块+深入了解每个模块
模块创建:如何通过拉取请求添加您自己的模块(进行中 - 目标日期 2024 年 9 月 15 日)
研究难题:研究主题/开放性问题(进行中 - 目标日期 2024 年 9 月 22 日)
该工具将自动默认为“表”标准输出。工具支持表格、txt 和 csv。如果您遇到表问题,可以使用以下命令更改全局配置:
# See global configs global_configs # Set global configs for preferred output global_configs set std-output txt
或者您可以在每个modules run
命令中传入--txt
、 --table
和/或--csv
来更改 stdoutput
modules run enum_buckets --txt
枚举的数据存储在 GCPwn 的本地表中。要查看表输出,请运行
# See all tables data tables # See all table columns data tables <table_name> --columns # Get all data back and export to CSV file data <table_name> --columns column1,column2 --csv [OUTPUT_FILE]
运行enum_all
模块,然后运行creds info
以查看新枚举的权限。然后, process_iam_bindings
模块将为您提供策略绑定的 TXT/CSV 摘要(如果可以枚举),并且analyze_vulns
将尝试标记错误的角色/权限。请参阅下面的常见标志。
枚举所有内容(选择最适合的一项)
# Quickest: Run all enumeration modules + testIAM Permissions modules run enum_all --iam # Longer: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org modules run enum_all --iam --all-permissions # Longer + Downloads: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org + download everyting modules run enum_all --iam --all-permissions --download
从 enum_all 或上述其他模块获取所有 IAM 策略绑定并返回摘要/漏洞分析
# Review Permissions User Has Thus Far creds info # Return Policy Summary from IAM Bindings if Applicable modules run process_iam_bindings [--txt] [--csv] # Analyze IAM Bindings + Other Items (like allUsers) if Applicable modules run analyze_vulns [--txt] [--csv]
fwd:cloudsec 2024:https://www.youtube.com/watch?v=opvv9h3Qe0s(“GCPwn:GCP 的渗透测试工具 - Scott Weston”)
Defcon 32 云村:https://www.youtube.com/watch?v=rxXyYo1n9cw
https://www.netspi.com/blog/technical-blog/cloud-pentesting/introduction-to-gcpwn-part-1/
我会关注任何很酷的新东西的问题/拉动,也就是说我确实有一份日常工作,所以给我至少 24 小时之类的:)
如果它是一个小问题,则更喜欢通过“问题”选项卡进行问题以快速修复。
建立在巨人的肩膀上,一些代码和想法/研究的灵感来自于:
犀牛安全 (https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/)
GCPBucketBrute (https://github.com/RhinoSecurityLabs/GCPBucketBrute)
大量 Google 文档 (https://cloud.google.com/python/docs/reference)