GCP - Public Buckets Privilege Escalation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Si la política del bucket permitía a “allUsers” o “allAuthenticatedUsers” escribir en su política de bucket (el permiso storage.buckets.setIamPolicy), entonces cualquiera puede modificar la política del bucket y otorgarse acceso total.
Hay 2 formas de verificar los permisos sobre un bucket. La primera es solicitarlos haciendo una petición a https://www.googleapis.com/storage/v1/b/BUCKET_NAME/iam
o ejecutando gsutil iam get gs://BUCKET_NAME
.
Sin embargo, si tu usuario (potencialmente perteneciente a "allUsers" o "allAuthenticatedUsers") no tiene permisos para leer la política iam del bucket (storage.buckets.getIamPolicy), eso no funcionará.
La otra opción que siempre funcionará es usar el endpoint testPermissions del bucket para averiguar si tienes el permiso especificado, por ejemplo accediendo 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
Para otorgar Storage Admin
a allAuthenticatedUsers
es posible ejecutar:
Otro ataque sería eliminar el bucket y recrearlo en tu cuenta para robar la propiedad.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)