GCP - local privilege escalation ssh pivoting

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

In hierdie scenario gaan ons aanneem dat jy 'n nie-bevoorregte rekening gekompromiteer het binne 'n VM in 'n Compute Engine projek.

Verbasend genoeg kan GPC-toestemmings van die rekenaarmotor wat jy gekompromiteer het, jou help om bevoorregte eskalasies plaaslik binne 'n masjien te doen. Selfs al sal dit nie altyd baie nuttig wees in 'n wolkomgewing nie, is dit goed om te weet dat dit moontlik is.

Lees die skripte

Rekenaarinstansies is waarskynlik daar om sekere skripte uit te voer om aksies met hul diensrekeninge uit te voer.

Aangesien IAM so fyn is, kan 'n rekening dalk lees/skryf-toestemmings hê oor 'n hulpbron maar geen lys-toestemmings nie.

'n Goeie hipotetiese voorbeeld hiervan is 'n Rekenaarinstansie wat toestemming het om rugsteune na 'n stoorhouer genaamd instance82736-long-term-xyz-archive-0332893 te lees/skryf.

As jy gsutil ls vanaf die opdraglyn hardloop, gee dit niks terug nie, aangesien die diensrekening die storage.buckets.list IAM-toestemming ontbreek. Tog, as jy gsutil ls gs://instance82736-long-term-xyz-archive-0332893 hardloop, mag jy 'n volledige lêerstelsel-rugsteun vind, wat jou duidelike toegang tot data gee wat jou plaaslike Linux-rekening ontbreek.

Jy mag dalk hierdie houernaam binne 'n skrip (in bash, Python, Ruby...) vind.

Aangepaste Metadata

Administrateurs kan aangepaste metadata op die instansie- en projekvlak byvoeg. Dit is eenvoudig 'n manier om willekeurige sleutel/waarde-pare in 'n instansie oor te dra, en word dikwels gebruik vir omgewingsveranderlikes en aanvangs/afsluitingskripte.

Daarbenewens is dit moontlik om gebruikersdata by te voeg, wat 'n skrip is wat elke keer sal uitgevoer word as die masjien begin of herlaai word en wat ook vanaf die metadata-eindpunt toeganklik is.

Vir meer inligting kyk na:

Misbruik van IAM-toestemmings

Die meeste van die voorgestelde toestemmings hieronder word aan die verstek Rekenaar-SA gegee, die enigste probleem is dat die verstek toegangsbereik die SA verhoed om dit te gebruik. Nietemin, as die cloud-platform-toepassingsbereik geaktiveer is of net die compute-toepassingsbereik geaktiveer is, sal jy in staat wees om dit te misbruik.

Kyk na die volgende toestemmings:

Soek na Sleutels in die lêerstelsel

Kyk of ander gebruikers ingeteken het in gcloud binne die boks en hul geloofsbriewe in die lêerstelsel agtergelaat het:

sudo find / -name "gcloud"

Hierdie is die mees interessante lêers:

  • ~/.config/gcloud/credentials.db

  • ~/.config/gcloud/legacy_credentials/[REKENING]/adc.json

  • ~/.config/gcloud/legacy_credentials/[REKENING]/.boto

  • ~/.credentials.json

Meer API-sleutel regexes

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"

Verwysings

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated