GCP - Cloudfunctions Privesc

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

cloudfunctions

Plus d'informations sur les Cloud Functions :

pageGCP - Cloud Functions Enum

cloudfunctions.functions.create, cloudfunctions.functions.sourceCodeSet, iam.serviceAccounts.actAs

Un attaquant avec ces privilèges peut créer une nouvelle Cloud Function avec un code arbitraire (malveillant) et lui attribuer un compte de service. Ensuite, il peut divulguer le jeton du compte de service à partir des métadonnées pour escalader les privilèges vers celui-ci. Certains privilèges pour déclencher la fonction peuvent être nécessaires.

Des scripts d'exploitation pour cette méthode peuvent être trouvés ici et ici et le fichier .zip préconstruit peut être trouvé ici.

cloudfunctions.functions.update, cloudfunctions.functions.sourceCodeSet, iam.serviceAccounts.actAs

Un attaquant avec ces privilèges peut modifier le code d'une fonction et même modifier le compte de service attaché dans le but d'extraire le jeton. Certains privilèges pour déclencher la fonction peuvent être nécessaires.

Le script d'exploitation pour cette méthode peut être trouvé ici.

cloudfunctions.functions.sourceCodeSet

Avec cette autorisation, vous pouvez obtenir une URL signée pour pouvoir téléverser un fichier dans un bucket de fonction (mais le code de la fonction ne sera pas modifié, vous devez toujours le mettre à jour)

# 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 '{}'

Pas vraiment sûr de l'utilité de cette seule autorisation du point de vue d'un attaquant, mais bon à savoir.

cloudfunctions.functions.setIamPolicy, iam.serviceAccounts.actAs

Accordez-vous l'un des privilèges précédents .update ou .create pour escalader.

cloudfunctions.functions.update

Avoir uniquement les autorisations cloudfunctions, sans iam.serviceAccounts.actAs, ne vous permettra pas de mettre à jour la fonction DONC CE N'EST PAS UNE ESCALADE DE PRIVILÈGES VALIDE.

Autorisations d'écriture sur le bucket

Un attaquant avec des autorisations d'écriture sur le bucket où le code des Cloud Functions est stocké pourra modifier le code en l'écrasant le function_code.zip et pourra exécuter du code arbitraire une fois qu'il est exécuté.

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks :

Dernière mise à jour