GCP - Cloud Run Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Cloud Run es una plataforma de computación sin servidor gestionada que te permite ejecutar contenedores directamente sobre la infraestructura escalable de Google.
Puedes ejecutar tu contenedor o, si estás usando Go, Node.js, Python, Java, .NET Core o Ruby, puedes usar la opción de despliegue basado en código fuente que construye el contenedor por ti.
Google ha construido Cloud Run para funcionar bien junto con otros servicios en Google Cloud, así que puedes construir aplicaciones completas.
En Cloud Run, tu código puede ejecutarse continuamente como un servicio o como un trabajo. Tanto los servicios como los trabajos se ejecutan en el mismo entorno y pueden usar las mismas integraciones con otros servicios en Google Cloud.
Servicios de Cloud Run. Se utilizan para ejecutar código que responde a solicitudes web o eventos.
Trabajos de Cloud Run. Se utilizan para ejecutar código que realiza trabajo (un trabajo) y se detiene cuando el trabajo está terminado.
Google Cloud Run es otra oferta sin servidor donde también puedes buscar variables de entorno. Cloud Run crea un pequeño servidor web, que se ejecuta en el puerto 8080 dentro del contenedor por defecto, que espera una solicitud HTTP GET. Cuando se recibe la solicitud, se ejecuta un trabajo y el registro del trabajo se envía a través de una respuesta HTTP.
Por defecto, el acceso al servidor web es público, pero también puede ser limitado al tráfico interno (VPC...) Además, la autenticación para contactar al servidor web puede ser permitir todo o requerir autenticación a través de IAM.
Por defecto, la encriptación utiliza una clave gestionada por Google, pero también se puede elegir una CMEK (Clave de Encriptación Gestionada por el Cliente) de KMS.
Por defecto, la cuenta de servicio utilizada es la predeterminada de Compute Engine que tiene acceso de Editor sobre el proyecto y tiene el alcance cloud-platform
.
Es posible definir variables de entorno en texto claro para la ejecución, e incluso montar secretos en la nube o agregar secretos en la nube a las variables de entorno.
También es posible agregar conexiones con Cloud SQL y montar un sistema de archivos.
Las URLs de los servicios desplegados son similares a https://<svc-name>-<random>.a.run.app
Un Servicio Run puede tener más de 1 versión o revisión, y dividir el tráfico entre varias revisiones.
Los trabajos de Cloud Run son más adecuados para contenedores que se ejecutan hasta completarse y no sirven solicitudes. Los trabajos no tienen la capacidad de servir solicitudes ni escuchar en un puerto. Esto significa que, a diferencia de los servicios de Cloud Run, los trabajos no deben incluir un servidor web. En su lugar, los contenedores de trabajos deben salir cuando hayan terminado.
En la siguiente página, puedes verificar cómo abusar de los permisos de cloud run para escalar privilegios:
GCP - Run PrivescAprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)