# GCP - Orgpolicy Privesc

{{#include ../../../banners/hacktricks-training.md}}

## orgpolicy

### `orgpolicy.policy.set`

**orgpolicy.policy.set** を悪用する攻撃者は組織のポリシーを操作でき、特定の操作を妨げる制限を解除できます。例えば、制約 **appengine.disableCodeDownload** は通常 App Engine のソースコードのダウンロードを阻止します。しかし、**orgpolicy.policy.set** を使うことでこの制約を無効化し、当初は保護されていたソースコードのダウンロードにアクセスできるようになります。

<details>
<summary>org policy の情報を取得して強制を無効化</summary>
```bash
# Get info
gcloud resource-manager org-policies describe <org-policy> [--folder <id> | --organization <id> | --project <id>]

# Disable
gcloud resource-manager org-policies disable-enforce <org-policy> [--folder <id> | --organization <id> | --project <id>]
```
</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
```
</details>

これは攻撃者が権限 **`iam.serviceAccounts.actAs`** を悪用して、例えば追加のインフラ権限（新しい VM の起動など）なしに別プロジェクトのサービスアカウントを引き受けることを防ぎます。こうした行為は権限昇格につながる可能性があります。

しかし、権限 **`orgpolicy.policy.set`** を持つ攻撃者は、制約 **`iam.disableServiceAccountProjectWideAccess`** を無効化することでこの制限を回避できます。これにより攻撃者は別プロジェクトのサービスアカウントを自身のプロジェクト内のリソースに紐付けることができ、実質的に権限を昇格させることが可能になります。

<details>
<summary>クロスプロジェクトのサービスアカウント制約を無効化</summary>
```bash
gcloud resource-manager org-policies disable-enforce \
iam.disableCrossProjectServiceAccountUsage \
--project=<project-id>
```
</details>

## 参考資料

- [https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/](https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/)

{{#include ../../../banners/hacktricks-training.md}}
