GCP Pentesting
Основна інформація
Перед початком pentesting середовища GCP, є кілька основних речей, які вам потрібно знати про те, як воно працює, щоб допомогти вам зрозуміти, що вам потрібно робити, як знаходити неправильні конфігурації та як їх експлуатувати.
Такі поняття, як ієрархія організації, дозволи та інші основні концепції пояснюються в:
GCP - Basic InformationЛабораторії для навчання
Методологія GCP Pentester/Red Team
Для аудиту середовища GCP дуже важливо знати: які сервіси використовуються, що експонується, хто має доступ до чого, і як внутрішні сервіси GCP та зовнішні сервіси підключені.
З точки зору Red Team, перший крок до компрометації середовища GCP - це отримання деяких облікових даних. Ось кілька ідей, як це зробити:
Leaks у github (або подібних) - OSINT
Соціальна інженерія (Перевірте сторінку Workspace Security)
Повторне використання паролів (витоки паролів)
Уразливості в додатках, розміщених на GCP
Server Side Request Forgery з доступом до метаданих
Локальне читання файлів
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
Зламані сторонні сервіси
Внутрішній співробітник
Або шляхом компрометації неавтентифікованого сервісу, що експонується:
GCP - Unauthenticated Enum & AccessАбо якщо ви проводите рев'ю, ви можете просто попросити облікові дані з цими ролями:
GCP - Permissions for a PentestПісля того, як ви отримали облікові дані, вам потрібно знати кому вони належать, і до чого вони мають доступ, тому вам потрібно виконати деякі базові дії з перерахування:
Базове перерахування
SSRF
Для отримання додаткової інформації про те, як перерахувати метадані GCP, перевірте наступну сторінку hacktricks:
Whoami
У GCP ви можете спробувати кілька варіантів, щоб спробувати здогадатися, хто ви:
Перерахування Org
Principals & IAM Enumeration
Якщо у вас достатньо дозволів, перевірка привілеїв кожної сутності всередині облікового запису GCP допоможе вам зрозуміти, що ви та інші ідентичності можуть робити і як ескалувати привілеї.
Якщо у вас недостатньо дозволів для перерахування IAM, ви можете вкрасти або брутфорсити їх, щоб з'ясувати. Перевірте як робити нумерацію та брутфорсинг у:
GCP - IAM, Principals & Org Policies EnumТепер, коли ви маєте деяку інформацію про свої облікові дані (і якщо ви червона команда, сподіваємось, ви не були виявлені). Настав час з'ясувати, які сервіси використовуються в середовищі. У наступному розділі ви можете перевірити деякі способи перерахування деяких загальних сервісів.
Services Enumeration
GCP має вражаючу кількість сервісів, на наступній сторінці ви знайдете базову інформацію, нумераційні шпаргалки, як уникати виявлення, отримувати постійність та інші постексплуатаційні трюки щодо деяких з них:
GCP - ServicesЗверніть увагу, що вам **не потрібно виконувати всю роботу вручну, нижче в цьому пості ви можете знайти розділ про автоматичні інструменти.
Крім того, на цьому етапі ви могли виявити більше сервісів, відкритих для неавтентифікованих користувачів, ви можете мати можливість їх експлуатувати:
GCP - Unauthenticated Enum & AccessPrivilege Escalation, Post Exploitation & Persistence
Найпоширеніший спосіб, коли ви отримали деякі хмарні облікові дані або скомпрометували якийсь сервіс, що працює всередині хмари, це зловживання неправильно налаштованими привілеями, які може мати скомпрометований обліковий запис. Тому перше, що ви повинні зробити, це перерахувати свої привілеї.
Крім того, під час цього перерахування пам'ятайте, що дозволи можуть бути встановлені на найвищому рівні "Організації" також.
GCP - Privilege EscalationGCP - Post ExploitationGCP - PersistencePublicly Exposed Services
Під час перерахування сервісів GCP ви могли знайти деякі з них, що відкривають елементи в Інтернет (порти VM/Containers, бази даних або черги сервісів, знімки або бакети...). Як пентестер/червона команда, ви завжди повинні перевіряти, чи можете ви знайти чутливу інформацію / вразливості в них, оскільки вони можуть надати вам додатковий доступ до облікового запису AWS.
У цій книзі ви повинні знайти інформацію про те, як знайти відкриті сервіси GCP і як їх перевірити. Щодо того, як знайти вразливості у відкритих мережевих сервісах, я б рекомендував вам шукати конкретний сервіс у:
GCP <--> Workspace Pivoting
Компрометація принципалів на одній платформі може дозволити атакуючому скомпрометувати іншу, перевірте це у:
GCP <--> Workspace PivotingAutomatic Tools
У GCloud консолі, на https://console.cloud.google.com/iam-admin/asset-inventory/dashboard ви можете побачити ресурси та IAM, які використовуються проектом.
Тут ви можете побачити активи, підтримувані цим API: https://cloud.google.com/asset-inventory/docs/supported-asset-types
Перевірте інструменти, які можна використовувати в кількох хмарах тут.
gcp_scanner: Це сканер ресурсів GCP, який може допомогти визначити, який рівень доступу мають певні облікові дані у GCP.
gcp_enum: Bash-скрипт для переліку середовища GCP за допомогою gcloud cli та збереження результатів у файл.
GCP-IAM-Privilege-Escalation: Скрипти для переліку високих IAM-привілеїв та підвищення привілеїв у GCP, зловживаючи ними (я не зміг запустити скрипт для переліку).
BF My GCP Permissions: Скрипт для брутфорсу ваших дозволів.
gcloud config & debug
Перехоплення gcloud, gsutil... мережі
Пам'ятайте, що ви можете використовувати параметр --log-http
з gcloud
cli для друку запитів, які виконує інструмент. Якщо ви не хочете, щоб журнали редагували значення токена, використовуйте gcloud config set log_http_redact_token false
Крім того, для перехоплення комунікації:
OAuth token configure in gcloud
Для того, щоб використовувати ексфільтрований OAuth токен сервісного облікового запису з метаданих endpoint, ви можете просто зробити:
Посилання
Last updated