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