GCP - local privilege escalation ssh pivoting
Last updated
Last updated
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)
en este escenario vamos a suponer que has comprometido una cuenta no privilegiada dentro de una VM en un proyecto de Compute Engine.
Sorprendentemente, los permisos de GCP del compute engine que has comprometido pueden ayudarte a escalar privilegios localmente dentro de una máquina. Incluso si eso no siempre será muy útil en un entorno de nube, es bueno saber que es posible.
Las Instancias de Cómputo probablemente están ahí para ejecutar algunos scripts para realizar acciones con sus cuentas de servicio.
Como IAM es muy granular, una cuenta puede tener privilegios de lectura/escritura sobre un recurso pero sin privilegios de listado.
Un gran ejemplo hipotético de esto es una Instancia de Cómputo que tiene permiso para leer/escribir copias de seguridad en un bucket de almacenamiento llamado instance82736-long-term-xyz-archive-0332893
.
Ejecutar gsutil ls
desde la línea de comandos no devuelve nada, ya que la cuenta de servicio carece del permiso IAM storage.buckets.list
. Sin embargo, si ejecutas gsutil ls gs://instance82736-long-term-xyz-archive-0332893
puedes encontrar una copia de seguridad completa del sistema de archivos, dándote acceso en texto claro a datos que tu cuenta local de Linux no tiene.
Es posible que puedas encontrar este nombre de bucket dentro de un script (en bash, Python, Ruby...).
Los administradores pueden agregar metadatos personalizados a nivel de instancia y proyecto. Esta es simplemente una forma de pasar pares clave/valor arbitrarios a una instancia, y se utiliza comúnmente para variables de entorno y scripts de inicio/apagado.
Además, es posible agregar userdata, que es un script que será ejecutado cada vez que la máquina se inicie o reinicie y que puede ser accedido desde el punto final de metadatos también.
Para más información consulta:
La mayoría de los siguientes permisos propuestos son otorgados a la cuenta de servicio de Compute por defecto, el único problema es que el alcance de acceso por defecto impide que la cuenta de servicio los use. Sin embargo, si el alcance cloud-platform
está habilitado o solo el alcance compute
está habilitado, podrás abusar de ellos.
Revisa los siguientes permisos:
Verifica si otros usuarios han iniciado sesión en gcloud dentro de la caja y han dejado sus credenciales en el sistema de archivos:
Estos son los archivos más interesantes:
~/.config/gcloud/credentials.db
~/.config/gcloud/legacy_credentials/[ACCOUNT]/adc.json
~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto
~/.credentials.json
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)