Az - Blob Storage

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Базова інформація

З документації: Azure Blob storage - це об'єктове сховище Microsoft для хмари. Blob storage оптимізоване для зберігання великих обсягів неструктурованих даних. Неструктуровані дані - це дані, які не відповідають певній моделі даних або визначенню, такі як текстові або бінарні дані.

Blob storage пропонує три типи ресурсів:

  • Рахунок сховища (унікальне ім'я)

  • Контейнер у рахунку сховища (папка)

  • Blob у контейнері

Різновиди сховищ

Blob storage

https://<storage-account>.blob.core.windows.net https://<stg-acc>.blob.core.windows.net/<container-name>?restype=container&comp=list

Azure Data Lake Storage Gen2

https://<storage-account>.dfs.core.windows.net

Azure Files

https://<storage-account>.file.core.windows.net

Queue storage

https://<storage-account>.queue.core.windows.net

Table storage

https://<storage-account>.table.core.windows.net

Доступ до сховища

  • Використовуйте принципи Azure AD через підтримувані RBAC ролі.

  • Ключі доступу: Використовуйте ключі доступу до рахунку сховища. Це надає повний доступ до рахунку сховища.

  • Підпис спільного доступу (SAS): Обмежений за часом та конкретні дозволи.

  • Ви можете створити URL-адресу SAS з ключем доступу (складніше виявити).

  • Оскільки SAS генерується з ключа доступу, якщо він оновлюється, SAS перестає працювати.

Публічне викладення

Якщо "Дозволити загальний доступ до Blob" увімкнено (за замовчуванням вимкнено), можливо:

  • Надати загальний доступ для читання blobs (потрібно знати ім'я).

  • Перелічити blobs контейнера та читати їх.

Підключення до сховища

Якщо ви знайдете будь-яке сховище, до якого можна підключитися, ви можете використовувати інструмент Microsoft Azure Storage Explorer для цього.

URL-адреси SAS

З документації: Спільний підпис доступу (SAS) надає безпечний делегований доступ до ресурсів у вашому рахунку сховища. За допомогою SAS у вас є дрібне керування тим, як клієнт може отримати доступ до ваших даних. Наприклад:

  • Які ресурси може отримати клієнт.

  • Які дозволи вони мають на ці ресурси.

  • Як довго дійсний SAS.

URL-адреса SAS виглядає так: https://<container_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D

Використовуйте Storage Explorer для доступу до даних або Python:

#pip3 install azure-storage-blob
from azure.storage.blob import BlobServiceClient

# List containers
conn_str="<SAS URL>"
svc = BlobServiceClient.from_connection_string(conn_str=conn_str)
for c in svc.list_containers():
print(c['name']

# List blobs inside conteiner
container = svc.get_container_client(container="<container_name>")
for b in container.list_blobs():
print(b['name']

# Download file
blob = svc.get_blob_client(container="<container_name>",blob="<blob_name>")
with open("download.out","wb") as f:
f.write(blob.download_blob().readall())

SAS-токен делегування користувача

Ви можете захистити спільний доступ до підпису (SAS) для доступу до контейнера, каталогу або блобу, використовуючи або ідентифікатор Azure Active Directory (Azure AD) або ключ облікового запису. Щоб створити SAS-токен делегування користувача, спочатку потрібно запросити ключ делегування користувача, який потім використовується для підпису SAS.

Підтримка надається для Спільного доступу до підпису, делегованого користувачем (SAS) як у Azure Blob Storage, так і в Azure Data Lake Storage Gen2. Проте важливо зауважити, що Збережені політики доступу несумісні з SAS-токеном делегування користувача.

Зверніть увагу, що SAS-токен делегування користувача захищений ідентифікаторами Azure AD, а не ключами облікового запису. Це запобігає клієнтам/додаткам зберігати/отримувати ключі зберігання для створення SAS.

SAS сервісу

SAS сервісу захищений ключем облікового запису зберігання. SAS сервісу делегує доступ до ресурсу лише в одному з сервісів Azure Storage: зберігання блобів, зберігання черг, зберігання таблиць або Azure Files. URI для SAS на рівні сервісу складається з URI до ресурсу, для якого SAS делегує доступ, за яким слідує токен SAS.

Щоб використовувати ідентифікатори Azure Active Directory (Azure AD) для захисту SAS для контейнера або блобу, використовуйте SAS делегування користувача.

SAS облікового запису

SAS облікового запису захищений одним з ключів облікового запису зберігання (їх є 2). SAS облікового запису делегує доступ до ресурсів в одному або декількох сервісах зберігання. Усі операції, доступні через SAS на рівні сервісу або делегування користувача, також доступні через SAS облікового запису.

з документів: Створюючи SAS облікового запису, ви можете:

  • Делегувати доступ до операцій на рівні сервісу, які наразі недоступні зі специфічним SAS для сервісу, таких як операції Get/Set Service Properties та Get Service Stats.

  • Делегувати доступ до більш ніж одного сервісу в обліковому записі зберігання одночасно. Наприклад, ви можете делегувати доступ до ресурсів як в Azure Blob Storage, так і в Azure Files, використовуючи SAS облікового запису.

  • Делегувати доступ до операцій запису та видалення для контейнерів, черг, таблиць та файлових ресурсів, які недоступні зі специфічним SAS для об'єкта.

  • Вказати IP-адресу або діапазон IP-адрес, з яких приймати запити.

  • Вказати протокол HTTP, з якого приймати запити (або HTTPS, або HTTP/HTTPS).

Перелік

# Get storage accounts
az storage account list #Get the account name from here

# Get keys to authenticate
az storage account keys list --account-name <name>

# Get shares
az storage share list --account-name <name> --account-key <key>

# Get dirs/files inside the share
az storage file list --account-name <name> --share-name <share-name> --account-key <key>
## If type is "dir", you can continue enumerationg files inside of it
az storage file list --account-name <name> --share-name <prev_dir/share-name> --account-key <key>

# Download a complete share (with directories and files inside of them)
az storage file download-batch -d . --source <share-name> --account-name <name> --account-key <key>

Посилання

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated