GCP - Cloud Functions Enum
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Cloud Functions
Google Cloud Functions призначені для розміщення вашого коду, який виконується у відповідь на події, без необхідності управління хост-операційною системою. Крім того, ці функції підтримують зберігання змінних середовища, які може використовувати код.
Storage
Код Cloud Functions зберігається в GCP Storage. Тому будь-хто з доступом для читання до бакетів в GCP зможе читати код Cloud Functions.
Код зберігається в бакеті, як один з наступних:
gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zip
gcf-v2-sources-<number>-<region>/<function-name>function-source.zip
Наприклад:
gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip
warning
Будь-який користувач з правами читання до бакету, що зберігає Cloud Function, може читати виконуваний код.
Artifact Registry
Якщо хмарна функція налаштована так, що виконуваний Docker-контейнер зберігається всередині репозиторію Artifact Registry в проекті, будь-хто з доступом для читання до репозиторію зможе завантажити зображення та перевірити вихідний код. Для отримання додаткової інформації дивіться:
SA
Якщо не вказано, за замовчуванням до Cloud Function буде прикріплено Обліковий запис служби за замовчуванням App Engine з правами редактора на проект.
Triggers, URL & Authentication
Коли створюється Cloud Function, потрібно вказати тригер. Один з поширених - HTTPS, це створить URL, за яким функцію можна буде викликати через веб-браузер.
Інші тригери - pub/sub, Storage, Filestore...
Формат URL - https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>
Коли використовується тригер HTTPS, також вказується, чи потрібно викликачеві мати авторизацію IAM для виклику функції або чи може її викликати будь-хто:
.png)
Inside the Cloud Function
Код завантажується всередині папки /workspace
з тими ж іменами файлів, що й у Cloud Function, і виконується з користувачем www-data
.
Диск не змонтовано як тільки для читання.
Enumeration
# List functions
gcloud functions list
gcloud functions describe <func_name> # Check triggers to see how is this function invoked
gcloud functions get-iam-policy <func_name>
# Get logs of previous runs. By default, limits to 10 lines
gcloud functions logs read <func_name> --limit [NUMBER]
# Call a function
curl https://<region>-<project>.cloudfunctions.net/<func_name>
gcloud functions call <func_name> --data='{"message": "Hello World!"}'
# If you know the name of projects you could try to BF cloud functions names
# Get events that could be used to trigger a cloud function
gcloud functions event-types list
# Access function with authentication
curl -X POST https://<region>-<project>.cloudfunctions.net/<func_name> \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" \
-d '{}'
Підвищення Привілеїв
На наступній сторінці ви можете перевірити, як зловживати дозволами функцій хмари для підвищення привілеїв:
Неавтентифікований Доступ
GCP - Cloud Functions Unauthenticated Enum
Після Експлуатації
GCP - Cloud Functions Post Exploitation
Постійність
GCP - Cloud Functions Persistence
Посилання
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.