GCP - Sourcerepos Privesc

Reading time: 4 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

Репозиторії джерел

Для отримання додаткової інформації про репозиторії джерел перегляньте:

GCP - Source Repositories Enum

source.repos.get

З цим дозволом можна завантажити репозиторій локально:

bash
gcloud source repos clone <repo-name> --project=<project-uniq-name>

source.repos.update

Принципал з цим дозволом зможе писати код всередині репозиторію, скопійованого за допомогою gcloud source repos clone <repo>. Але зверніть увагу, що це дозволення не може бути прикріплене до користувацьких ролей, тому його потрібно надати через попередньо визначену роль, таку як:

  • Власник
  • Редактор
  • Адміністратор репозиторію джерел (roles/source.admin)
  • Автор репозиторію джерел (roles/source.writer)

Щоб написати, просто виконайте звичайний git push.

source.repos.setIamPolicy

З цим дозволом зловмисник може надати собі попередні дозволи.

Доступ до секретів

Якщо зловмисник має доступ до секретів, де зберігаються токени, він зможе їх вкрасти. Для отримання додаткової інформації про те, як отримати доступ до секрету, перевірте:

GCP - Secretmanager Privesc

Додати SSH ключі

Можливо додати ssh ключі до проекту репозиторію джерел у веб-консолі. Це робить POST запит до /v1/sshKeys:add і може бути налаштовано за адресою https://source.cloud.google.com/user/ssh_keys

Як тільки ваш ssh ключ налаштовано, ви можете отримати доступ до репозиторію за допомогою:

bash
git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>

І тоді використовуйте git команди, як зазвичай.

Ручні облікові дані

Можливо створити ручні облікові дані для доступу до Source Repositories:

Натискаючи на перше посилання, ви перейдете на https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3

Це викличе Oauth авторизаційний запит для надання доступу до Google Cloud Development. Тому вам знадобляться або облікові дані користувача, або відкрита сесія в браузері для цього.

Це перенаправить вас на сторінку з bash-скриптом для виконання та налаштування git cookie в $HOME/.gitcookies

Виконавши скрипт, ви зможете використовувати git clone, push... і це буде працювати.

source.repos.updateProjectConfig

З цим дозволом можливо вимкнути стандартний захист Source Repositories, щоб не завантажувати код, що містить приватні ключі:

bash
gcloud source project-configs update --disable-pushblock

Ви також можете налаштувати іншу тему pub/sub або навіть повністю її вимкнути:

bash
gcloud source project-configs update --remove-topic=REMOVE_TOPIC
gcloud source project-configs update --remove-topic=UPDATE_TOPIC

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