GCP - Public Buckets Privilege Escalation
버킷 권한 상승
만약 버킷 정책이 "allUsers" 또는 "allAuthenticatedUsers"에게 버킷 정책을 쓰는 권한(storage.buckets.setIamPolicy 권한)을 허용한다면, 누구나 버킷 정책을 수정하고 자신에게 완전한 액세스 권한을 부여할 수 있습니다.
권한 확인
버킷의 권한을 확인하는 방법은 2가지입니다. 첫 번째 방법은 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
에게 부여하려면 다음을 실행할 수 있습니다:
다른 공격 방법은 버킷을 제거하고 소유권을 훔쳐서 자신의 계정에 다시 생성하는 것입니다.
참고 자료
最終更新