GCP - Public Buckets Privilege Escalation
Eskalacja Uprawnień Buckets
Jeśli polityka bucketu pozwala na “allUsers” lub “allAuthenticatedUsers” na zapis do ich polityki bucketu (uprawnienie storage.buckets.setIamPolicy), to każdy może zmodyfikować politykę bucketu i przyznać sobie pełny dostęp.
Sprawdzanie Uprawnień
Są 2 sposoby na sprawdzenie uprawnień do bucketu. Pierwszym jest zapytanie o nie, 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że, jeśli twój użytkownik (potencjalnie należący do "allUsers" lub "allAuthenticatedUsers") nie ma uprawnień do odczytu polityki iam bucketu (storage.buckets.getIamPolicy), to to nie zadziała.
Drugą opcją, która zawsze zadziała, jest użycie punktu końcowego testPermissions bucketu, aby sprawdzić, czy masz określone uprawnienie, na przykład uzyskując 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 koszyka i ponowne utworzenie go na swoim koncie, aby ukraść własność.
References
Last updated