GCP - Cloud Functions Enum
Cloud Functions
Google Cloud Functions están diseñadas para alojar tu código, el cual se ejecuta en respuesta a eventos, sin necesidad de gestionar un sistema operativo de host. Además, estas funciones admiten el almacenamiento de variables de entorno, que el código puede utilizar.
Almacenamiento
El código de las Cloud Functions se almacena en GCP Storage. Por lo tanto, cualquier persona con acceso de lectura a los buckets en GCP podrá leer el código de las Cloud Functions. El código se almacena en un bucket como:
gcf-sources-<número>-<región>/<nombre-función>-<uuid>/versión-<n>/function-source.zip
por ejemplo:
gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip
Cualquier usuario con privilegios de escritura sobre el bucket que almacena la Cloud Function podría sobrescribir el código ejecutado.
SA
Si no se especifica, por defecto se adjuntará a la Cloud Function la Cuenta de Servicio Predeterminada de App Engine con permisos de Editor sobre el proyecto.
Disparadores, URL y Autenticación
Cuando se crea una Cloud Function, se debe especificar el disparador. Uno común es HTTPS, esto creará una URL donde la función puede ser activada a través de la navegación web. Otros disparadores son pub/sub, Storage, Filestore...
El formato de la URL es https://<región>-<nombre-proyecto-gcp>.cloudfunctions.net/<nombre_función>
Cuando se utiliza el disparador HTTPS, también se indica si el llamante necesita tener autorización IAM para llamar a la Función o si cualquiera puede llamarla:
Dentro de la Cloud Function
El código es descargado dentro de la carpeta /workspace
con los mismos nombres de archivo que tienen los archivos en la Cloud Function y se ejecuta con el usuario www-data
.
El disco no está montado como de solo lectura.
Enumeración
Escalada de Privilegios
En la siguiente página, puedes verificar cómo abusar de los permisos de las funciones en la nube para escalar privilegios:
pageGCP - Cloudfunctions PrivescAcceso No Autenticado
pageGCP - Cloud Functions Unauthenticated EnumPost Explotación
pageGCP - Cloud Functions Post ExploitationPersistencia
pageGCP - Cloud Functions PersistenceReferencias
Última actualización