GCP - Compute 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)
Для отримання додаткової інформації про Compute та VPC (мережу) в GCP перевірте:
Зверніть увагу, що для виконання всіх атак підвищення привілеїв, які вимагають зміни метаданих екземпляра (наприклад, додавання нових користувачів та SSH ключів), необхідно, щоб у вас були права actAs
на SA, прикріплену до екземпляра, навіть якщо SA вже прикріплена!
compute.projects.setCommonInstanceMetadata
З цією дозволом ви можете модифікувати інформацію про метадані екземпляра та змінити авторизовані ключі користувача, або створити нового користувача з правами sudo. Таким чином, ви зможете виконати SSH в будь-який екземпляр VM і вкрасти GCP Service Account, з яким працює екземпляр. Обмеження:
Зверніть увагу, що GCP Service Accounts, які працюють в екземплярах VM, за замовчуванням мають дуже обмежений обсяг
Вам потрібно буде мати можливість зв'язатися з сервером SSH для входу
Для отримання додаткової інформації про те, як експлуатувати цей дозвіл, перевірте:
Ви також можете виконати цю атаку, додавши новий стартовий скрипт і перезавантаживши екземпляр:
compute.instances.setMetadata
Ця дозволяє надає ті ж привілеї, що й попереднє дозволу, але для конкретних інстансів, а не для всього проекту. Ті ж експлойти та обмеження, що й для попереднього розділу, застосовуються.
compute.instances.setIamPolicy
Цей тип дозволу дозволить вам наділити себе роллю з попередніми дозволами та ескалувати привілеї, зловживаючи ними.
compute.instances.osLogin
Якщо OSLogin увімкнено в інстансі, з цим дозволом ви можете просто виконати gcloud compute ssh [INSTANCE]
і підключитися до інстансу. Ви не матимете root привілеїв всередині інстансу.
Щоб успішно увійти з цим дозволом всередині VM інстансу, вам потрібно мати дозвіл iam.serviceAccounts.actAs
на SA, прикріплену до VM.
compute.instances.osAdminLogin
Якщо OSLogin увімкнено в інстансі, з цим дозволом ви можете просто виконати gcloud compute ssh [INSTANCE]
і підключитися до інстансу. Ви матимете root привілеї всередині інстансу.
Щоб успішно увійти з цим дозволом всередині VM інстансу, вам потрібно мати дозвіл iam.serviceAccounts.actAs
на SA, прикріплену до VM.
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
Можливо створити віртуальну машину з призначеним обліковим записом служби та вкрасти токен облікового запису служби, отримуючи доступ до метаданих для ескалації привілеїв до нього.
Скрипт експлойту для цього методу можна знайти тут.
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
Якщо у вас є osconfig.patchDeployments.create
або osconfig.patchJobs.exec
дозволи, ви можете створити роботу з патчами або розгортання. Це дозволить вам переміщатися в середовищі та отримати виконання коду на всіх обчислювальних інстансах у проекті.
Зверніть увагу, що на даний момент вам не потрібен дозвіл actAs
на SA, прикріплену до інстансу.
Якщо ви хочете вручну експлуатувати це, вам потрібно створити або роботу з патчами або розгортання. Для роботи з патчами виконайте:
Щоб розгорнути патч-розгортання:
The tool patchy міг бути використаний у минулому для експлуатації цієї неконфігурації (але зараз він не працює).
Зловмисник також може зловживати цим для постійності.
compute.machineImages.setIamPolicy
Надайте собі додаткові дозволи на образи обчислень.
compute.snapshots.setIamPolicy
Надайте собі додаткові дозволи на знімок диска.
compute.disks.setIamPolicy
Надайте собі додаткові дозволи на диск.
Слідуючи за цим посиланням, ви знайдете деякі ідеї для спроби обійти доступ до обсягів.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)