GCP - Cloud Functions Enum
Cloud Functions
Google Cloud Functions sind darauf ausgelegt, 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 vom Code genutzt werden können.
Speicher
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 folgt gespeichert:
gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/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 Schreibberechtigungen über den Bucket, der die Cloud Function speichert, könnte den ausgeführten Code überschreiben.
SA
Wenn nicht spezifiziert, wird standardmäßig das App Engine Default Service-Konto mit Editor-Berechtigungen über das Projekt der Cloud-Funktion angehängt.
Trigger, URL & Authentifizierung
Beim Erstellen einer Cloud-Funktion muss der Trigger angegeben werden. Ein häufiger Trigger ist HTTPS, der eine URL erstellt, über die die Funktion über das Web aufgerufen werden kann. Andere Trigger sind Pub/Sub, Storage, Filestore...
Das URL-Format lautet https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>
Wenn der HTTPS-Trigger verwendet wird, wird auch angegeben, ob der Aufrufer IAM-Berechtigungen haben muss, um die Funktion aufzurufen, oder ob jeder sie einfach aufrufen kann:
Innerhalb der Cloud-Funktion
Der Code wird im Ordner /workspace
mit denselben Dateinamen wie die Dateien im Cloud Function heruntergeladen und mit dem Benutzer www-data
ausgeführt.
Die Festplatte ist nicht als schreibgeschützt eingebunden.
Enumeration
Privilege Escalation
Auf der folgenden Seite können Sie nachschauen, wie Sie Cloud-Funktionsberechtigungen missbrauchen, um Privilegien zu eskalieren:
pageGCP - Cloudfunctions PrivescUnauthenticated Access
pageGCP - Cloud Functions Unauthenticated EnumPost Exploitation
pageGCP - Cloud Functions Post ExploitationPersistence
pageGCP - Cloud Functions PersistenceReferences
Last updated