GCP - Sourcerepos Privesc

Support HackTricks

Джерела репозиторіїв

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

source.repos.get

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

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

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

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

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

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

Можливо додати ssh ключі до проекту репозиторію джерел у веб-консолі. Це робить 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>

А потім використовуйте команди 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, щоб не завантажувати код, що містить приватні ключі:

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
Support HackTricks

Last updated