GCP - Cloudbuild Privesc
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)
Para más información sobre Cloud Build, consulta:
GCP - Cloud Build Enumcloudbuild.builds.create
Con este permiso puedes enviar un cloud build. La máquina de cloudbuild tendrá en su sistema de archivos por defecto un token de la Cuenta de Servicio de cloudbuild: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com
. Sin embargo, puedes indicar cualquier cuenta de servicio dentro del proyecto en la configuración de cloudbuild.
Por lo tanto, puedes hacer que la máquina exfiltre el token a tu servidor o obtener un shell reverso dentro de ella y conseguir el token (el archivo que contiene el token puede cambiar).
Puedes encontrar el script de explotación original aquí en GitHub (pero la ubicación de donde toma el token no funcionó para mí). Por lo tanto, consulta un script para automatizar la creación, explotación y limpieza de un entorno vulnerable aquí y un script de python para obtener un shell reverso dentro de la máquina de cloudbuild y robarlo aquí (en el código puedes encontrar cómo especificar otras cuentas de servicio).
Para una explicación más detallada, visita https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/
cloudbuild.builds.update
Potencialmente con este permiso podrás actualizar un cloud build y simplemente robar el token de la cuenta de servicio como se realizó con el permiso anterior (pero desafortunadamente en el momento de escribir esto no pude encontrar ninguna manera de llamar a esa API).
TODO
cloudbuild.repositories.accessReadToken
Con este permiso, el usuario puede obtener el token de acceso de lectura utilizado para acceder al repositorio:
cloudbuild.repositories.accessReadWriteToken
Con este permiso, el usuario puede obtener el token de acceso de lectura y escritura utilizado para acceder al repositorio:
cloudbuild.connections.fetchLinkableRepositories
Con este permiso puedes obtener los repos a los que la conexión tiene acceso:
Aprende 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)