GCP - Enumeración de Cloud Functions
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- Únete al 💬 Discord group o al telegram group o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
Cloud Functions
Google Cloud Functions están diseñadas para alojar tu código, que se ejecuta en respuesta a eventos, sin necesidad de gestionar un sistema operativo anfitrión. Además, estas funciones admiten el almacenamiento de variables de entorno, que el código puede utilizar.
Almacenamiento
El código de Cloud Functions se almacena en GCP Storage. Por lo tanto, cualquier persona con acceso de lectura sobre los buckets en GCP podrá leer el código de Cloud Functions.
El código se almacena en un bucket como uno de los siguientes:
gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zipgcf-v2-sources-<number>-<region>/<function-name>function-source.zip
Por ejemplo:gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip
Warning
Cualquier usuario con privilegios de lectura sobre el bucket que almacena la Cloud Function podría leer el código ejecutado.
Registro de Artefactos
Si la función en la nube está configurada para que el contenedor Docker ejecutado se almacene dentro de un repositorio de Artifact Registry dentro del proyecto, cualquier persona con acceso de lectura sobre el repositorio podrá descargar la imagen y revisar el código fuente. Para más información, consulta:
SA
Si no se especifica, por defecto se adjuntará la Cuenta de Servicio Predeterminada de App Engine con permisos de Editor sobre el proyecto a la Cloud Function.
Disparadores, URL y Autenticación
Cuando se crea una Cloud Function, se necesita 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://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>
Cuando se utiliza el disparador HTTPS, también se indica si el llamador necesita tener autorización IAM para llamar a la función o si cualquiera puede simplemente llamarla:
.png)
Dentro de la Cloud Function
El código se descarga 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
# List functions
gcloud functions list
gcloud functions describe <func_name> # Check triggers to see how is this function invoked
gcloud functions get-iam-policy <func_name>
# Get logs of previous runs. By default, limits to 10 lines
gcloud functions logs read <func_name> --limit [NUMBER]
# Call a function
curl https://<region>-<project>.cloudfunctions.net/<func_name>
gcloud functions call <func_name> --data='{"message": "Hello World!"}'
# If you know the name of projects you could try to BF cloud functions names
# Get events that could be used to trigger a cloud function
gcloud functions event-types list
# Access function with authentication
curl -X POST https://<region>-<project>.cloudfunctions.net/<func_name> \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" \
-d '{}'
Escalación de Privilegios
En la siguiente página, puedes verificar cómo abusar de los permisos de las funciones en la nube para escalar privilegios:
Acceso No Autenticado
GCP - Cloud Functions Unauthenticated Enum
Post Explotación
GCP - Cloud Functions Post Exploitation
Persistencia
GCP - Cloud Functions Persistence
Referencias
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- Únete al 💬 Discord group o al telegram group o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
HackTricks Cloud

