GCP - App Engine Enum
Reading time: 6 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.
Basic Information
Google Cloud Platform's (GCP) App Engine є надійною, безсерверною платформою, призначеною для розробки та хостингу веб-додатків у великому масштабі. Дизайн цієї платформи зосереджений на спрощенні процесу розробки та підвищенні керованості додатків. Основні функції та переваги App Engine GCP включають:
- Безсерверна архітектура: App Engine автоматично обробляє інфраструктуру, включаючи постачання серверів, конфігурацію та масштабування. Це дозволяє розробникам зосередитися на написанні коду, не турбуючись про апаратне забезпечення.
- Автоматичне масштабування: App Engine може автоматично масштабувати ваш додаток у відповідь на обсяг трафіку, який він отримує. Він масштабується вгору для обробки збільшеного трафіку та масштабується вниз, коли трафік зменшується, що допомагає оптимізувати витрати та продуктивність.
- Підтримка мов програмування та середовищ виконання: Підтримує популярні мови програмування, такі як Java, Python, Node.js, Go, Ruby, PHP та .NET. Ви можете запускати свої додатки в стандартному або гнучкому середовищі. Стандартне середовище є більш обмеженим, але високо оптимізованим для конкретних мов, тоді як гнучке середовище дозволяє більше налаштувань.
- Інтегровані сервіси: App Engine інтегрується з багатьма іншими сервісами GCP, такими як Cloud SQL, Cloud Storage, Cloud Datastore та інші. Ця інтеграція спрощує архітектуру хмарних додатків.
- Версійність та розподіл трафіку: Ви можете легко розгортати кілька версій свого додатку, а потім розподілити трафік між ними для A/B тестування або поступового впровадження.
- Інсайти про додаток: App Engine надає вбудовані сервіси, такі як ведення журналів, автентифікація користувачів та набір інструментів для розробників для моніторингу та управління додатками.
- Безпека: Він пропонує вбудовані функції безпеки, такі як версійність додатків, SSL/TLS сертифікати для безпечних з'єднань та управління ідентифікацією та доступом.
Firewall
Простий firewall може бути налаштований для екземплярів, що виконують додатки, з наступними опціями:
.png)
SA
За замовчуванням обліковий запис служби, що використовується цими додатками, є <proj-name>@appspot.gserviceaccount.com
, який має роль Редактора над проектом, а SAs всередині екземпляра APP Engine працюють з обсягом cloud-platform (серед інших).
Storage
Вихідний код та метадані автоматично зберігаються в кошиках з назвами, такими як <proj-id>.appspot.com
та staging.<proj-id>.appspot.com
та <country>.<proj-id>.appspot.com
Кожен файл додатку зберігається з sha1 вмісту як ім'я файлу:
.png)
Всередині ae
папки з staging.<proj-id>.appspot.com
, існує одна папка на версію з файлами вихідного коду та файлом manifest.json
, який описує компоненти додатку:
{"requirements.txt":{"sourceUrl":"https://storage.googleapis.com/staging.onboarding-host-98efbf97812843.appspot.com/a270eedcbe2672c841251022b7105d340129d108","sha1Sum":"a270eedc_be2672c8_41251022_b7105d34_0129d108"},"main_test.py":{"sourceUrl":"https://storage.googleapis.com/staging.onboarding-host-98efbf97812843.appspot.com/0ca32fd70c953af94d02d8a36679153881943f32","sha1Sum":"0ca32fd7_0c953af9_4d02d8a ...
Контейнери
Веб-додаток в кінцевому підсумку буде виконуватись всередині контейнера і Code Build використовується для створення контейнера.
URL та Регіони
За замовчуванням веб-сторінка буде доступна за URL <project-uniq-name>.appspot.com
, хоча URL старіших версій буде трохи іншим, наприклад https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com
(зверніть увагу на початковий часовий штамп).
Може здатися, що можливо розгорнути лише 1 веб-додаток App Engine на регіон, але можна вказати service: <servicename>
у app.yml
і створити нову службу (новий веб). Формат URL для цього нового вебу буде <servicename>-dot-<project-uniq-name>.appspot.com
.
Перерахування
caution
Кожного разу, коли ви завантажуєте новий код до Додатку, створюється нова версія. Всі версії зберігаються і у них навіть є URL для доступу до них. Тому модифікація коду старої версії може бути чудовою технікою збереження.
Як і з Cloud Functions, існує ймовірність, що додаток покладається на секрети, які доступні під час виконання через змінні середовища. Ці змінні зберігаються у файлі app.yaml
, до якого можна отримати доступ наступним чином:
# List the apps
gcloud app services list
gcloud app services describe <app-name>
# Access via browser to the specified app
gcloud app services browse <app-name>
# Get App versions
gcloud app versions list
# Get all the info of the app and version, included specific verion URL and the env
gcloud app versions describe -s <app-name> <version-id>
# Logs
gcloud app logs tail -s <app-name>
# Instances
## This is only valid if a flexible environment is used and not a standard one
gcloud app instances list
gcloud app instances describe -s <app-name> --version <version-id> <ID>
## Connect to the instance via ssh
gcloud app instances ssh --service <app-name> --version <version-id> <ID>
# Firewalls
gcloud app firewall-rules list
gcloud app firewall-rules describe <num_fw>
# Get domains
gcloud app domain-mappings list
gcloud app domain-mappings describe <name>
# SSl certificates
gcloud app ssl-certificates list
gcloud app ssl-certificates describe <name>
Підвищення Привілеїв
Неавтентифікований Перелік
GCP - App Engine Unauthenticated Enum
Після Експлуатації
GCP - App Engine Post Exploitation
Постійність
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.