GCP - local privilege escalation ssh pivoting

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

Bu senaryoda, bir Compute Engine projesindeki bir VM içinde ayrıcalıklı olmayan bir hesabı ele geçirdiğinizi varsayacağız.

İlginç şekilde, ele geçirdiğiniz Compute Engine’in GPC izinleri size escalate privileges locally inside a machine imkanı verebilir. Bulut ortamında her zaman çok yardımcı olmasa da, bunun mümkün olduğunu bilmek iyidir.

Script’leri İnceleyin

Compute Instances muhtemelen servis hesaplarıyla işlem yapmak için bazı script’leri çalıştırmak amacıyla kullanılır.

IAM çok ayrıntılı olduğundan, bir hesabın bir kaynak üzerinde read/write ayrıcalıkları olmasına rağmen no list privileges olmayabilir.

Bunun iyi bir varsayımsal örneği, instance82736-long-term-xyz-archive-0332893 adlı bir storage bucket’a yedekleri read/write etme iznine sahip bir Compute Instance’tır.

Komut satırından gsutil ls çalıştırmak hiçbir şey döndürmez, çünkü servis hesabı storage.buckets.list IAM iznine sahip değildir. Ancak gsutil ls gs://instance82736-long-term-xyz-archive-0332893 çalıştırırsanız tam bir dosya sistemi yedeği bulabilir ve bu, yerel Linux hesabınızın sahip olmadığı veriye düz metin erişimi sağlar.

Bu bucket adını bir script’in içinde (bash, Python, Ruby…) bulabilirsiniz.

Özel Metadata

Yöneticiler custom metadata ekleyebilir instance ve project level düzeyinde. Bu, bir instance’a arbitrary key/value pairs geçirmek için basit bir yoldur ve genellikle çevresel değişkenler ile startup/shutdown script’leri için kullanılır.

Ayrıca userdata eklemek mümkündür; bu, makine her başlatıldığında veya yeniden başlatıldığında çalıştırılacak bir script’tir ve metadata endpoint’inden de erişilebilir.

Daha fazla bilgi için bakınız:

Cloud SSRF - HackTricks

Abusing IAM permissions

Aşağıdaki izinlerin çoğu varsayılan Compute SA’ya verilir; tek sorun, varsayılan erişim scope’u SA’nın bunları kullanmasını engellemesidir. Ancak cloud-platform scope etkinse veya sadece compute scope etkinse, bunları kötüye kullanabilirsiniz.

Aşağıdaki izinleri kontrol edin:

Dosya sisteminde Anahtarları Ara

Diğer kullanıcıların makinede gcloud ile oturum açıp kimlik bilgilerini dosya sisteminde bırakıp bırakmadığını kontrol edin:

Dosya sisteminde gcloud kimlik bilgilerini ara ``` sudo find / -name "gcloud" ```

Bunlar en ilginç dosyalar:

  • ~/.config/gcloud/credentials.db
  • ~/.config/gcloud/legacy_credentials/[ACCOUNT]/adc.json
  • ~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto
  • ~/.credentials.json

Daha fazla API Keys için regexler

Grep patternleri (GCP credentials ve keys için) ```bash 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”

</details>

## Kaynaklar

- [https://about.gitlab.com/blog/2020/02/12/plundering-gcp-escalating-privileges-in-google-cloud-platform/](https://about.gitlab.com/blog/2020/02/12/plundering-gcp-escalating-privileges-in-google-cloud-platform/)

> [!TIP]
> AWS Hacking'i öğrenin ve pratik yapın:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://hacktricks-training.com/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> GCP Hacking'i öğrenin ve pratik yapın: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://hacktricks-training.com/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Az Hacking'i öğrenin ve pratik yapın: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://hacktricks-training.com/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>HackTricks'i Destekleyin</summary>
>
> - [**Abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
> - **Katılın** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) veya [**telegram group**](https://t.me/peass) veya **Twitter**'da bizi **takip edin** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **PR göndererek hacking tricks paylaşın:** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
>
> </details>