GCP - Run Privesc
Cloud Run
Per ulteriori informazioni su Cloud Run, controlla:
pageGCP - Cloud Run Enumrun.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
run.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
Un attaccante con queste autorizzazioni può creare un servizio run eseguendo codice arbitrario (contenitore Docker arbitrario), collegare un Account di Servizio ad esso e fare in modo che il codice esfiltrare il token dell'Account di Servizio dai metadati.
Uno script di exploit per questo metodo può essere trovato qui e l'immagine Docker può essere trovata qui.
Nota che quando si utilizza gcloud run deploy
invece di creare solo il servizio è necessaria l'autorizzazione update
. Controlla un esempio qui.
run.services.update
, iam.serviceAccounts.actAs
run.services.update
, iam.serviceAccounts.actAs
Come il precedente ma aggiornando un servizio:
run.services.setIamPolicy
run.services.setIamPolicy
Assegna a te stesso i permessi precedenti su Cloud Run.
run.jobs.create
, run.jobs.run
, (run.jobs.get
)
run.jobs.create
, run.jobs.run
, (run.jobs.get
)Avvia un lavoro con una shell inversa per rubare l'account di servizio indicato nel comando. Puoi trovare un exploit qui.
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)Simile al precedente, è possibile aggiornare un lavoro e aggiornare l'account di servizio, il comando ed eseguirlo:
run.jobs.setIamPolicy
run.jobs.setIamPolicy
Assegna a te stesso i permessi precedenti su Cloud Jobs.
Riferimenti
Last updated