GCP - local privilege escalation ssh pivoting
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
dans ce scĂ©nario nous allons supposer que vous avez compromis un compte non privilĂ©giĂ© Ă lâintĂ©rieur dâune VM dans un projet Compute Engine.
Ătonnamment, les permissions GCP de la Compute Engine que vous avez compromise peuvent vous aider Ă escalate privileges locally inside a machine. MĂȘme si cela nâest pas toujours trĂšs utile dans un environnement cloud, câest bon de savoir que câest possible.
Lire les scripts
Compute Instances sont probablement lĂ pour exĂ©cuter certains scripts afin dâeffectuer des actions avec leurs service accounts.
Comme IAM devient granulaire, un compte peut avoir des privilĂšges read/write sur une ressource mais no list privileges.
Un excellent exemple hypothétique est une Compute Instance qui a la permission de lire/écrire des backups dans un storage bucket appelé instance82736-long-term-xyz-archive-0332893.
ExĂ©cuter gsutil ls depuis la ligne de commande ne retourne rien, car le service account nâa pas la permission IAM storage.buckets.list. Cependant, si vous lancez gsutil ls gs://instance82736-long-term-xyz-archive-0332893 vous pouvez trouver une sauvegarde complĂšte du systĂšme de fichiers, vous donnant un accĂšs en clair Ă des donnĂ©es que votre compte Linux local nâa pas.
Vous pouvez retrouver ce nom de bucket Ă lâintĂ©rieur dâun script (bash, Python, RubyâŠ).
Custom Metadata
Les administrateurs peuvent ajouter custom metadata au niveau de lâinstance et du project level. Câest simplement un moyen de transmettre des paires clĂ©/valeur arbitraires dans une instance, et câest couramment utilisĂ© pour des variables dâenvironnement et des scripts de dĂ©marrage/arrĂȘt.
De plus, il est possible dâajouter du userdata, qui est un script qui sera exĂ©cutĂ© Ă chaque dĂ©marrage de la machine et qui peut aussi ĂȘtre accessible depuis le metadata endpoint.
Pour plus dâinfos check:
Abusing IAM permissions
La plupart des permissions suivantes sont donnĂ©es au Compute SA par dĂ©faut, le seul problĂšme est que le default access scope empĂȘche le SA de les utiliser. Cependant, si le cloud-platform scope est activĂ© ou si seul le compute scope est activĂ©, vous serez en mesure de les abuser.
Check the following permissions:
- compute.instances.osLogin
- compute.instances.osAdminLogin
- compute.projects.setCommonInstanceMetadata
- compute.instances.setMetadata
- compute.instances.setIamPolicy
Rechercher des clés dans le systÚme de fichiers
VĂ©rifiez si dâautres utilisateurs se sont connectĂ©s avec gcloud sur la machine et ont laissĂ© leurs identifiants dans le systĂšme de fichiers :
Rechercher les identifiants gcloud dans le systĂšme de fichiers
``` sudo find / -name "gcloud" ```Voici les fichiers les plus intéressants :
~/.config/gcloud/credentials.db~/.config/gcloud/legacy_credentials/[ACCOUNT]/adc.json~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto~/.credentials.json
Autres regex pour les clés API
Patrons grep pour les identifiants et clés GCP
```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>
## Références
- [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]
> Apprenez & pratiquez AWS Hacking:<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;">\
> Apprenez & pratiquez GCP Hacking: <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;">\
> Apprenez & pratiquez Az Hacking: <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>Soutenez HackTricks</summary>
>
> - Consultez les [**subscription plans**](https://github.com/sponsors/carlospolop)!
> - **Rejoignez le** đŹ [**Discord group**](https://discord.gg/hRep4RUj7f) ou le [**telegram group**](https://t.me/peass) ou **suivez-nous** sur **Twitter** đŠ [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Partagez des hacking tricks en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
>
> </details>
HackTricks Cloud

