GCP - Public Buckets Privilege Escalation
Eskalacja uprawnień kubełków
Jeśli polityka kubełka zezwala na zapisywanie do swojej polityki kubełka przez "allUsers" lub "allAuthenticatedUsers" (uprawnienie storage.buckets.setIamPolicy), każdy może zmodyfikować politykę kubełka i przyznać sobie pełny dostęp.
Sprawdź uprawnienia
Istnieją 2 sposoby sprawdzenia uprawnień dla kubełka. Pierwszy polega na ich zapytaniu, wysyłając żądanie do https://www.googleapis.com/storage/v1/b/BUCKET_NAME/iam
lub uruchamiając gsutil iam get gs://BUCKET_NAME
.
Jednak jeśli twoje konto użytkownika (potencjalnie należące do allUsers lub allAuthenticatedUsers") nie ma uprawnień do odczytu polityki iam kubełka (storage.buckets.getIamPolicy), to nie zadziała.
Inną opcją, która zawsze zadziała, jest użycie punktu końcowego testPermissions kubełka, aby sprawdzić, czy masz określone uprawnienie, na przykład dostęp do: 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
Eskalacja
Aby przyznać Storage Admin
dla allAuthenticatedUsers
, można uruchomić:
Innym atakiem byłoby usunięcie kubełka i ponowne utworzenie go w Twoim koncie, aby przejąć jego własność.
Referencje
Last updated