GCP - local privilege escalation ssh pivoting
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
u ovom scenariju pretpostavićemo da ste kompromitovali neprivilegovani nalog unutar VM u Compute Engine projektu.
Neverovatno, GPC permissions compute engine-a koji ste kompromitovali mogu vam pomoći da eskalirate privilegije lokalno unutar mašine. Čak i ako to neće uvek biti naročito korisno u cloud okruženju, dobro je znati da je moguće.
Pročitaj skripte
Compute Instances verovatno postoje da bi izvršavale neke skripte kako bi obavile akcije koristeći svoje service accounts.
Pošto je IAM veoma granularan, nalog može imati read/write privilegije nad resursom ali bez list privilegija.
Sjajan hipotetički primer za ovo je Compute Instance koja ima dozvolu da čita/piše bekape u storage bucket pod nazivom instance82736-long-term-xyz-archive-0332893.
Pokretanje gsutil ls iz komandne linije ne vraća ništa, jer service account nema storage.buckets.list IAM permission. Međutim, ako pokrenete gsutil ls gs://instance82736-long-term-xyz-archive-0332893 možda ćete naći kompletan backup fajl sistema, što vam daje pristup u običnom tekstu podacima do kojih vaš lokalni Linux nalog nema pristup.
Možda ćete uspeti da pronađete ime ovog bucket-a unutar neke skripte (u bash-u, Python-u, Ruby-ju…).
Custom Metadata
Administratori mogu dodati custom metadata na instance i project level. Ovo je jednostavan način da se arbitrarni key/value parovi proslede u instancu, i često se koristi za environment variables i startup/shutdown skripte.
Štaviše, moguće je dodati userdata, što je skripta koja će se izvršavati svaki put kada se mašina pokrene ili restartuje i koja se takođe može pristupiti sa metadata endpoint-a.
Za više informacija pogledajte:
Zloupotreba IAM permissions
Većina sledećih predloženih permissions je dodeljena default Compute SA, jedini problem je što default access scope sprečava SA da ih koristi. Međutim, ako je omogućen cloud-platform scope ili samo compute scope, bićete u mogućnosti da ih zloupotrebite.
Proverite sledeće permissions:
- compute.instances.osLogin
- compute.instances.osAdminLogin
- compute.projects.setCommonInstanceMetadata
- compute.instances.setMetadata
- compute.instances.setIamPolicy
Pretraži Keys u fajl sistemu
Proverite da li su se drugi korisnici prijavljivali u gcloud unutar mašine i ostavili svoje kredencijale u fajl sistemu:
Pretraži gcloud kredencijale u fajl sistemu
``` sudo find / -name "gcloud" ```Ovo su najzanimljiviji fajlovi:
~/.config/gcloud/credentials.db~/.config/gcloud/legacy_credentials/[ACCOUNT]/adc.json~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto~/.credentials.json
Više regularnih izraza za API ključeve
Grep obrasci za GCP credentials i keys
```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>
## Izvori
- [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]
> Učite i vežbajte AWS Hacking:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Učite i vežbajte GCP Hacking: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Učite i vežbajte Azure Hacking: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Podržite HackTricks</summary>
>
> - Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
> - **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
>
> </details>
HackTricks Cloud

