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

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

bash
# 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

bash
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 - Run Privesc

Неавтентифікований Доступ

GCP - Cloud Run Unauthenticated Enum

Після Експлуатації

GCP - Cloud Run Post Exploitation

Постійність

GCP - Cloud Run 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