GCP - Cloud Functions Enum
Reading time: 5 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Cloud Functions
Google Cloud Functions sind dafür konzipiert, Ihren Code zu hosten, der als Reaktion auf Ereignisse ausgeführt wird, ohne dass die Verwaltung eines Host-Betriebssystems erforderlich ist. Darüber hinaus unterstützen diese Funktionen die Speicherung von Umgebungsvariablen, die der Code nutzen kann.
Speicherung
Der Code der Cloud Functions wird in GCP Storage gespeichert. Daher kann jeder mit Lesezugriff auf Buckets in GCP den Code der Cloud Functions lesen.
Der Code wird in einem Bucket wie einem der folgenden gespeichert:
gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zip
gcf-v2-sources-<number>-<region>/<function-name>function-source.zip
Zum Beispiel:
gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip
warning
Jeder Benutzer mit Leseprivilegien über den Bucket, der die Cloud Function speichert, könnte den ausgeführten Code lesen.
Artifact Registry
Wenn die Cloud-Funktion so konfiguriert ist, dass der ausgeführte Docker-Container in einem Artifact Registry-Repo innerhalb des Projekts gespeichert wird, kann jeder mit Lesezugriff auf das Repo das Image herunterladen und den Quellcode überprüfen. Für weitere Informationen siehe:
SA
Wenn nicht angegeben, wird standardmäßig das App Engine Standarddienstkonto mit Editor-Berechtigungen über das Projekt an die Cloud Function angehängt.
Trigger, URL & Authentifizierung
Wenn eine Cloud Function erstellt wird, muss der Trigger angegeben werden. Ein häufiger ist HTTPS, dies wird eine URL erstellen, über die die Funktion über das Web aufgerufen werden kann.
Andere Trigger sind pub/sub, Storage, Filestore...
Das URL-Format ist https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>
Wenn der HTTPS-Trigger verwendet wird, wird auch angegeben, ob der Aufrufer IAM-Berechtigungen benötigt, um die Funktion aufzurufen, oder ob jeder sie einfach aufrufen kann:
.png)
Innerhalb der Cloud Function
Der Code wird im Ordner /workspace
mit denselben Dateinamen wie die Dateien in der Cloud Function heruntergeladen und wird mit dem Benutzer www-data
ausgeführt.
Die Festplatte wird nicht als schreibgeschützt gemountet.
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 '{}'
Privilegieneskalation
Auf der folgenden Seite können Sie überprüfen, wie man Cloud-Funktionsberechtigungen missbraucht, um Privilegien zu eskalieren:
Unauthentifizierter Zugriff
GCP - Cloud Functions Unauthenticated Enum
Nach der Ausnutzung
GCP - Cloud Functions Post Exploitation
Persistenz
GCP - Cloud Functions Persistence
Referenzen
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.