GCP - Cloudfunctions Privesc

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team di HackTricks AWS)!

Altri modi per supportare HackTricks:

cloudfunctions

Maggiori informazioni sulle Cloud Functions:

pageGCP - Cloud Functions Enum

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

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

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)

# Generate the URL
curl -X POST https://cloudfunctions.googleapis.com/v2/projects/{project-id}/locations/{location}/functions:generateUploadUrl \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{}'

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

Assegnati uno qualsiasi dei privilegi precedenti .update o .create per ottenere un'escalation.

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

Impara l'hacking su AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated