GCP - Bigtable Privesc

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Bigtable

Para más información sobre Bigtable consulta:

GCP - Bigtable Enum

bigtable.instances.setIamPolicy

Permisos: bigtable.instances.setIamPolicy (y normalmente bigtable.instances.getIamPolicy para leer las asignaciones actuales).

Poseer la política IAM de la instancia te permite concederte roles/bigtable.admin (o cualquier rol personalizado), lo cual se propaga a cada clúster, tabla, copia de seguridad y vista autorizada en la instancia.

Otórgate el rol bigtable.admin en la instancia ```bash gcloud bigtable instances add-iam-policy-binding \ --member='user:' \ --role='roles/bigtable.admin' ```

Tip

Si no puedes listar los bindings existentes, crea un documento de policy nuevo y súbelo con gcloud bigtable instances set-iam-policy siempre que te mantengas a ti mismo en él.

Con este permiso, revisa la Bigtable Post Exploitation section para ver más técnicas para abusar de los permisos de Bigtable.

bigtable.tables.setIamPolicy

Permisos: bigtable.tables.setIamPolicy (opcionalmente bigtable.tables.getIamPolicy).

Las instance policies pueden estar restringidas mientras las tablas individuales son delegadas. Si puedes editar el IAM de la tabla, puedes promoverte a owner del dataset objetivo sin afectar otros workloads.

Concederte el rol bigtable.admin en la tabla ```bash gcloud bigtable tables add-iam-policy-binding \ --instance= \ --member='user:' \ --role='roles/bigtable.admin' ```

Después de obtener este permiso, consulta la Bigtable Post Exploitation section para más formas de abusar de los permisos de Bigtable.

bigtable.backups.setIamPolicy

Permisos: bigtable.backups.setIamPolicy

Los Backups se pueden restaurar en cualquier instancia en cualquier proyecto que controles. Primero, otorga a tu identidad acceso al backup, luego restáuralo en un sandbox donde tengas los roles Admin/Owner.

Si tienes el permiso bigtable.backups.setIamPolicy, podrías otorgarte a ti mismo el permiso bigtable.backups.restore para restaurar backups antiguos e intentar acceder a información sensible.

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

Con este permiso, revisa la Bigtable Post Exploitation section para ver cómo restaurar un backup.

Actualizar Authorized View

Permisos: bigtable.authorizedViews.update

Los Authorized Views están pensados para redactar filas/columnas. Modificarlos o eliminarlos elimina las protecciones de granularidad fina en las que confían los defensores.

Actualizar Authorized View para ampliar el acceso ```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>

Después de obtener este permiso, consulta la [**Bigtable Post Exploitation section**](../gcp-post-exploitation/gcp-bigtable-post-exploitation.md) para ver cómo leer desde una Authorized View.

### `bigtable.authorizedViews.setIamPolicy`

**Permisos:**  `bigtable.authorizedViews.setIamPolicy`.

Un atacante con este permiso puede concederse acceso a una Authorized View, la cual puede contener datos sensibles a los que, de otro modo, no tendría acceso.

<details><summary>Concederse acceso a 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'

Después de realizar esta comprobación de permisos, consulta la Bigtable Post Exploitation section para ver cómo leer desde una vista autorizada.

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks