GCP - Cloud Run Enum
Cloud Run
Cloud Run es una plataforma de cómputo administrada sin servidor que te permite ejecutar contenedores directamente sobre la infraestructura escalable de Google.
Puedes ejecutar tu contenedor o, si estás utilizando Go, Node.js, Python, Java, .NET Core o Ruby, puedes utilizar la opción de implementación basada 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, por lo que puedes construir aplicaciones completas.
Servicios y trabajos
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 utilizar 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 un trabajo y se detiene cuando el trabajo está hecho.
Servicio de Cloud Run
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 de forma predeterminada, que espera una solicitud HTTP. Cuando se recibe la solicitud, se ejecuta un trabajo y el registro del trabajo se muestra a través de una respuesta HTTP.
Detalles relevantes
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 con el servidor web puede ser permitir a todos o requerir autenticación a través de IAM.
Por defecto, el cifrado utiliza una clave administrada por Google, pero también se puede elegir una CMEK (Clave de Cifrado Administrada 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 ámbito
cloud-platform
.Es posible definir variables de entorno en texto claro para la ejecución e incluso montar secretos de la nube o agregar secretos de la nube a variables de entorno.
También es posible agregar conexiones con Cloud SQL y montar un sistema de archivos.
Las URLs de los servicios implementados son similares a
https://<nombre-servicio>-<aleatorio>.a.run.app
Un Servicio de Run puede tener más de 1 versión o revisión y dividir el tráfico entre varias revisiones.
Enumeración
Trabajos de Cloud Run
Los trabajos de Cloud Run son más adecuados para contenedores que se ejecutan hasta su finalización y no atienden solicitudes. Los trabajos no tienen la capacidad de atender solicitudes o 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 finalizar cuando hayan terminado.
Escalada de Privilegios
En la siguiente página, puedes verificar cómo abusar de los permisos de Cloud Run para escalar privilegios:
pageGCP - Run PrivescAcceso No Autenticado
pageGCP - Cloud Run Unauthenticated EnumPost Explotación
pageGCP - Cloud Run Post ExploitationPersistencia
pageGCP - Cloud Run PersistenceReferencias
Última actualización