GCP - Orgpolicy Privesc

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

orgpolicy

orgpolicy.policy.set

拥有 orgpolicy.policy.set 权限的攻击者可以操纵组织策略,从而移除阻碍特定操作的某些限制。例如,约束 appengine.disableCodeDownload 通常会阻止下载 App Engine 源代码。但是,攻击者可通过使用 orgpolicy.policy.set 来停用该约束,从而获得下载源代码的权限,即使原本受到了保护。

获取 org policy 信息并禁用强制执行 ```bash # Get info gcloud resource-manager org-policies describe [--folder | --organization | --project ]

Disable

gcloud resource-manager org-policies disable-enforce [–folder | –organization | –project ]

</details>

用于此方法的 python 脚本可在 [here](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/orgpolicy.policy.set.py) 找到。

### `orgpolicy.policy.set`, `iam.serviceAccounts.actAs`

通常无法将来自不同项目的服务账号附加到资源上,因为存在一个名为 **`iam.disableCrossProjectServiceAccountUsage`** 的策略约束会阻止此操作。

可以通过运行以下命令来验证是否强制执行该约束:

<details>
<summary>验证跨项目服务账号约束</summary>
```bash
gcloud resource-manager org-policies describe \
constraints/iam.disableCrossProjectServiceAccountUsage \
--project=<project-id> \
--effective

booleanPolicy:
enforced: true
constraint: constraints/iam.disableCrossProjectServiceAccountUsage

这可以阻止攻击者滥用权限 iam.serviceAccounts.actAs 来模拟来自其他项目的服务账号(例如在没有启动新 VM 等所需额外基础设施权限的情况下),从而可能导致权限提升。

但是,拥有 orgpolicy.policy.set 权限的攻击者可以通过禁用约束 iam.disableServiceAccountProjectWideAccess 来绕过此限制。这样攻击者就能将来自其他项目的服务账号附加到自己项目的资源上,从而实际提升其权限。

禁用跨项目服务账号约束 ```bash gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project= ```

参考资料

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