GCP - Run Privesc
Cloud Run
Pour plus d'informations sur Cloud Run, consultez :
pageGCP - Cloud Run Enumrun.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
run.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
Un attaquant avec ces autorisations peut créer un service d'exécution exécutant un code arbitraire (conteneur Docker arbitraire), attacher un compte de service à celui-ci, et faire en sorte que le code exfiltre le jeton du compte de service à partir des métadonnées.
Un script d'exploitation pour cette méthode peut être trouvé ici et l'image Docker peut être trouvée ici.
Notez que lors de l'utilisation de gcloud run deploy
au lieu de simplement créer le service cela nécessite l'autorisation update
. Consultez un exemple ici.
run.services.update
, iam.serviceAccounts.actAs
run.services.update
, iam.serviceAccounts.actAs
Comme le précédent mais en mettant à jour un service :
run.services.setIamPolicy
run.services.setIamPolicy
Donnez-vous des autorisations précédentes sur Cloud Run.
run.jobs.create
, run.jobs.run
, (run.jobs.get
)
run.jobs.create
, run.jobs.run
, (run.jobs.get
)Lancez un travail avec un shell inversé pour voler le compte de service indiqué dans la commande. Vous pouvez trouver un exploit ici.
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)Similaire au précédent, il est possible de mettre à jour un travail et mettre à jour le compte de service, la commande et l'exécuter:
run.jobs.setIamPolicy
run.jobs.setIamPolicy
Donnez-vous les autorisations précédentes sur Cloud Jobs.
Références
Dernière mise à jour