Анонимный доступ к блобам

Оригинальное исследование: Блог 0xPwN — Создание лаборатории уязвимостей Azure: Часть #1 — Анонимный доступ к блобам

«Учетные записи хранения» — это услуга, предоставляемая Azure для хранения данных в облаке. Учетная запись хранилища может использоваться для хранения:

  • блобов
  • файловые ресурсы
  • Таблицы
  • Очереди
  • Диски виртуальных машин

В этом руководстве мы сосредоточимся на разделе «Блоки». Блобы хранятся в контейнере, и у нас может быть несколько контейнеров в одной учетной записи хранилища. Когда мы создаем контейнер, Azure запрашивает разрешения, которые мы предоставляем для публичного доступа. Мы можем выбирать между:

  • Частный доступ — анонимный доступ запрещен
  • Доступ к блобам — мы можем получить анонимный доступ к блобам, если знаем полный URL (имя контейнера + имя блоба).
  • Доступ к контейнеру — мы можем получить анонимный доступ к блобам, если мы знаем имя контейнера (включена возможность просмотра списка каталогов, и мы можем видеть все файлы, хранящиеся внутри контейнера).

Как вы уже догадались, предоставлением разрешения Container Access можно легко воспользоваться для загрузки всех файлов, хранящихся в контейнере, без каких-либо разрешений, поскольку единственное, что требуется знать, это имя учетной записи хранилища и имя контейнера, которые можно перечислить с помощью списков слов.

Эксплуатация анонимного доступа к блобам

Существуют тысячи статей, объясняющих, как этим можно злоупотреблять и как искать небезопасные хранилища в Azure, но чтобы упростить ситуацию, я сделаю TL:DR. Один из самых простых способов — использовать MicroBurst, указать имя учетной записи хранилища для поиска, и он проверит, существуют ли контейнеры, на основе списка слов, сохраненного в Misc/permutations.txt:

PS > import-module .MicroBurst.psm1
PS> Invoke-EnumerateAzureBlobs -Base 0xpwnstorageacc
Found Storage Account - 0xpwnstorageacc.blob.core.windows.net
Found Container - 0xpwnstorageacc.blob.core.windows.net/public
Public File Available: https://0xpwnstorageacc.blob.core.windows.net/public/flag.txt
Вход в полноэкранный режим Выйти из полноэкранного режима

Альтернативный вариант — добавить ?restype=container&comp=list после имени контейнера:

https://<storage_account>.blob.core.windows.net/<container>?restype=container&comp=list
Войти в полноэкранный режим Выход из полноэкранного режима

Выход:


<EnumerationResults ContainerName="https://0xpwnstorageacc.blob.core.windows.net/public">
    <Blobs>
        <Blob>
            <Name>flag.txt</Name>
            <Url>
https://0xpwnstorageacc.blob.core.windows.net/public/flag.txt
</Url>
            <Properties>
                <Last-Modified>Sat, 05 Mar 2022 18:02:14 GMT</Last-Modified>
                <Etag>0x8D9FED247B7848D</Etag>
                <Content-Length>34</Content-Length>
                <Content-Type>text/plain</Content-Type>
                <Content-Encoding/>
                <Content-Language/>
                <Content-MD5>lur6Yvd173x6Zl1HUGvtag==</Content-MD5>
                <Cache-Control/>
                <BlobType>BlockBlob</BlobType>
                <LeaseStatus>unlocked</LeaseStatus>
            </Properties>
        </Blob>
    </Blobs>
    <NextMarker/>
</EnumerationResults>
Войти в полноэкранный режим Выход из полноэкранного режима

Оцените статью
Procodings.ru
Добавить комментарий