GCP - Run Privesc
Cloud Run
Per ulteriori informazioni su Cloud Run controlla:
GCP - Cloud Run Enumrun.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
run.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
Un attaccante con questi permessi per creare un servizio di esecuzione che esegue codice arbitrario (contenitore Docker arbitrario), allegare un Service Account ad esso e far sì che il codice esfiltri il token del Service Account 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 semplicemente il servizio ha bisogno del permesso 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
Concediti permessi precedenti su Cloud Run.
run.jobs.create
, run.jobs.run
, iam.serviceaccounts.actAs
,(run.jobs.get
)
run.jobs.create
, run.jobs.run
, iam.serviceaccounts.actAs
,(run.jobs.get
)Avvia un lavoro con una reverse shell 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 a quello precedente, è possibile aggiornare un lavoro e aggiornare il SA, il comando e eseguirlo:
run.jobs.setIamPolicy
run.jobs.setIamPolicy
Concediti i permessi precedenti sui Cloud Jobs.
Riferimenti
Last updated