GCP - local privilege escalation ssh pivoting

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Bu senaryoda, bir Compute Engine projesindeki bir VM içinde ayrıcalığı olmayan bir hesabın ele geçirildiğini varsayacağız.

Şaşırtıcı bir şekilde, ele geçirdiğiniz Compute Engine'in GPC izinleri, yerel olarak ayrıcalıkları yükseltmenize yardımcı olabilir. Bulut ortamında her zaman çok yardımcı olmasa da, mümkün olduğunu bilmek iyi bir şeydir.

Betikleri okuyun

Compute Örnekleri, hizmet hesaplarıyla bazı işlemleri gerçekleştirmek için bazı betikleri çalıştırmak üzere orada olabilir.

IAM çok ayrıntılı olduğu için, bir hesap bir kaynağın üzerinde okuma/yazma ayrıcalıklarına sahip olabilir, ancak listeleme ayrıcalıklarına sahip olmayabilir.

Bunun harika bir varsayımsal örneği, instance82736-long-term-xyz-archive-0332893 adlı bir depolama kovasına yedekleri okuma/yazma izni olan bir Compute Örneğidir.

Komut satırından gsutil ls çalıştırıldığında, hizmet hesabının storage.buckets.list IAM iznine sahip olmadığı için hiçbir şey döndürmez. Ancak, gsutil ls gs://instance82736-long-term-xyz-archive-0332893 komutunu çalıştırırsanız, tam bir dosya sistemi yedeği bulabilir ve yerel Linux hesabınızın erişim sağlayamadığı verilere açık metin erişimi elde edebilirsiniz.

Bu kovayı bir betikte (bash, Python, Ruby...) bulabilirsiniz.

Özel Meta Veri

Yöneticiler, örnek ve proje düzeyinde özel meta veri ekleyebilir. Bu, sadece bir örneğe key/değer çiftlerini geçirmenin bir yoludur ve genellikle ortam değişkenleri ve başlatma/kapatma betikleri için kullanılır.

Ayrıca, her seferinde çalıştırılacak bir betik olan userdata eklemek de mümkündür ve bu betik meta veri uç noktasından da erişilebilir.

Daha fazla bilgi için kontrol edin:

IAM izinlerini kötüye kullanma

Aşağıdaki önerilen izinlerin çoğu, varsayılan Compute SA'ya verilir, tek sorun varsayılan erişim kapsamının bunları kullanmasını engellemesidir. Ancak, cloud-platform kapsamı etkinleştirilmiş veya sadece compute kapsamı etkinleştirilmişse, bunları kötüye kullanabilirsiniz.

Aşağıdaki izinlere bakın:

Dosya sisteminde Anahtarları Arayın

Diğer kullanıcıların kutunun içinde gcloud'a giriş yapmış ve kimlik bilgilerini dosya sistemine bırakmış olup olmadığını kontrol edin:

sudo find / -name "gcloud"

İşte en ilginç dosyalar:

  • ~/.config/gcloud/credentials.db

  • ~/.config/gcloud/legacy_credentials/[HESAP]/adc.json

  • ~/.config/gcloud/legacy_credentials/[HESAP]/.boto

  • ~/.credentials.json

Daha Fazla API Anahtarı regexleri

TARGET_DIR="/path/to/whatever"

# Service account keys
grep -Pzr "(?s){[^{}]*?service_account[^{}]*?private_key.*?}" \
"$TARGET_DIR"

# Legacy GCP creds
grep -Pzr "(?s){[^{}]*?client_id[^{}]*?client_secret.*?}" \
"$TARGET_DIR"

# Google API keys
grep -Pr "AIza[a-zA-Z0-9\\-_]{35}" \
"$TARGET_DIR"

# Google OAuth tokens
grep -Pr "ya29\.[a-zA-Z0-9_-]{100,200}" \
"$TARGET_DIR"

# Generic SSH keys
grep -Pzr "(?s)-----BEGIN[ A-Z]*?PRIVATE KEY[a-zA-Z0-9/\+=\n-]*?END[ A-Z]*?PRIVATE KEY-----" \
"$TARGET_DIR"

# Signed storage URLs
grep -Pir "storage.googleapis.com.*?Goog-Signature=[a-f0-9]+" \
"$TARGET_DIR"

# Signed policy documents in HTML
grep -Pzr '(?s)<form action.*?googleapis.com.*?name="signature" value=".*?">' \
"$TARGET_DIR"

Referanslar

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

HackTricks'i desteklemenin diğer yolları:

Last updated