GCP Pentesting
基本信息
在开始 pentesting 一个 GCP 环境之前,有一些基本的事情你需要知道,以帮助你理解需要做什么,如何发现错误配置以及如何利用它们。
诸如组织层次结构、权限和其他基本概念在以下内容中解释:
GCP - Basic Information学习实验室
GCP Pentester/Red Team 方法论
为了审计一个 GCP 环境,了解哪些服务正在使用,什么暴露了,谁对什么有访问权限,以及内部 GCP 服务和外部服务如何连接是非常重要的。
从 Red Team 的角度来看,攻破 GCP 环境的第一步是设法获取一些凭证。这里有一些方法:
github(或类似)上的泄漏 - OSINT
社会工程(查看页面 Workspace Security)
密码重用(密码泄漏)
GCP 托管应用程序中的漏洞
服务器端请求伪造 访问元数据端点
本地文件读取
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
第三方泄漏
内部员工
或者通过攻破暴露的未认证服务:
GCP - Unauthenticated Enum & Access或者如果你在进行审查,你可以请求这些角色的凭证:
GCP - Permissions for a Pentest在你设法获取凭证后,你需要知道这些凭证属于谁,以及他们有访问权限,所以你需要进行一些基本的枚举:
基本枚举
SSRF
有关如何枚举 GCP 元数据的更多信息,请查看以下 hacktricks 页面:
Whoami
在 GCP 中,你可以尝试几种方法来猜测你是谁:
组织枚举
Principals & IAM Enumeration
如果你有足够的权限,检查GCP账户中每个实体的权限将帮助你了解你和其他身份可以做什么以及如何提升权限。
如果你没有足够的权限来枚举IAM,你可以窃取或暴力破解来弄清楚。 查看如何进行枚举和暴力破解在:
GCP - IAM, Principals & Org Policies Enum现在你有了一些关于你凭证的信息(如果你是红队,希望你没有被检测到)。是时候弄清楚环境中使用了哪些服务了。 在以下部分,你可以查看一些枚举常见服务的方法。
Services Enumeration
GCP有大量的服务,在以下页面中你会找到基本信息、枚举备忘单,如何避免检测,获得持久性,以及其他一些后期利用技巧:
GCP - Services注意,你不需要全部手动完成工作,在这篇文章的下面你可以找到一个关于自动化工具的部分。
此外,在这个阶段你可能会发现更多暴露给未认证用户的服务,你可能能够利用它们:
GCP - Unauthenticated Enum & AccessPrivilege Escalation, Post Exploitation & Persistence
一旦你获得了一些云凭证或入侵了一些在云中运行的服务,最常见的方法是滥用被入侵账户可能拥有的错误配置的权限。所以,你首先应该做的是枚举你的权限。
此外,在这个枚举过程中,记住权限可以设置在“组织”的最高级别。
GCP - Privilege EscalationGCP - Post ExploitationGCP - PersistencePublicly Exposed Services
在枚举GCP服务时,你可能会发现一些将元素暴露给互联网的服务(VM/容器端口、数据库或队列服务、快照或存储桶...)。 作为渗透测试员/红队成员,你应该始终检查是否能在这些服务中找到敏感信息/漏洞,因为它们可能为你提供进一步访问AWS账户的途径。
在这本书中,你应该找到关于如何发现暴露的GCP服务以及如何检查它们的信息。关于如何在暴露的网络服务中找到漏洞,我建议你搜索特定的服务在:
GCP <--> Workspace Pivoting
入侵一个平台中的主体可能允许攻击者入侵另一个平台,查看:
GCP <--> Workspace PivotingAutomatic Tools
在GCloud控制台,在https://console.cloud.google.com/iam-admin/asset-inventory/dashboard你可以看到项目使用的资源和IAM。
这里你可以看到这个API支持的资产:https://cloud.google.com/asset-inventory/docs/supported-asset-types
查看可以在多个云中使用的工具在这里。
gcp_scanner:这是一个GCP资源扫描器,可以帮助确定某些凭证在GCP上的访问级别。
gcp_enum: 使用 gcloud cli 枚举 GCP 环境并将结果保存到文件中的 Bash 脚本。
GCP-IAM-Privilege-Escalation: 枚举高 IAM 权限并在 GCP 中滥用它们以提升权限的脚本(我无法运行枚举脚本)。
BF My GCP Permissions: 暴力破解你的权限的脚本。
gcloud config & debug
捕获 gcloud, gsutil... 网络
记住你可以使用 参数 --log-http
与 gcloud
cli 一起 打印 工具正在执行的 请求。如果你不希望日志编辑 token 值,使用 gcloud config set log_http_redact_token false
此外,要拦截通信:
OAuth token configure in gcloud
为了使用从元数据端点泄露的服务账户OAuth令牌,你可以这样做:
参考资料
Last updated