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