GCP - Public Buckets Privilege Escalation

Підтримайте HackTricks

Підвищення Привілеїв Бакетів

Якщо політика бакета дозволяє або “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, можна виконати:

gsutil iam ch allAuthenticatedUsers:admin gs://BUCKET_NAME

Інша атака полягає в тому, щоб видалити бакет і відтворити його у своєму обліковому записі, щоб вкрасти власність.

Посилання

Support HackTricks

Last updated