GCP - Cloud Functions Enum

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

Ander maniere om HackTricks te ondersteun:

Cloud Functions

Google Cloud Functions is ontwerp om jou kode te huisves, wat uitgevoer word in reaksie op gebeure, sonder die bestuur van 'n gasheer-bedryfstelsel. Daarbenewens ondersteun hierdie funksies die berging van omgewingsveranderlikes wat die kode kan gebruik.

Berging

Die Cloud Functions kode word gestoor in GCP-bergings. Daarom sal enigeen met leestoegang tot emmers in GCP in staat wees om die Cloud Functions-kode te lees. Die kode word gestoor in 'n emmer soos:

gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zip byvoorbeeld: gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip

Enige gebruiker met skryfregte oor die emmer wat die Cloud-funksie stoor, kan die uitgevoerde kode oorwryf.

SA

Indien nie gespesifiseer nie, sal standaard die App Engine Default Service Account met Redakteur-permissies oor die projek aan die Cloud-funksie geheg word.

Triggers, URL & Verifikasie

Wanneer 'n Cloud-funksie geskep word, moet die trigger gespesifiseer word. Een algemene een is HTTPS, dit sal 'n URL skep waar die funksie geaktiveer kan word deur webblaaier. Ander triggers is pub/sub, Berging, Lêerstoor...

Die URL-formaat is https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>

Wanneer die HTTPS-trigger gebruik word, word ook aangedui of die oproeper IAM-gemagtiging moet hê om die Funksie te roep of as almal dit net kan oproep:

Binne die Cloud-funksie

Die kode word afgelaai binne die vouer /workspace met dieselfde lêernaam as die lêers in die Cloud-funksie en word uitgevoer met die gebruiker www-data. Die skyf word nie as slegs-lees gemonteer nie.

Enumerasie

# List functions
gcloud functions list
gcloud functions describe <func_name> # Check triggers to see how is this function invoked
gcloud functions get-iam-policy <func_name>

# Get logs of previous runs. By default, limits to 10 lines
gcloud functions logs read <func_name> --limit [NUMBER]

# Call a function
curl https://<region>-<project>.cloudfunctions.net/<func_name>
gcloud functions call <func_name> --data='{"message": "Hello World!"}'

# If you know the name of projects you could try to BF cloud functions names

# Get events that could be used to trigger a cloud function
gcloud functions event-types list

# Access function with authentication
curl -X POST https://<region>-<project>.cloudfunctions.net/<func_name> \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" \
-d '{}'

Voorregverhoging

Op die volgende bladsy kan jy sien hoe om wolksfunksie-toestemmings te misbruik om voorregte te verhoog:

pageGCP - Cloudfunctions Privesc

Ongeagte Toegang

pageGCP - Cloud Functions Unauthenticated Enum

Na-uitbuiting

pageGCP - Cloud Functions Post Exploitation

Volharding

pageGCP - Cloud Functions Persistence

Verwysings

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

Ander maniere om HackTricks te ondersteun:

Last updated