GCP - Sourcerepos Privesc

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

Source Repositories

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

GCP - Source Repositories Enum

source.repos.get

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

Клонувати репозиторій ```bash gcloud source repos clone --project= ```

source.repos.update

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

  • Owner
  • Editor
  • Source Repository Administrator (roles/source.admin)
  • Source Repository Writer (roles/source.writer)

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

source.repos.setIamPolicy

Маючи цей дозвіл, зловмисник може призначити собі попередні дозволи.

Secret access

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

GCP - Secretmanager Privesc

Add SSH keys

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

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

Клонувати репозиторій через SSH ```bash git clone ssh://username@domain.com@source.developers.google.com:2022/p//r/ ```

А потім використовувати git команди як зазвичай.

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

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

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

Це викличе Oauth authorization prompt для надання доступу до Google Cloud Development. Тому вам знадобляться або credentials of the user, або відкрита сесія в браузері.

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

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

source.repos.updateProjectConfig

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

Disable pushblock and modify pub/sub configuration ```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