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