GCP - Sourcerepos Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Для отримання додаткової інформації про джерельні репозиторії перегляньте:
GCP - Source Repositories Enumsource.repos.get
З цим дозволом можливо завантажити репозиторій локально:
source.repos.update
Принципал з цим дозволом зможе писати код всередині репозиторію, клонованого за допомогою gcloud source repos clone <repo>
. Але зверніть увагу, що цей дозвіл не може бути прикріплений до користувацьких ролей, тому його потрібно надати через попередньо визначену роль, таку як:
Власник
Редактор
Адміністратор репозиторію джерел (roles/source.admin
)
Автор репозиторію джерел (roles/source.writer
)
Щоб написати, просто виконайте звичайний git push
.
source.repos.setIamPolicy
З цим дозволом зловмисник може надати собі попередні дозволи.
Якщо зловмисник має доступ до секретів, де зберігаються токени, він зможе їх вкрасти. Для отримання додаткової інформації про те, як отримати доступ до секрету, перегляньте:
GCP - Secretmanager PrivescМожливо додати ssh ключі до проекту репозиторію джерел у веб-консолі. Це робить POST запит до /v1/sshKeys:add
і може бути налаштовано за адресою https://source.cloud.google.com/user/ssh_keys
Як тільки ваш ssh ключ налаштовано, ви можете отримати доступ до репозиторію за допомогою:
А потім використовуйте 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, щоб не завантажувати код, що містить приватні ключі:
Ви також можете налаштувати іншу тему pub/sub або навіть повністю її вимкнути:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)