GCP - Cloudfunctions Privesc
cloudfunctions
Más información sobre Cloud Functions:
pageGCP - Cloud Functions Enumcloudfunctions.functions.create
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
cloudfunctions.functions.create
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
Un atacante con estos privilegios puede crear una nueva Cloud Function con código arbitrario (malicioso) y asignarle una Cuenta de Servicio. Luego, filtrar el token de la Cuenta de Servicio desde los metadatos para escalar privilegios a la misma. Algunos privilegios para activar la función pueden ser necesarios.
Los scripts de explotación para este método se pueden encontrar aquí y aquí y el archivo .zip precompilado se puede encontrar aquí.
cloudfunctions.functions.update
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
cloudfunctions.functions.update
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
Un atacante con estos privilegios puede modificar el código de una Función e incluso modificar la cuenta de servicio adjunta con el objetivo de extraer el token. Algunos privilegios para activar la función pueden ser necesarios.
El script de explotación para este método se puede encontrar aquí.
cloudfunctions.functions.sourceCodeSet
cloudfunctions.functions.sourceCodeSet
Con este permiso puedes obtener una URL firmada para poder cargar un archivo en un bucket de función (pero el código de la función no se cambiará, aún necesitas actualizarlo)
No estoy seguro de cuán útil es esta única permiso desde la perspectiva de un atacante, pero es bueno saberlo.
cloudfunctions.functions.setIamPolicy
, iam.serviceAccounts.actAs
cloudfunctions.functions.setIamPolicy
, iam.serviceAccounts.actAs
Otórgate cualquiera de los privilegios anteriores .update
o .create
para escalar.
cloudfunctions.functions.update
cloudfunctions.functions.update
Solo teniendo permisos de cloudfunctions
, sin iam.serviceAccounts.actAs
no podrás actualizar la función, POR LO QUE ESTA NO ES UNA ELEVACIÓN DE PRIVILEGIOS VÁLIDA.
Permisos de Escritura en el Bucket
Un atacante con permisos de escritura sobre el bucket donde se almacena el código de las Cloud Functions podrá modificar el código sobrescribiendo el function_code.zip
y podrá ejecutar código arbitrario una vez que se ejecute.
Referencias
Última actualización