GCP - Cloudfunctions Privesc
cloudfunctions
Weitere Informationen zu Cloud Functions:
pageGCP - Cloud Functions Enumcloudfunctions.functions.create
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
cloudfunctions.functions.create
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
Ein Angreifer mit diesen Berechtigungen kann eine neue Cloud Function mit beliebigem (bösartigem) Code erstellen und ihr ein Servicekonto zuweisen. Anschließend kann das Servicekonto-Token aus den Metadaten geleakt werden, um die Berechtigungen darauf zu eskalieren. Einige Berechtigungen zum Auslösen der Funktion können erforderlich sein.
Exploit-Skripte für diese Methode finden Sie hier und hier und die vorab erstellte .zip-Datei finden Sie hier.
cloudfunctions.functions.update
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
cloudfunctions.functions.update
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
Ein Angreifer mit diesen Berechtigungen kann den Code einer Funktion ändern und sogar das angehängte Servicekonto ändern, um das Token zu exfiltrieren. Einige Berechtigungen zum Auslösen der Funktion können erforderlich sein.
Das Exploit-Skript für diese Methode finden Sie hier.
cloudfunctions.functions.sourceCodeSet
cloudfunctions.functions.sourceCodeSet
Mit dieser Berechtigung können Sie eine signierte URL erhalten, um eine Datei in einen Funktionsbucket hochzuladen (der Code der Funktion wird jedoch nicht geändert, Sie müssen ihn immer noch aktualisieren)
Nicht wirklich sicher, wie nützlich nur diese Berechtigung aus der Perspektive eines Angreifers ist, aber gut zu wissen.
cloudfunctions.functions.setIamPolicy
, iam.serviceAccounts.actAs
cloudfunctions.functions.setIamPolicy
, iam.serviceAccounts.actAs
Geben Sie sich eine der vorherigen .update
oder .create
Berechtigungen, um Berechtigungen zu eskalieren.
cloudfunctions.functions.update
cloudfunctions.functions.update
Nur mit cloudfunctions
Berechtigungen, ohne iam.serviceAccounts.actAs
, können Sie die Funktion NICHT AKTUALISIEREN, ALSO IST DIES KEINE GÜLTIGE PRIVILEGIENESKALATION.
Bucket-Schreibberechtigungen
Ein Angreifer mit Schreibberechtigungen über den Bucket, in dem der Code der Cloud Functions gespeichert ist, kann den Code überschreiben, indem er die function_code.zip
ändert, und kann beliebigen Code ausführen, sobald er ausgeführt wird.
Referenzen
Last updated