GCP - 理解域范围委托
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
本文是对 https://www.hunters.security/en/blog/delefriend-a-newly-discovered-design-flaw-in-domain-wide-delegation-could-leave-google-workspace-vulnerable-for-takeover 的介绍,更多细节可以访问该链接。
理解域范围委托
Google Workspace 的域范围委托允许身份对象,无论是来自 Google Workspace Marketplace 的 外部应用 还是内部的 GCP 服务账户,代表用户访问 Workspace 中的数据。此功能对于与 Google API 或需要用户 impersonation 的服务交互的应用至关重要,通过自动化任务提高效率并减少人为错误。使用 OAuth 2.0,应用开发者和管理员可以在不需要单个用户同意的情况下,授予这些服务账户访问用户数据的权限。
Google Workspace 允许创建两种主要类型的全局委托对象身份:
- GWS 应用程序: 来自 Workspace Marketplace 的应用程序可以设置为委托身份。在进入市场之前,每个 Workspace 应用程序都经过 Google 的审核,以减少潜在的滥用风险。虽然这并不能完全消除滥用的风险,但显著增加了此类事件发生的难度。
- GCP 服务账户: 了解更多关于 GCP 服务账户的信息。
域范围委托:内部机制
以下是 GCP 服务账户如何代表 Google Workspace 中的其他身份访问 Google API 的过程:
.png)
- 身份创建 JWT: 身份使用服务账户的私钥(JSON 密钥对文件的一部分)签署 JWT。此 JWT 包含有关服务账户、要 impersonate 的目标用户以及请求的 REST API 的 OAuth 访问范围的声明。
- 身份使用 JWT 请求访问令牌: 应用程序/用户使用 JWT 向 Google 的 OAuth 2.0 服务请求访问令牌。请求还包括要 impersonate 的目标用户(用户的 Workspace 电子邮件)和请求访问的范围。
- Google 的 OAuth 2.0 服务返回访问令牌: 访问令牌代表服务账户在指定范围内代表用户的权限。此令牌通常是短期有效的,必须定期刷新(根据应用程序的需要)。理解 JWT 令牌中指定的 OAuth 范围对结果访问令牌的有效性和影响至关重要。例如,拥有多个范围的访问令牌将在多个 REST API 应用程序中保持有效。
- 身份使用访问令牌调用 Google API: 现在,凭借相关的访问令牌,服务可以访问所需的 REST API。应用程序在其发送到 Google API 的 HTTP 请求的 “Authorization” 头中使用此访问令牌。这些 API 使用令牌来验证 impersonated 身份并确认其拥有必要的授权。
- Google API 返回请求的数据: 如果访问令牌有效且服务账户具有适当的授权,Google API 将返回请求的数据。例如,在下图中,我们利用 users.messages.list 方法列出与目标 Workspace 用户关联的所有 Gmail 消息 ID。
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
HackTricks Cloud

