Az - Table Storage

Reading time: 4 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Основна інформація

Azure Table Storage - це NoSQL сховище ключ-значення, призначене для зберігання великих обсягів структурованих, нереляційних даних. Воно пропонує високу доступність, низьку затримку та масштабованість для ефективної обробки великих наборів даних. Дані організовані в таблиці, кожна сутність ідентифікується за допомогою ключа розділу та ключа рядка, що забезпечує швидкий пошук. Воно підтримує такі функції, як шифрування в спокої, контроль доступу на основі ролей та підписи спільного доступу для безпечного, керованого зберігання, придатного для широкого спектру застосувань.

Не існує вбудованого механізму резервного копіювання для таблиць.

Ключі

PartitionKey

  • PartitionKey групує сутності в логічні розділи. Сутності з однаковим PartitionKey зберігаються разом, що покращує продуктивність запитів і масштабованість.
  • Приклад: У таблиці, що зберігає дані про співробітників, PartitionKey може представляти відділ, наприклад, "HR" або "IT".

RowKey

  • RowKey є унікальним ідентифікатором для сутності в межах розділу. У поєднанні з PartitionKey він забезпечує, що кожна сутність у таблиці має глобально унікальний ідентифікатор.
  • Приклад: Для розділу "HR" RowKey може бути ідентифікатором співробітника, наприклад, "12345".

Інші властивості (Користувацькі властивості)

  • Окрім PartitionKey та RowKey, сутність може мати додаткові користувацькі властивості для зберігання даних. Це визначені користувачем властивості, які діють як стовпці в традиційній базі даних.
  • Властивості зберігаються у вигляді пар ключ-значення.
  • Приклад: Name, Age, Title можуть бути користувацькими властивостями для співробітника.

Перерахування

bash
# Get storage accounts
az storage account list

# List tables
az storage table list --account-name <name>

# Read table
az storage entity query \
--account-name <name> \
--table-name <t-name> \
--top 10

# Write table
az storage entity insert \
--account-name <STORAGE_ACCOUNT_NAME> \
--table-name <TABLE_NAME> \
--entity PartitionKey=<PARTITION_KEY> RowKey=<ROW_KEY> <PROPERTY_KEY>=<PROPERTY_VALUE>

# Write example
az storage entity insert \
--account-name mystorageaccount \
--table-name mytable \
--entity PartitionKey=HR RowKey=12345 Name="John Doe" Age=30 Title="Manager"

# Update row
az storage entity merge \
--account-name mystorageaccount \
--table-name mytable \
--entity PartitionKey=pk1 RowKey=rk1 Age=31

note

За замовчуванням az cli використовуватиме ключ облікового запису для підписання ключа та виконання дії. Щоб використовувати привілеї Entra ID, використовуйте параметри --auth-mode login.

tip

Використовуйте параметр --account-key, щоб вказати ключ облікового запису, який потрібно використовувати
Використовуйте параметр --sas-token з токеном SAS для доступу через токен SAS

Підвищення привілеїв

Так само, як і з підвищенням привілеїв зберігання:

Az - Storage Privesc

Постексплуатація

Az - Table Storage Post Exploitation

Персистентність

Так само, як і з персистентністю зберігання:

Az - Storage Persistence

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks