GCP - Sourcerepos Privesc

Підтримайте HackTricks

Source Repositories

Для отримання додаткової інформації про Source Repositories перевірте:

GCP - Source Repositories Enum

source.repos.get

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

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

source.repos.update

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

  • Owner

  • Editor

  • Source Repository Administrator (roles/source.admin)

  • Source Repository Writer (roles/source.writer)

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

source.repos.setIamPolicy

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

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

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

GCP - Secretmanager Privesc

Додавання SSH ключів

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

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

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

And then use git commands are per usual.

Manual Credentials

It's possible to create manual credentials to access the Source Repositories:

Clicking on the first link it will direct you to https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3

Which will prompt an Oauth authorization prompt to give access to Google Cloud Development. So you will need either the credentials of the user or an open session in the browser for this.

This will send you to a page with a bash script to execute and configure a git cookie in $HOME/.gitcookies

Executing the script you can then use git clone, push... and it will work.

source.repos.updateProjectConfig

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

gcloud source project-configs update --disable-pushblock

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

gcloud source project-configs update --remove-topic=REMOVE_TOPIC
gcloud source project-configs update --remove-topic=UPDATE_TOPIC
Підтримайте HackTricks

Last updated