GCP - Cloudbuild Privesc

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

cloudbuild

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

pageGCP - Cloud Build Enum

cloudbuild.builds.create

З цим дозволом ви можете надіслати збірку хмари. У машині cloudbuild за замовчуванням буде знаходитися токен облікового запису служби cloudbuild: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com. Однак ви можете вказати будь-який обліковий запис служби всередині проекту в конфігурації cloudbuild. Отже, ви можете просто зробити так, щоб машина витікала на ваш сервер токен або отримати обернену оболонку всередині неї і отримати токен (файл, що містить токен, може змінитися).

Ви можете знайти початковий скрипт вразливості тут на GitHub (але місце, звідки він бере токен, не працювало для мене). Тому перевірте скрипт для автоматизації створення, використання та очищення вразливого середовища тут та скрипт Python для отримання оберненої оболонки всередині машини cloudbuild та вкрадіть його тут (у коді ви можете знайти, як вказати інші облікові записи служби).

Для більш детального пояснення відвідайте https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/

cloudbuild.builds.update

Потенційно з цим дозволом ви зможете оновлювати збірку хмари та просто красти токен облікового запису служби так, як це було зроблено з попереднім дозволом (але, на жаль, на момент написання цього я не зміг знайти способу викликати цей API).

TODO

cloudbuild.repositories.accessReadToken

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

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{}' \
"https://cloudbuild.googleapis.com/v2/projects/<PROJECT_ID>/locations/<LOCATION>/connections/<CONN_ID>/repositories/<repo-id>:accessReadToken"

cloudbuild.repositories.accessReadWriteToken

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

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{}' \
"https://cloudbuild.googleapis.com/v2/projects/<PROJECT_ID>/locations/<LOCATION>/connections/<CONN_ID>/repositories/<repo-id>:accessReadWriteToken"
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated