GCP - Cloudfunctions Privesc
cloudfunctions
Maggiori informazioni sulle Cloud Functions:
pageGCP - Cloud Functions Enumcloudfunctions.functions.create
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
cloudfunctions.functions.create
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
Un attaccante con questi privilegi può creare una nuova Cloud Function con codice arbitrario (malware) e assegnargli un Account di Servizio. Successivamente, può divulgare il token dell'Account di Servizio dai metadati per ottenere privilegi su di esso. Potrebbero essere necessari alcuni privilegi per attivare la funzione.
Gli script di exploit per questo metodo possono essere trovati qui e qui e il file .zip precompilato può essere trovato qui.
cloudfunctions.functions.update
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
cloudfunctions.functions.update
, cloudfunctions.functions.sourceCodeSet
, iam.serviceAccounts.actAs
Un attaccante con questi privilegi può modificare il codice di una Funzione e persino modificare l'account di servizio associato con l'obiettivo di estrarre il token. Potrebbero essere necessari alcuni privilegi per attivare la funzione.
Lo script di exploit per questo metodo può essere trovato qui.
cloudfunctions.functions.sourceCodeSet
cloudfunctions.functions.sourceCodeSet
Con questa autorizzazione è possibile ottenere un URL firmato per poter caricare un file in un bucket della funzione (ma il codice della funzione non verrà modificato, è comunque necessario aggiornarlo)
Non sono sicuro di quanto possa essere utile solo questo permesso dal punto di vista di un attaccante, ma è bene saperlo.
cloudfunctions.functions.setIamPolicy
, iam.serviceAccounts.actAs
cloudfunctions.functions.setIamPolicy
, iam.serviceAccounts.actAs
Assegnati uno qualsiasi dei privilegi precedenti .update
o .create
per ottenere un'escalation.
cloudfunctions.functions.update
cloudfunctions.functions.update
Avere solo i permessi cloudfunctions
, senza iam.serviceAccounts.actAs
non ti permetterà di aggiornare la funzione QUINDI QUESTO NON È UNA VALIDA PRIVILEGE ESCALATION.
Autorizzazioni di Scrittura sul Bucket
Un attaccante con autorizzazioni di scrittura sul bucket in cui è memorizzato il codice delle Cloud Functions sarà in grado di modificare il codice sovrascrivendo il function_code.zip
e sarà in grado di eseguire codice arbitrario una volta eseguito.
Riferimenti
Last updated