GCP - Privilege Escalation
Вступ до Підвищення Привілеїв в GCP
GCP, як і будь-який інший хмарний сервіс, має деякі принципи: користувачі, групи та сервісні облікові записи, а також деякі ресурси, такі як обчислювальний ресурс, хмарні функції... Потім, через ролі, надаються дозволи цим принципам на ресурси. Це спосіб вказати дозволи, які має принцип щодо ресурсу в GCP. Існують певні дозволи, які дозволять користувачеві отримати ще більше дозволів на ресурс або сторонні ресурси, і це те, що називається підвищенням привілеїв (також, експлуатація вразливостей для отримання більше дозволів).
Отже, я хотів би розділити техніки підвищення привілеїв в GCP на 2 групи:
Підвищення привілеїв до принципала: Це дозволить вам імітувати іншого принципала, і, отже, діяти як він з усіма його дозволами. Наприклад: Зловживання getAccessToken для імітації сервісного облікового запису.
Підвищення привілеїв на ресурсі: Це дозволить вам отримати більше дозволів на конкретний ресурс. Наприклад: ви можете зловживати дозволом setIamPolicy для cloudfunctions, щоб дозволити вам запускати функцію.
Зверніть увагу, що деякі дозволи на ресурси також дозволять вам прикріпити довільний сервісний обліковий запис до ресурсу. Це означає, що ви зможете запустити ресурс з СО, увійти в ресурс та вкрасти токен СО. Таким чином, це дозволить підвищити привілеї до принципала через підвищення привілеїв на ресурсі. Це сталося в декількох ресурсах раніше, але зараз це менш поширене (але все ще можливо).
Очевидно, найцікавіші техніки підвищення привілеїв - це ті, що належать до другої групи, оскільки це дозволить вам отримати більше привілеїв поза ресурсами, над якими ви вже маєте деякі привілеї. Однак слід зауважити, що підвищення привілеїв на ресурсах також може дати вам доступ до чутливої інформації або навіть до інших принципалів (можливо, через читання секрету, що містить токен СО).
Також важливо зауважити, що в Сервісних облікових записах GCP є як принципали, так і дозволи, тому підвищення привілеїв в СО дозволить вам також імітувати його.
Дозволи у дужках вказують на необхідні дозволи для експлуатації вразливості за допомогою gcloud
. Ці дозволи можуть бути зайвими, якщо ви експлуатуєте їх через API.
Дозволи для Методології Підвищення Привілеїв
Ось як я перевіряю конкретні дозволи для виконання певних дій в середовищі GCP.
Завантажте репозиторій GitHub https://github.com/carlospolop/gcp_privesc_scripts
Додайте новий скрипт у 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 з меншими обмеженнями.
Перевірте СО з ключами, згенерованими за допомогою:
Техніки підвищення привілеїв
Шлях до підвищення привілеїв в AWS полягає в тому, щоб мати достатньо дозволів для того, щоб, якось, отримати доступ до привілеїв інших облікових записів/користувачів/груп. Ланцюжок підвищення привілеїв, поки у вас не буде адміністраторського доступу до організації.
У GCP є сотні (якщо не тисячі) дозволів, які можуть бути надані сутності. У цій книзі ви можете знайти всі дозволи, які я знаю, які можна зловживати для підвищення привілеїв, але якщо ви знаєте якийсь шлях, який тут не згадано, будь ласка, поділіться ним.
Підсторінки цього розділу впорядковані за сервісами. На кожному сервісі ви можете знайти різні способи підвищення привілеїв на сервісах.
Зловживання GCP для підвищення привілеїв локально
Якщо ви знаходитесь всередині машини в GCP, ви, можливо, зможете зловживати дозволами для підвищення привілеїв навіть локально:
pageGCP - local privilege escalation ssh pivotingПосилання
Last updated