GCP - Public Buckets Privilege Escalation

支持 HackTricks

存储桶权限提升

如果存储桶策略允许“allUsers”或“allAuthenticatedUsers”写入他们的存储桶策略storage.buckets.setIamPolicy 权限),那么任何人都可以修改存储桶策略并授予自己完全访问权限。

检查权限

检查存储桶权限有两种方法。第一种是通过请求 https://www.googleapis.com/storage/v1/b/BUCKET_NAME/iam 或运行 gsutil iam get gs://BUCKET_NAME 来请求它们。

然而,如果您的用户(可能属于“allUsers”或“allAuthenticatedUsers”)没有权限读取存储桶的 iam 策略(storage.buckets.getIamPolicy),那将无法工作。

另一种始终有效的选项是使用存储桶的 testPermissions 端点来确定您是否拥有指定的权限,例如访问: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

提升权限

为了将 Storage Admin 授予 allAuthenticatedUsers,可以运行:

gsutil iam ch allAuthenticatedUsers:admin gs://BUCKET_NAME

另一个攻击方法是删除存储桶并在您的帐户中重新创建它以窃取所有权

参考文献

支持HackTricks

Last updated