GCP - Public Buckets Privilege Escalation
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 :
Une autre attaque consisterait à supprimer le bucket et le recréer dans votre compte pour voler la propriété.
Références
Last updated