GCP - Run Privesc
Cloud Run
Za više informacija o Cloud Run proverite:
GCP - Cloud Run Enumrun.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
run.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
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
run.services.update
, iam.serviceAccounts.actAs
Slično prethodnom ali ažuriranje servisa:
run.services.setIamPolicy
run.services.setIamPolicy
Dodelite sebi prethodne dozvole nad cloud Run-om.
run.jobs.create
, run.jobs.run
, (run.jobs.get
)
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.
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)Slično kao i prethodno, moguće je ažurirati posao i ažurirati SA, komandovati i izvršiti ga:
run.jobs.run, run.jobs.runWithOverrides, (run.jobs.get)
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:
çrun.jobs.setIamPolicy
çrun.jobs.setIamPolicy
Dodelite sebi prethodna ovlašćenja nad Cloud Jobs.
Reference
Last updated