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
- 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.
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:
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:
- compute.instances.osLogin
- compute.instances.osAdminLogin
- compute.projects.setCommonInstanceMetadata
- compute.instances.setMetadata
- compute.instances.setIamPolicy
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>
HackTricks Cloud

