GCP - Cloud Functions Enum
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.
Cloud Functions
Google Cloud Functions su dizajnirane da hostuju vaš kod, koji se izvršava kao odgovor na događaje, bez potrebe za upravljanjem host operativnim sistemom. Pored toga, ove funkcije podržavaju skladištenje promenljivih okruženja, koje kod može koristiti.
Storage
Kod Cloud Functions se skladišti u GCP Storage. Stoga, svako ko ima pristup za čitanje nad bucket-ima u GCP će moći da pročita kod Cloud Functions.
Kod se skladišti u bucket-u kao jedan od sledećih:
gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zip
gcf-v2-sources-<number>-<region>/<function-name>function-source.zip
Na primer:
gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip
warning
Svaki korisnik sa privilgijama za čitanje nad bucket-om koji skladišti Cloud Function može pročitati izvršeni kod.
Artifact Registry
Ako je cloud funkcija konfigurisana tako da se izvršeni Docker kontejner skladišti unutar Artifact Registry repozitorijuma unutar projekta, svako ko ima pristup za čitanje nad repozitorijumom će moći da preuzme sliku i proveri izvorni kod. Za više informacija pogledajte:
SA
Ako nije navedeno, podrazumevano će biti povezan App Engine Default Service Account sa Editor privilegijama nad projektom na Cloud Function.
Triggers, URL & Authentication
Kada se kreira Cloud Function, potrebno je odrediti okidač. Jedan uobičajen je HTTPS, koji će kreirati URL gde se funkcija može aktivirati putem web pretraživača.
Ostali okidači su pub/sub, Storage, Filestore...
Format URL-a je https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>
Kada se koristi HTTPS okidač, takođe se naznačuje da li pozivalac treba da ima IAM autorizaciju da pozove funkciju ili ako svako može jednostavno da je pozove:
.png)
Inside the Cloud Function
Kod se preuzima unutar foldera /workspace
sa istim nazivima datoteka kao što su datoteke u Cloud Function i izvršava se sa korisnikom www-data
.
Disk nije montiran kao samo za čitanje.
Enumeration
# 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 da zloupotrebite dozvole cloud funkcija za eskalaciju privilegija:
Neautentifikovani pristup
GCP - Cloud Functions Unauthenticated Enum
Post Eksploatacija
GCP - Cloud Functions Post Exploitation
Postojanost
GCP - Cloud Functions Persistence
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.