GCP Pentesting
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 - Basic InformationЩоб провести аудит середовища GCP, дуже важливо знати: які послуги використовуються, що експонується, хто має доступ до чого, і як внутрішні GCP послуги та зовнішні послуги з'єднані.
З точки зору Red Team, перший крок для компрометації середовища GCP - це отримати деякі облікові дані. Ось кілька ідей, як це зробити:
Витоки в github (або подібних) - OSINT
Соціальна інженерія (перевірте сторінку Workspace Security)
Повторне використання паролів (витоки паролів)
Вразливості в GCP-розміщених додатках
Server Side Request Forgery з доступом до метаданих
Читання локальних файлів
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
3-ті сторони зламані
Внутрішній працівник
Або шляхом компрометації неавтентифікованої служби, що експонується:
GCP - Unauthenticated Enum & AccessАбо, якщо ви проводите огляд, ви можете просто попросити облікові дані з цими ролями:
GCP - Permissions for a PentestПісля того, як ви змогли отримати облікові дані, вам потрібно знати, кому належать ці облікові дані, і до чого вони мають доступ, тому вам потрібно виконати деяку базову енумерацію:
Для отримання додаткової інформації про те, як перерахувати метадані GCP, перевірте наступну сторінку hacktricks:
В GCP ви можете спробувати кілька варіантів, щоб спробувати вгадати, хто ви є:
Ви також можете використовувати API-інтерфейс /userinfo
, щоб отримати більше інформації про користувача:
Якщо у вас достатньо прав, перевірка привілеїв кожної сутності всередині облікового запису GCP допоможе вам зрозуміти, що ви та інші ідентичності можете робити і як підвищити привілеї.
Якщо у вас недостатньо прав для перерахунку IAM, ви можете викрасти їх за допомогою брутфорсу, щоб з'ясувати. Перевірте як виконати перерахунок та брутфорс у:
GCP - IAM, Principals & Org Policies EnumТепер, коли ви маєте деяку інформацію про свої облікові дані (і якщо ви червона команда, сподіваюсь, ви не були виявлені). Час з'ясувати, які сервіси використовуються в середовищі. У наступному розділі ви можете перевірити деякі способи перерахунку деяких загальних сервісів.
GCP має вражаючу кількість сервісів, на наступній сторінці ви знайдете основну інформацію, перерахунок шпаргалок, як уникнути виявлення, отримати постійність та інші післяексплуатаційні трюки про деякі з них:
GCP - ServicesЗверніть увагу, що вам не потрібно виконувати всю роботу вручну, нижче в цьому пості ви можете знайти розділ про автоматичні інструменти.
Більше того, на цьому етапі ви могли виявити більше сервісів, доступних для неавтентифікованих користувачів, ви можете мати можливість їх експлуатувати:
GCP - Unauthenticated Enum & AccessНайпоширеніший спосіб, коли ви отримали деякі облікові дані хмари або скомпрометували деякий сервіс, що працює в хмарі, - це зловживати неправильно налаштованими привілеями, які може мати скомпрометований обліковий запис. Отже, перше, що вам слід зробити, - це перерахувати свої привілеї.
Більше того, під час цього перерахунку пам'ятайте, що дозволи можуть бути встановлені на найвищому рівні "Організації" також.
GCP - Privilege EscalationGCP - Post ExploitationGCP - PersistenceПід час перерахунку сервісів GCP ви могли знайти деякі з них, які відкривають елементи в Інтернет (порти VM/Контейнерів, бази даних або сервіси черг, знімки або бакети...). Як пентестер/червона команда, ви завжди повинні перевіряти, чи можете ви знайти чутливу інформацію / вразливості на них, оскільки вони можуть надати вам додатковий доступ до облікового запису AWS.
У цій книзі ви повинні знайти інформацію про те, як знайти відкриті сервіси GCP та як їх перевірити. Щодо того, як знайти вразливості у відкритих мережевих сервісах, я б рекомендував вам шукати конкретний сервіс у:
Скомпрометування принципів на одній платформі може дозволити зловмиснику скомпрометувати іншу, перевірте це в:
GCP <--> 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, зловживаючи ними (я не зміг запустити скрипт для перерахунку).
BF My GCP Permissions: Скрипт для брутфорсу ваших привілеїв.
Пам'ятайте, що ви можете використовувати параметр --log-http
з gcloud
cli, щоб друкувати запити, які виконує інструмент. Якщо ви не хочете, щоб журнали редагували значення токена, використовуйте gcloud config set log_http_redact_token false
Крім того, щоб перехопити зв'язок:
Щоб використати ексфільтрований токен OAuth облікового запису служби з кінцевої точки метаданих, ви можете просто зробити:
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)