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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Репозиторії джерел
Для отримання додаткової інформації про репозиторії джерел перегляньте:
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>
. Але зверніть увагу, що це дозволення не може бути прикріплене до користувацьких ролей, тому його потрібно надати через попередньо визначену роль, таку як:
- Власник
- Редактор
- Адміністратор репозиторію джерел (
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:
.png)
Натискаючи на перше посилання, ви перейдете на 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
.png)
Виконавши скрипт, ви зможете використовувати 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
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.