GCP Pentesting
Основна інформація
Перш ніж почати тестування на проникнення середовища GCP, є кілька основних речей, які вам потрібно знати про його роботу, щоб допомогти вам зрозуміти, що вам потрібно робити, як знаходити неправильні конфігурації та як їх експлуатувати.
Концепції, такі як ієрархія організації, дозволи та інші основні концепції пояснені в:
pageGCP - Basic InformationЛабораторії для навчання
Методологія тестування на проникнення GCP/Red Team
Для аудиту середовища GCP дуже важливо знати: які сервіси використовуються, що викладено, хто має доступ до чого і як внутрішні сервіси GCP пов'язані з зовнішніми сервісами.
З точки зору Red Team, першим кроком для компрометації середовища GCP є здобуття даних для входу. Ось деякі ідеї, як це зробити:
Витоки в github (або подібні) - OSINT
Соціальна інженерія (Перевірте сторінку Безпека Workspace)
Повторне використання паролів (витоки паролів)
Вразливості в застосунках, розміщених в GCP
Підроблення запитів на бік сервера з доступом до кінцевої точки метаданих
Читання локальних файлів
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
3-ті сторони порушені
Внутрішні співробітники
Або шляхом компрометації невпізнаної служби, яка викладена:
pageGCP - Unauthenticated Enum & AccessАбо якщо ви робите огляд, ви можете просто запитати дані для входу з такими ролями:
pageGCP - Permissions for a PentestПісля того, як вам вдалося отримати дані для входу, вам потрібно знати, кому належать ці дані для входу, і до чого вони мають доступ, тому вам потрібно виконати деяку базову перелік:
Базова перелік
SSRF
Для отримання додаткової інформації про те, як перелічити метадані GCP, перевірте сторінку hacktricks:
Хто я
У GCP ви можете спробувати кілька варіантів, щоб вгадати, хто ви:
Перелік організацій
Принципи та перелік IAM
Якщо у вас достатньо дозволів, перевірка привілеїв кожної сутності в обліковому записі GCP допоможе вам зрозуміти, що ви та інші ідентичності можете робити та як підвищити привілеї.
Якщо у вас недостатньо дозволів для переліку IAM, ви можете їх викрасти або перебрати, щоб їх визначити. Перевірте, як виконати перелік та перебор в:
pageGCP - IAM, Principals & Org Policies EnumТепер, коли у вас є деяка інформація про ваші облікові дані (і якщо ви - червона команда, сподіваємося, вас не виявили), настав час визначити, які служби використовуються в середовищі. У наступному розділі ви можете перевірити деякі способи переліку деяких загальних служб.
Перелік служб
У GCP є вражаюча кількість служб, на наступній сторінці ви знайдете основну інформацію, шпаргалки з переліку, як уникнути виявлення, отримати постійність та інші післяексплуатаційні трюки щодо деяких з них:
pageGCP - ServicesЗверніть увагу, що вам не потрібно виконувати всю роботу вручну, нижче в цьому дописі ви знайдете розділ про автоматичні інструменти.
Більше того, на цьому етапі ви можли виявити, що більше служб відкрито для неавтентифікованих користувачів, ви можете їх використати:
pageGCP - Unauthenticated Enum & AccessПідвищення привілеїв, Післяексплуатація та Постійність
Найпоширеніший спосіб, як тільки ви отримали деякі хмарні облікові дані або скомпрометували деяку службу, що працює в хмарі, це зловживати неправильно налаштованими привілеями, які можуть бути у скомпрометованому обліковому записі. Таким чином, перш за все вам слід перелічити свої привілеї.
Більше того, під час цього переліку пам'ятайте, що дозволи можуть бути встановлені на найвищому рівні "Організація" також.
pageGCP - Privilege EscalationpageGCP - Post ExploitationpageGCP - PersistenceПублічно відкриті служби
Під час переліку служб GCP ви можли знайти деякі з них, які викладені в Інтернет (порти ВМ/контейнерів, бази даних або служби черг, знімки або кошики...). Як пентестер/червона команда, вам завжди слід перевіряти, чи можете ви знайти чутливу інформацію / вразливості на них, оскільки вони можуть надати вам додатковий доступ до облікового запису AWS.
У цій книзі ви повинні знайти інформацію про те, як знайти відкриті служби GCP та як їх перевірити. Щодо того, як знайти вразливості в відкритих мережевих службах, я б рекомендував вам шукати конкретну службу в:
GCP <--> Workspace Перехід
Компрометація принципалів в одній платформі може дозволити зловмиснику компрометувати іншу, перевірте це в:
pageGCP <--> Workspace PivotingАвтоматичні Інструменти
У консолі 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, зловживаючи ними (я не зміг запустити сценарій переліку).
Налаштування gcloud та відлагодження
Захоплення мережі gcloud, gsutil...
Пам'ятайте, що ви можете використовувати параметр --log-http
з командним рядком gcloud, щоб вивести запити, які виконує інструмент. Якщо ви не хочете, щоб журнали маскували значення токену, використовуйте gcloud config set log_http_redact_token false
Крім того, для перехоплення комунікації:
Налаштування токену OAuth в gcloud
Для того щоб використовувати витіканий токен OAuth облікового запису служби з кінцевої точки метаданих, ви можете просто виконати:
Посилання
Last updated