GCP - Cloud Run Enum
Reading time: 5 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 Run
Cloud Run - це безсерверна керована обчислювальна платформа, яка дозволяє вам запускати контейнери безпосередньо на масштабованій інфраструктурі Google.
Ви можете запустити свій контейнер або, якщо ви використовуєте Go, Node.js, Python, Java, .NET Core або Ruby, ви можете скористатися опцією source-based deployment, яка будує контейнер для вас.
Google створив Cloud Run, щоб добре працювати разом з іншими сервісами на Google Cloud, тому ви можете створювати повнофункціональні додатки.
Services and jobs
На Cloud Run ваш код може працювати безперервно як сервіс або як робота. Як сервіси, так і роботи працюють в одному середовищі і можуть використовувати ті ж інтеграції з іншими сервісами на Google Cloud.
- Cloud Run services. Використовується для запуску коду, який відповідає на веб-запити або події.
- Cloud Run jobs. Використовується для запуску коду, який виконує роботу (роботу) і завершується, коли робота закінчена.
Cloud Run Service
Google Cloud Run - це ще одна безсерверна пропозиція, де ви також можете шукати змінні середовища. Cloud Run створює невеликий веб-сервер, який за замовчуванням працює на порту 8080 всередині контейнера, який чекає на HTTP GET запит. Коли запит отримано, виконується робота, а журнал роботи виводиться через HTTP-відповідь.
Relevant details
- За замовчуванням доступ до веб-сервера є публічним, але його також можна обмежити внутрішнім трафіком (VPC...)
Більше того, автентифікація для контакту з веб-сервером може бути дозволена всім або вимагати автентифікацію через IAM. - За замовчуванням шифрування використовує керований Google ключ, але також можна вибрати CMEK (Customer Managed Encryption Key) з KMS.
- За замовчуванням використовується обліковий запис служби, який є за замовчуванням для Compute Engine, який має доступ редактора до проекту і має обсяг
cloud-platform
. - Можливо визначити змінні середовища в відкритому тексті для виконання, а також монтувати хмарні секрети або додавати хмарні секрети до змінних середовища.
- Також можливо додавати з'єднання з Cloud SQL і монтувати файлову систему.
- URL-адреси розгорнуті сервіси схожі на
https://<svc-name>-<random>.a.run.app
- Служба Run може мати більше ніж 1 версію або ревізію, і розподіляти трафік між кількома ревізіями.
Enumeration
# List services
gcloud run services list
gcloud run services list --platform=managed
gcloud run services list --platform=gke
# Get info of a service
gcloud run services describe --region <region> <svc-name>
# Get info of all the services together
gcloud run services list --format=yaml
gcloud run services list --platform=managed --format=json
gcloud run services list --platform=gke --format=json
# Get policy
gcloud run services get-iam-policy --region <region> <svc-name>
# Get revisions
gcloud run revisions list --region <region>
gcloud run revisions describe --region <region> <revision>
# Get domains
gcloud run domain-mappings list
gcloud run domain-mappings describe <name>
# Attempt to trigger a job unauthenticated
curl <url>
# Attempt to trigger a job with your current gcloud authorization
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" <url>
Cloud Run Jobs
Cloud Run jobs є кращим варіантом для контейнерів, які виконуються до завершення і не обслуговують запити. Jobs не мають можливості обслуговувати запити або слухати на порту. Це означає, що на відміну від Cloud Run services, jobs не повинні включати веб-сервер. Натомість, контейнери jobs повинні завершуватися, коли вони закінчують свою роботу.
Enumeration
gcloud beta run jobs list
gcloud beta run jobs describe --region <region> <job-name>
gcloud beta run jobs get-iam-policy --region <region> <job-name>
Підвищення Привілеїв
На наступній сторінці ви можете перевірити, як зловживати дозволами cloud run для підвищення привілеїв:
Неавтентифікований Доступ
GCP - Cloud Run Unauthenticated Enum
Після Експлуатації
GCP - Cloud Run 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.