GCP - lokalna eskalacija privilegija ssh preusmeravanje

Reading time: 4 minutes

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

u ovom scenariju pretpostavljamo da ste kompromitovali nalog bez privilegija unutar VM-a u projektu Compute Engine.

Neverovatno, GCP dozvole Compute Engine-a koje ste kompromitovali mogu vam pomoći da escalirate privilegije lokalno unutar mašine. Čak i ako to neće uvek biti od velike pomoći u cloud okruženju, dobro je znati da je to moguće.

Pročitajte skripte

Compute Instances su verovatno tu da izvrše neke skripte za obavljanje radnji sa svojim servisnim nalozima.

Kako je IAM granularan, nalog može imati read/write privilegije nad resursom, ali nema privilegije za listanje.

Odličan hipotetički primer ovoga je Compute Instance koji ima dozvolu da čita/piše rezervne kopije u skladišni bucket nazvan instance82736-long-term-xyz-archive-0332893.

Pokretanje gsutil ls iz komandne linije ne vraća ništa, jer servisni nalog nema storage.buckets.list IAM dozvolu. Međutim, ako pokrenete gsutil ls gs://instance82736-long-term-xyz-archive-0332893, možete pronaći kompletnu rezervnu kopiju datotečnog sistema, dajući vam pristup podacima u čistom tekstu koji vaš lokalni Linux nalog nema.

Možda ćete moći da pronađete ovo ime bucketa unutar skripte (u bash-u, Python-u, Ruby-ju...).

Prilagođeni metapodaci

Administratori mogu dodati prilagođene metapodatke na instancu i nivo projekta. Ovo je jednostavno način da se proslede arbitrarni parovi ključ/vrednost u instancu, i obično se koristi za promenljive okruženja i skripte za pokretanje/gašenje.

Štaviše, moguće je dodati userdata, što je skripta koja će biti izvršena svaki put kada se mašina pokrene ili ponovo pokrene i koja može biti pristupna i sa krajnje tačke metapodataka.

Za više informacija pogledajte:

Cloud SSRF - HackTricks

Zloupotreba IAM dozvola

Većina sledećih predloženih dozvola je dodeljena podrazumevanom Compute SA, jedini problem je što podrazumevani pristupni opseg sprečava SA da ih koristi. Međutim, ako je cloud-platform opseg omogućen ili samo compute opseg je omogućen, moći ćete da ih zloupotrebite.

Proverite sledeće dozvole:

Pretražite ključeve u datotečnom sistemu

Proverite da li su se drugi korisnici prijavili u gcloud unutar kutije i ostavili svoje akreditive u datotečnom 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 regexova za API ključeve

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"

Reference

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