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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Основна інформація
Azure Table Storage - це NoSQL сховище ключ-значення, призначене для зберігання великих обсягів структурованих, нереляційних даних. Воно пропонує високу доступність, низьку затримку та масштабованість для ефективної обробки великих наборів даних. Дані організовані в таблиці, кожна сутність ідентифікується за допомогою ключа розділу та ключа рядка, що забезпечує швидкий пошук. Воно підтримує такі функції, як шифрування в спокої, контроль доступу на основі ролей та підписи спільного доступу для безпечного, керованого зберігання, придатного для широкого спектру застосувань.
Не існує вбудованого механізму резервного копіювання для таблиць.
Ключі
PartitionKey
- PartitionKey групує сутності в логічні розділи. Сутності з однаковим PartitionKey зберігаються разом, що покращує продуктивність запитів і масштабованість.
- Приклад: У таблиці, що зберігає дані про співробітників,
PartitionKey
може представляти відділ, наприклад,"HR"
або"IT"
.
RowKey
- RowKey є унікальним ідентифікатором для сутності в межах розділу. У поєднанні з PartitionKey він забезпечує, що кожна сутність у таблиці має глобально унікальний ідентифікатор.
- Приклад: Для розділу
"HR"
RowKey
може бути ідентифікатором співробітника, наприклад,"12345"
.
Інші властивості (Користувацькі властивості)
- Окрім PartitionKey та RowKey, сутність може мати додаткові користувацькі властивості для зберігання даних. Це визначені користувачем властивості, які діють як стовпці в традиційній базі даних.
- Властивості зберігаються у вигляді пар ключ-значення.
- Приклад:
Name
,Age
,Title
можуть бути користувацькими властивостями для співробітника.
Перерахування
# 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 - Table Storage Post Exploitation
Персистентність
Так само, як і з персистентністю зберігання:
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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.