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
, можна виконати:
Інша атака полягає в тому, щоб видалити бакет і відтворити його у своєму обліковому записі, щоб вкрасти право власності.
References
Last updated