GCP - Cloud Functions Enum

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Cloud Functions

Google Cloud Functions su dizajnirane da hostuju vaš kod, koji se izvršava kao odgovor na događaje, bez potrebe za upravljanjem operativnim sistemom domaćina. Osim toga, ove funkcije podržavaju čuvanje promenljivih okruženja, koje kod može koristiti.

Skladištenje

Kod Cloud Functions je smešten u GCP Skladištu. Stoga, svako sa pristupom za čitanje nad bucket-ima u GCP-u će moći da čita kod Cloud Functions. Kod je smešten u bucket-u kao jedan od sledećih formata:

  • gcf-sources-<broj>-<region>/<ime-funkcije>-<uuid>/verzija-<n>/izvorni-kod-funkcije.zip

  • gcf-v2-sources-<broj>-<region>/<ime-funkcije>izvorni-kod-funkcije.zip

Na primer: gcf-sources-645468741258-us-central1/funkcija-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/verzija-4/izvorni-kod-funkcije.zip

Svaki korisnik sa privilegijama za čitanje nad bucket-om koji čuva Cloud Function bi mogao da čita izvršeni kod.

Registar Artefakata

Ako je cloud funkcija konfigurisana tako da je izvršeni Docker kontejner smešten unutar Registra Artefakata repozitorijuma unutar projekta, svako sa pristupom za čitanje nad repozitorijumom će moći da preuzme sliku i proveri izvorni kod. Za više informacija pogledajte:

GCP - Artifact Registry Enum

SA

Ako nije specificirano, podrazumevano će biti povezan App Engine Podrazumevani Servisni Nalog sa Editor privilegijama nad projektom sa Cloud Function.

Okidači, URL & Autentikacija

Kada se kreira Cloud Function, potrebno je specificirati okidač. Jedan uobičajeni je HTTPS, koji će kreirati URL gde funkcija može biti okidač putem web pregledača. Drugi okidači su pub/sub, Skladište, Filestore...

Format URL-a je https://<region>-<ime-projekta-gcp>.cloudfunctions.net/<ime_funkcije>

Kada se koristi HTTPS okidač, takođe je naznačeno da li pozivaoc treba da ima IAM autorizaciju da pozove Funkciju ili ako to može uraditi svako:

Unutar Cloud Funkcije

Kod je preuzet unutar foldera /workspace sa istim imenima fajlova kao što ih imaju fajlovi u Cloud Function i izvršava se sa korisnikom www-data. Disk nije montiran kao samo za čitanje.

Enumeracija

# 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 '{}'

Eskalacija privilegija

Na sledećoj stranici možete proveriti kako zloupotrebiti dozvole cloud funkcija radi eskalacije privilegija:

GCP - Cloudfunctions Privesc

Neautentifikovan pristup

GCP - Cloud Functions Unauthenticated Enum

Post eksploatacija

GCP - Cloud Functions Post Exploitation

Upornost

GCP - Cloud Functions Persistence

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated