GCP - Public Buckets Privilege Escalation

Soutenir HackTricks

Escalade de privilèges des buckets

Si la politique du bucket permettait soit “allUsers” soit “allAuthenticatedUsers” de modifier leur politique de bucket (la permission storage.buckets.setIamPolicy), alors n'importe qui peut modifier la politique du bucket et se donner un accès complet.

Vérifier les permissions

Il existe 2 façons de vérifier les permissions sur un bucket. La première consiste à les demander en faisant une requête à https://www.googleapis.com/storage/v1/b/BUCKET_NAME/iam ou en exécutant gsutil iam get gs://BUCKET_NAME.

Cependant, si votre utilisateur (appartenant potentiellement à "allUsers" ou "allAuthenticatedUsers") n'a pas les permissions pour lire la politique IAM du bucket (storage.buckets.getIamPolicy), cela ne fonctionnera pas.

L'autre option qui fonctionnera toujours est d'utiliser le point de terminaison testPermissions du bucket pour déterminer si vous avez la permission spécifiée, par exemple en accédant à : https://www.googleapis.com/storage/v1/b/BUCKET_NAME/iam/testPermissions?permissions=storage.buckets.delete&permissions=storage.buckets.get&permissions=storage.buckets.getIamPolicy&permissions=storage.buckets.setIamPolicy&permissions=storage.buckets.update&permissions=storage.objects.create&permissions=storage.objects.delete&permissions=storage.objects.get&permissions=storage.objects.list&permissions=storage.objects.update

Escalade

Pour accorder Storage Admin à allAuthenticatedUsers, il est possible d'exécuter :

gsutil iam ch allAuthenticatedUsers:admin gs://BUCKET_NAME

Une autre attaque consisterait à supprimer le bucket et le recréer dans votre compte pour voler la propriété.

Références

Support HackTricks

Last updated