GCP - Cloud Functions Enum
Cloud Functions
Google Cloud Functions sind dafür konzipiert, deinen 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 Cloud Functions Code wird in GCP Storage gespeichert. Daher kann jeder mit Lesezugriff auf Buckets in GCP den Cloud Functions Code 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
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:
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 ist nicht schreibgeschützt gemountet.
Enumeration
Privilegieneskalation
In der folgenden Seite können Sie überprüfen, wie man Cloud-Funktionsberechtigungen missbraucht, um Privilegien zu eskalieren:
Unauthentifizierter Zugriff
Nach der Ausnutzung
Persistenz
Referenzen
Last updated