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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Source Repositories
Для отримання додаткової інформації про Source Repositories дивіться:
GCP - Source Repositories Enum
source.repos.get
З цим дозволом можна завантажити репозиторій локально:
Клонувати репозиторій
```bash gcloud source repos clonesource.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
Якщо зловмисник має доступ до секретів, де зберігаються токени, він зможе їх викрасти. Для додаткової інформації про те, як отримати доступ до секрету, див.:
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/А потім використовувати git команди як зазвичай.
Ручні облікові дані
Можна створити ручні облікові дані для доступу до Source Repositories:
.png)
Натискання на перше посилання перенаправить вас на 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
.png)
Виконавши скрипт, ви зможете використовувати 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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
HackTricks Cloud

