GCP - Privilege Escalation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
GCP, як і будь-яке інше хмарне середовище, має деякі принципи: користувачі, групи та облікові записи служб, а також деякі ресурси, такі як обчислювальний двигун, хмарні функції… Потім, через ролі, дозволи надаються цим принципам над ресурсами. Це спосіб вказати дозволи, які має принцип над ресурсом у GCP. Є певні дозволи, які дозволять користувачу отримати ще більше дозволів на ресурс або ресурси третіх сторін, і це називається підвищенням привілеїв (також, експлуатація вразливостей для отримання більше дозволів).
Отже, я хотів би розділити техніки підвищення привілеїв GCP на 2 групи:
Privesc до принципу: Це дозволить вам видавати себе за інший принцип, і, отже, діяти як він з усіма його дозволами. наприклад: Зловживання getAccessToken для видачі себе за обліковий запис служби.
Privesc на ресурсі: Це дозволить вам отримати більше дозволів над конкретним ресурсом. наприклад: ви можете зловживати дозволом setIamPolicy над cloudfunctions, щоб дозволити вам викликати функцію.
Зверніть увагу, що деякі дозволи ресурсів також дозволять вам прикріпити довільний обліковий запис служби до ресурсу. Це означає, що ви зможете запустити ресурс з SA, потрапити в ресурс і вкрасти токен SA. Отже, це дозволить підвищити привілеї до принципу через ескалацію ресурсу. Це сталося в кількох ресурсах раніше, але тепер це трапляється рідше (але все ще може статися).
Очевидно, що найцікавіші техніки підвищення привілеїв - це техніки другої групи, оскільки вони дозволять вам отримати більше привілеїв поза ресурсами, над якими ви вже маєте деякі привілеї. Однак зверніть увагу, що ескалація в ресурсах може також надати вам доступ до чутливої інформації або навіть до інших принципів (можливо, через читання секрету, що містить токен SA).
Важливо також зазначити, що в GCP облікові записи служб є як принципами, так і дозволами, тому підвищення привілеїв у SA також дозволить вам видавати себе за нього.
Дозволи в дужках вказують на дозволи, необхідні для експлуатації вразливості з gcloud
. Вони можуть не знадобитися, якщо експлуатувати через API.
Ось як я перевіряю конкретні дозволи для виконання конкретних дій у GCP.
Завантажте репозиторій github https://github.com/carlospolop/gcp_privesc_scripts
Додайте в tests/ новий скрипт
Токени SA, витік з сервісу метаданих GCP, мають обмеження доступу. Це обмеження на дозволи, які має токен. Наприклад, якщо токен має https://www.googleapis.com/auth/cloud-platform
область, він матиме повний доступ до всіх сервісів GCP. Однак, якщо токен має https://www.googleapis.com/auth/cloud-platform.read-only
область, він матиме лише доступ лише для читання до всіх сервісів GCP, навіть якщо SA має більше дозволів в IAM.
Немає прямого способу обійти ці дозволи, але ви завжди можете спробувати знайти нові облікові дані на скомпрометованому хості, знайти ключ служби для генерації токена OAuth без обмежень або перейти на іншу VM з меншими обмеженнями.
Коли використовуються обмеження доступу, токен OAuth, який генерується для обчислювальної інстанції (VM), буде мати обмеження включено. Однак ви можете бути в змозі обійти це обмеження та експлуатувати дозволи, які має скомпрометований обліковий запис.
Найкращий спосіб обійти це обмеження - або знайти нові облікові дані на скомпрометованому хості, або знайти ключ служби для генерації токена OAuth без обмежень, або скомпрометувати іншу VM з SA з меншими обмеженнями.
Перевірте SA з ключами, згенерованими за допомогою:
Спосіб ескалації ваших привілеїв в AWS полягає в тому, щоб мати достатньо дозволів, щоб, так чи інакше, отримати доступ до привілеїв інших облікових записів/користувачів/груп. Ланцюгова ескалація, поки ви не отримаєте адміністративний доступ до організації.
GCP має сотні (якщо не тисячі) дозволів, які можуть бути надані сутності. У цій книзі ви можете знайти всі дозволи, які я знаю, які ви можете зловживати для ескалації привілеїв, але якщо ви знаєте якийсь шлях, не згаданий тут, будь ласка, поділіться ним.
Підсторінки цього розділу впорядковані за сервісами. Ви можете знайти на кожному сервісі різні способи ескалації привілеїв на сервісах.
Якщо ви знаходитесь всередині машини в GCP, ви можете зловживати дозволами для ескалації привілеїв навіть локально:
GCP - local privilege escalation ssh pivotingВчіться та практикуйте Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)