GCP - Sourcerepos Privesc
Джерела репозиторіїв
Для отримання додаткової інформації про джерела репозиторіїв перегляньте:
source.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
З цим дозволом зловмисник може надати собі попередні дозволи.
Доступ до секретів
Якщо зловмисник має доступ до секретів, де зберігаються токени, він зможе їх вкрасти. Для отримання додаткової інформації про те, як отримати доступ до секрету, перегляньте:
Додати SSH ключі
Можливо додати 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.repos.updateProjectConfig
З цим дозволом можливо вимкнути стандартний захист Source Repositories, щоб не завантажувати код, що містить приватні ключі:
Ви також можете налаштувати іншу тему pub/sub або навіть повністю її вимкнути:
Last updated