GCP - Cloud Shell Persistence
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)
Para más información consulta:
GCP - Cloud Shell EnumGoogle Cloud Shell te proporciona acceso a la línea de comandos a tus recursos en la nube directamente desde tu navegador sin ningún costo asociado.
Puedes acceder al Cloud Shell de Google desde la consola web o ejecutando gcloud cloud-shell ssh
.
Esta consola tiene algunas capacidades interesantes para los atacantes:
Cualquier usuario de Google con acceso a Google Cloud tiene acceso a una instancia de Cloud Shell completamente autenticada (las Cuentas de Servicio pueden, incluso siendo Propietarios de la organización).
Dicha instancia mantendrá su directorio personal durante al menos 120 días si no ocurre ninguna actividad.
No hay capacidades para que una organización monitoree la actividad de esa instancia.
Esto significa básicamente que un atacante puede colocar una puerta trasera en el directorio personal del usuario y mientras el usuario se conecte al GC Shell al menos cada 120 días, la puerta trasera sobrevivirá y el atacante obtendrá un shell cada vez que se ejecute simplemente haciendo:
Hay otro archivo en la carpeta de inicio llamado .customize_environment
que, si existe, se va a ejecutar cada vez que el usuario acceda al cloud shell (como en la técnica anterior). Simplemente inserte la puerta trasera anterior o una como la siguiente para mantener la persistencia mientras el usuario use "frecuentemente" el cloud shell:
Es importante tener en cuenta que la primera vez que se realiza una acción que requiere autenticación, aparece una ventana de autorización emergente en el navegador del usuario. Esta ventana debe ser aceptada antes de que el comando pueda ejecutarse. Si aparece una ventana emergente inesperada, podría generar sospechas y potencialmente comprometer el método de persistencia que se está utilizando.
Esta es la ventana emergente al ejecutar gcloud projects list
desde el cloud shell (como atacante) vista en la sesión del navegador del usuario:
Sin embargo, si el usuario ha utilizado activamente el cloudshell, la ventana emergente no aparecerá y puedes recolectar tokens del usuario con:
Básicamente, se utilizan estas 3 llamadas a la API:
https://content-cloudshell.googleapis.com/v1/users/me/environments/default:addPublicKey [POST] (te hará agregar tu clave pública que creaste localmente)
https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start [POST] (te hará iniciar la instancia)
https://content-cloudshell.googleapis.com/v1/users/me/environments/default [GET] (te dirá la IP del google cloud shell)
Pero puedes encontrar más información en https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)