GCP - Compute Privesc

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Red Team de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

Compute

Para obtener más información sobre Compute y VPC (red) en GCP, consulta:

pageGCP - Compute Enum

compute.projects.setCommonInstanceMetadata

Con ese permiso puedes modificar la información de metadatos de una instancia y cambiar las claves autorizadas de un usuario, o crear un nuevo usuario con permisos de sudo. Por lo tanto, podrás ejecutar vía SSH en cualquier instancia de VM y robar la Cuenta de Servicio de GCP con la que se está ejecutando la instancia. Limitaciones:

  • Ten en cuenta que las Cuentas de Servicio de GCP que se ejecutan en instancias de VM por defecto tienen un alcance muy limitado

  • Necesitarás ser capaz de contactar al servidor SSH para iniciar sesión

Para obtener más información sobre cómo explotar este permiso, consulta:

pageGCP - Add Custom SSH Metadata

compute.instances.setMetadata

Este permiso otorga los mismos privilegios que el permiso anterior pero sobre instancias específicas en lugar de un proyecto completo. Se aplican los mismos exploits y limitaciones que para la sección anterior.

compute.instances.setIamPolicy

Este tipo de permiso te permitirá concederte un rol con los permisos anteriores y escalar privilegios abusándolos.

compute.instances.osLogin

Si OSLogin está habilitado en la instancia, con este permiso simplemente puedes ejecutar gcloud compute ssh [INSTANCIA] y conectarte a la instancia. No tendrás privilegios de root dentro de la instancia.

compute.instances.osAdminLogin

Si OSLogin está habilitado en la instancia, con este permiso simplemente puedes ejecutar gcloud compute ssh [INSTANCIA] y conectarte a la instancia. Tendrás privilegios de root dentro de la instancia.

compute.instances.create,iam.serviceAccounts.actAs, compute.disks.create, compute.instances.create, compute.instances.setMetadata, compute.instances.setServiceAccount, compute.subnetworks.use, compute.subnetworks.useExternalIp

Es posible crear una máquina virtual con una Cuenta de Servicio asignada y robar el token de la cuenta de servicio accediendo a los metadatos para escalar privilegios a ella.

El script de explotación para este método se puede encontrar aquí.

osconfig.patchDeployments.create | osconfig.patchJobs.exec

Si tienes los permisos de osconfig.patchDeployments.create o osconfig.patchJobs.exec puedes crear un trabajo o despliegue de parches. Esto te permitirá moverte lateralmente en el entorno y obtener ejecución de código en todas las instancias de cómputo dentro de un proyecto.

Si deseas explotarlo manualmente, deberás crear un trabajo de parche o despliegue para un trabajo de parche ejecuta:

gcloud compute os-config patch-jobs execute --file=patch.json

Para implementar un despliegue de parche:

gcloud compute os-config patch-deployments create my-update --file=patch.json

Existen herramientas automatizadas como patchy que detectan permisos laxos y se mueven lateralmente automáticamente.

También puedes abusar de esto para persistencia.

compute.machineImages.setIamPolicy

Concédate permisos adicionales para la Imagen de Cómputo.

compute.snapshots.setIamPolicy

Concédate permisos adicionales para una instantánea de disco.

compute.disks.setIamPolicy

Concédate permisos adicionales para un disco.

Saltar los Alcances de Acceso

Siguiendo este enlace encontrarás algunas ideas para intentar saltar los alcances de acceso.

Escalada de Privilegios Local en una instancia de Cómputo de GCP

pageGCP - local privilege escalation ssh pivoting

Referencias

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Red Team de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

Última actualización