GCP - Run Privesc
Cloud Run
Aby uzyskać więcej informacji na temat Cloud Run, sprawdź:
pageGCP - Cloud Run Enumrun.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
run.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
Atakujący posiadający te uprawnienia może utworzyć usługę uruchamiania, uruchamiając dowolny kod (dowolny kontener Docker), dołączyć do niej konto usługi i sprawić, aby kod wyciekł token konta usługi z metadanych.
Skrypt wykorzystujący tę metodę można znaleźć tutaj, a obraz Docker można znaleźć tutaj.
Należy zauważyć, że podczas korzystania z gcloud run deploy
zamiast tylko tworzenia usługi wymagane jest uprawnienie update
. Sprawdź przykład tutaj.
run.services.update
, iam.serviceAccounts.actAs
run.services.update
, iam.serviceAccounts.actAs
Podobnie jak poprzednia, ale aktualizując usługę:
run.services.setIamPolicy
run.services.setIamPolicy
Nadaj sobie wcześniejsze uprawnienia do chmury Run.
run.jobs.create
, run.jobs.run
, (run.jobs.get
)
run.jobs.create
, run.jobs.run
, (run.jobs.get
)Uruchom zadanie z odwróconym powłoką, aby ukraść konto usługi wskazane w poleceniu. Możesz znaleźć exploit tutaj.
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)Podobnie jak w poprzednim przypadku, możliwe jest zaktualizowanie zadania i zaktualizowanie SA, polecenie i wykonanie go:
run.jobs.setIamPolicy
run.jobs.setIamPolicy
Nadaj sobie wcześniejsze uprawnienia do Cloud Jobs.
Referencje
Last updated