GCP - Compute Privesc
Compute
Для отримання додаткової інформації про Compute та VPC (мережу) в GCP перевірте:
GCP - Compute EnumЗверніть увагу, що для виконання всіх атак підвищення привілеїв, які вимагають зміни метаданих екземпляра (наприклад, додавання нових користувачів та SSH ключів), необхідно, щоб у вас були права actAs
на SA, прикріплену до екземпляра, навіть якщо SA вже прикріплена!
compute.projects.setCommonInstanceMetadata
compute.projects.setCommonInstanceMetadata
З цим дозволом ви можете модифікувати інформацію про метадані екземпляра та змінювати авторизовані ключі користувача, або створити нового користувача з правами sudo. Таким чином, ви зможете виконати SSH в будь-який екземпляр VM і вкрасти GCP Service Account, з яким працює екземпляр. Обмеження:
Зверніть увагу, що GCP Service Accounts, які працюють в екземплярах VM за замовчуванням, мають дуже обмежений обсяг
Вам потрібно буде мати можливість зв'язатися з SSH сервером для входу
Для отримання додаткової інформації про те, як експлуатувати цей дозвіл, перевірте:
GCP - Add Custom SSH MetadataВи також можете виконати цю атаку, додавши новий стартовий скрипт і перезавантаживши екземпляр:
compute.instances.setMetadata
compute.instances.setMetadata
Ця дозволяє надає ті ж привілеї, що й попереднє дозволу, але для конкретних екземплярів, а не для всього проекту. Ті ж експлойти та обмеження, що й для попереднього розділу, застосовуються.
compute.instances.setIamPolicy
compute.instances.setIamPolicy
Цей вид дозволу дозволить вам наділити себе роллю з попередніми дозволами та ескалувати привілеї, зловживаючи ними.
compute.instances.osLogin
compute.instances.osLogin
Якщо OSLogin увімкнено в екземплярі, з цим дозволом ви можете просто виконати gcloud compute ssh [INSTANCE]
та підключитися до екземпляра. Ви не матимете root привілеїв всередині екземпляра.
Щоб успішно увійти з цим дозволом всередині VM екземпляра, вам потрібно мати дозвіл iam.serviceAccounts.actAs
на SA, прикріплену до VM.
compute.instances.osAdminLogin
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
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
Якщо у вас є osconfig.patchDeployments.create
або osconfig.patchJobs.exec
дозволи, ви можете створити роботу з патчами або розгортання. Це дозволить вам переміщатися в середовищі та отримати виконання коду на всіх обчислювальних екземплярах у проекті.
Зверніть увагу, що на даний момент вам не потрібен дозвіл actAs
на SA, прикріплену до екземпляра.
Якщо ви хочете вручну експлуатувати це, вам потрібно створити або роботу з патчами або розгортання. Для роботи з патчами виконайте:
Щоб розгорнути патч-розгортання:
The tool patchy міг бути використаний у минулому для експлуатації цієї неконфігурації (але зараз він не працює).
Зловмисник також може зловживати цим для постійності.
compute.machineImages.setIamPolicy
compute.machineImages.setIamPolicy
Надайте собі додаткові дозволи на образи обчислень.
compute.snapshots.setIamPolicy
compute.snapshots.setIamPolicy
Надайте собі додаткові дозволи на знімок диска.
compute.disks.setIamPolicy
compute.disks.setIamPolicy
Надайте собі додаткові дозволи на диск.
Обхід доступу до обсягів
Слідуючи за цим посиланням, ви знайдете деякі ідеї для спроби обійти доступ до обсягів.
Локальне підвищення привілеїв у GCP Compute інстансі
GCP - local privilege escalation ssh pivotingПосилання
Last updated