GCP - Cloud Functions Enum
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
Будь-який користувач з правами на читання бакету, де зберігається Cloud Function, може читати виконуваний код.
Artifact Registry
Якщо cloud function налаштована так, що виконуваний Docker контейнер зберігається в Artifact Registry репозиторії всередині проекту, будь-хто з доступом на читання до репозиторію зможе завантажити образ і перевірити вихідний код. Для отримання додаткової інформації перевірте:
GCP - Artifact Registry EnumSA
Якщо не вказано інше, за замовчуванням до Cloud Function буде прикріплено App Engine Default Service Account з Editor permissions над проектом.
Triggers, URL & Authentication
Коли створюється Cloud Function, необхідно вказати тригер. Один з поширених - HTTPS, це створить URL, де функцію можна викликати через веб-браузер. Інші тригери включають pub/sub, Storage, Filestore...
Формат URL https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>
Коли використовується HTTPS тригер, також вказується, чи потрібна авторизація IAM для виклику функції, чи будь-хто може її викликати:
Inside the Cloud Function
Код завантажується всередину папки /workspace
з тими ж іменами файлів, що й у Cloud Function, і виконується користувачем www-data
.
Диск не монтується як тільки для читання.
Enumeration
Підвищення Привілеїв
На наступній сторінці ви можете дізнатися, як зловживати дозволами cloud function для підвищення привілеїв:
GCP - Cloudfunctions PrivescНеаутентифікований Доступ
GCP - Cloud Functions Unauthenticated EnumПостексплуатація
GCP - Cloud Functions Post ExploitationЗбереження
GCP - Cloud Functions PersistenceПосилання
Last updated