GCP - Public Buckets Privilege Escalation

Support HackTricks

Buckets Privilege Escalation

Wenn die Bucket-Richtlinie entweder „allUsers“ oder „allAuthenticatedUsers“ erlaubte, in ihre Bucket-Richtlinie zu schreiben (die storage.buckets.setIamPolicy Berechtigung), dann kann jeder die Bucket-Richtlinie ändern und sich selbst vollen Zugriff gewähren.

Check Permissions

Es gibt 2 Möglichkeiten, die Berechtigungen für einen Bucket zu überprüfen. Die erste besteht darin, sie anzufordern, indem man eine Anfrage an https://www.googleapis.com/storage/v1/b/BUCKET_NAME/iam stellt oder gsutil iam get gs://BUCKET_NAME ausführt.

Wenn Ihr Benutzer (potenziell zu „allUsers“ oder „allAuthenticatedUsers“ gehörend) jedoch keine Berechtigungen hat, um die IAM-Richtlinie des Buckets zu lesen (storage.buckets.getIamPolicy), funktioniert das nicht.

Die andere Option, die immer funktioniert, besteht darin, den testPermissions-Endpunkt des Buckets zu verwenden, um herauszufinden, ob Sie die angegebene Berechtigung haben, indem Sie beispielsweise auf zugreifen: 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

Escalating

Um Storage Admin für allAuthenticatedUsers zu gewähren, ist es möglich, Folgendes auszuführen:

gsutil iam ch allAuthenticatedUsers:admin gs://BUCKET_NAME

Ein weiterer Angriff wäre es, den Bucket zu entfernen und ihn in Ihrem Konto neu zu erstellen, um die Eigentümerschaft zu stehlen.

References

Support HackTricks

Last updated