GCP - Public Buckets Privilege Escalation
Buckets Privilege Escalation
Se la policy del bucket consente a “allUsers” o “allAuthenticatedUsers” di scrivere nella loro policy del bucket (il permesso storage.buckets.setIamPolicy), allora chiunque può modificare la policy del bucket e concedersi accesso completo.
Check Permissions
Ci sono 2 modi per controllare i permessi su un bucket. Il primo è richiederli facendo una richiesta a https://www.googleapis.com/storage/v1/b/BUCKET_NAME/iam
o eseguendo gsutil iam get gs://BUCKET_NAME
.
Tuttavia, se il tuo utente (potenzialmente appartenente a "allUsers" o "allAuthenticatedUsers") non ha permessi per leggere la policy iam del bucket (storage.buckets.getIamPolicy), questo non funzionerà.
L'altra opzione che funzionerà sempre è utilizzare l'endpoint testPermissions del bucket per capire se hai il permesso specificato, ad esempio accedendo a: 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
Escalating
Per concedere Storage Admin
a allAuthenticatedUsers
è possibile eseguire:
Un altro attacco sarebbe rimuovere il bucket e ricrearlo nel tuo account per rubarne la proprietà.
Riferimenti
Last updated