GCP - Privilege Escalation

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Вступ до Підвищення Привілеїв в GCP

GCP, як і будь-який інший хмарний сервіс, має деякі принципи: користувачі, групи та сервісні облікові записи, а також деякі ресурси, такі як обчислювальний ресурс, хмарні функції... Потім, через ролі, надаються дозволи цим принципам на ресурси. Це спосіб вказати дозволи, які має принцип щодо ресурсу в GCP. Існують певні дозволи, які дозволять користувачеві отримати ще більше дозволів на ресурс або сторонні ресурси, і це те, що називається підвищенням привілеїв (також, експлуатація вразливостей для отримання більше дозволів).

Отже, я хотів би розділити техніки підвищення привілеїв в GCP на 2 групи:

  • Підвищення привілеїв до принципала: Це дозволить вам імітувати іншого принципала, і, отже, діяти як він з усіма його дозволами. Наприклад: Зловживання getAccessToken для імітації сервісного облікового запису.

  • Підвищення привілеїв на ресурсі: Це дозволить вам отримати більше дозволів на конкретний ресурс. Наприклад: ви можете зловживати дозволом setIamPolicy для cloudfunctions, щоб дозволити вам запускати функцію.

  • Зверніть увагу, що деякі дозволи на ресурси також дозволять вам прикріпити довільний сервісний обліковий запис до ресурсу. Це означає, що ви зможете запустити ресурс з СО, увійти в ресурс та вкрасти токен СО. Таким чином, це дозволить підвищити привілеї до принципала через підвищення привілеїв на ресурсі. Це сталося в декількох ресурсах раніше, але зараз це менш поширене (але все ще можливо).

Очевидно, найцікавіші техніки підвищення привілеїв - це ті, що належать до другої групи, оскільки це дозволить вам отримати більше привілеїв поза ресурсами, над якими ви вже маєте деякі привілеї. Однак слід зауважити, що підвищення привілеїв на ресурсах також може дати вам доступ до чутливої інформації або навіть до інших принципалів (можливо, через читання секрету, що містить токен СО).

Також важливо зауважити, що в Сервісних облікових записах GCP є як принципали, так і дозволи, тому підвищення привілеїв в СО дозволить вам також імітувати його.

Дозволи у дужках вказують на необхідні дозволи для експлуатації вразливості за допомогою gcloud. Ці дозволи можуть бути зайвими, якщо ви експлуатуєте їх через API.

Дозволи для Методології Підвищення Привілеїв

Ось як я перевіряю конкретні дозволи для виконання певних дій в середовищі GCP.

  1. Завантажте репозиторій GitHub https://github.com/carlospolop/gcp_privesc_scripts

  2. Додайте новий скрипт у tests/

Обхід обмежень областей доступу

Токени СО, які витікають з служби метаданих GCP, мають обмеження доступу. Це обмеження на дозволи, які має токен. Наприклад, якщо токен має область https://www.googleapis.com/auth/cloud-platform, він матиме повний доступ до всіх служб GCP. Однак, якщо токен має область https://www.googleapis.com/auth/cloud-platform.read-only, він матиме лише доступ тільки для читання до всіх служб GCP, навіть якщо у СО є більше дозволів в IAM.

Немає прямого способу обійти ці дозволи, але ви завжди можете спробувати знайти нові облікові дані на скомпрометованому хості, знайти ключ служби для генерації токена OAuth без обмежень або перейти на інший VM з меншими обмеженнями.

Коли використовуються області доступу, токен OAuth, який генерується для обчислювального екземпляра (VM), буде мати обмеження області scope. Однак ви можете обійти це обмеження та експлуатувати дозволи, які має скомпрометований обліковий запис.

Найкращий спосіб обійти це обмеження - це або знайти нові облікові дані на скомпрометованому хості, знайти ключ служби для генерації токена OAuth без обмежень або скомпрометувати інший VM з меншими обмеженнями.

Перевірте СО з ключами, згенерованими за допомогою:

for i in $(gcloud iam service-accounts list --format="table[no-heading](email)"); do
echo "Looking for keys for $i:"
gcloud iam service-accounts keys list --iam-account $i
done

Техніки підвищення привілеїв

Шлях до підвищення привілеїв в AWS полягає в тому, щоб мати достатньо дозволів для того, щоб, якось, отримати доступ до привілеїв інших облікових записів/користувачів/груп. Ланцюжок підвищення привілеїв, поки у вас не буде адміністраторського доступу до організації.

У GCP є сотні (якщо не тисячі) дозволів, які можуть бути надані сутності. У цій книзі ви можете знайти всі дозволи, які я знаю, які можна зловживати для підвищення привілеїв, але якщо ви знаєте якийсь шлях, який тут не згадано, будь ласка, поділіться ним.

Підсторінки цього розділу впорядковані за сервісами. На кожному сервісі ви можете знайти різні способи підвищення привілеїв на сервісах.

Зловживання GCP для підвищення привілеїв локально

Якщо ви знаходитесь всередині машини в GCP, ви, можливо, зможете зловживати дозволами для підвищення привілеїв навіть локально:

pageGCP - local privilege escalation ssh pivoting

Посилання

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated