GCP - Cloud Functions Enum
Cloud Functions
Google Cloud Functions призначені для розміщення вашого коду, який виконується у відповідь на події, без необхідності управління операційною системою хоста. Крім того, ці функції підтримують зберігання змінних середовища, які може використовувати код.
Зберігання
Код Cloud Functions зберігається в GCP Storage. Тому будь-хто з доступом на читання до відра в GCP зможе читати код Cloud Functions. Код зберігається в відрі таким чином:
gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zip
наприклад:
gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip
Будь-який користувач з правами на запис до відра, де зберігається Cloud Function, може перезаписати виконуваний код.
SA
Якщо не вказано інше, за замовчуванням до Cloud Function буде додано Обліковий запис служби за замовчуванням App Engine з правами редактора над проектом.
Тригери, URL та Аутентифікація
При створенні Cloud Function потрібно вказати тригер. Одним зі спільних є HTTPS, це створить URL, за допомогою якого можна викликати функцію через веб-переглядач. Інші тригери - pub/sub, Storage, Filestore...
Формат URL - https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>
Коли використовується тригер HTTPS, також вказується, чи потрібно мати авторизацію IAM викликати функцію або чи кожен може просто її викликати:
У Cloud Function
Код завантажується всередину папки /workspace
з тими ж назвами файлів, що й у Cloud Function, і виконується від імені користувача www-data
.
Диск не монтується як тільки для читання.
Енумерація
Підвищення привілеїв
На наступній сторінці ви можете перевірити, як зловживати дозволами хмарних функцій для підвищення привілеїв:
pageGCP - Cloudfunctions PrivescНеаутентифікований доступ
pageGCP - Cloud Functions Unauthenticated EnumПісляексплуатаційна діяльність
pageGCP - Cloud Functions Post ExploitationПостійність
pageGCP - Cloud Functions PersistenceПосилання
Last updated