Az - Key Vault

Reading time: 7 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

Basic Information

Azure Key Vault - це хмарна служба, що надається Microsoft Azure для безпечного зберігання та управління чутливою інформацією, такою як секрети, ключі, сертифікати та паролі. Вона діє як централізований репозиторій, пропонуючи безпечний доступ і детальний контроль за допомогою Azure Active Directory (Azure AD). З точки зору безпеки, Key Vault забезпечує захист апаратного модуля безпеки (HSM) для криптографічних ключів, гарантує, що секрети шифруються як в спокої, так і в русі, і пропонує надійне управління доступом через контроль доступу на основі ролей (RBAC) та політики. Вона також має журналювання аудиту, інтеграцію з Azure Monitor для відстеження доступу та автоматизовану ротацію ключів для зменшення ризику від тривалого відкриття ключів.

Дивіться Azure Key Vault REST API overview для отримання повних деталей.

Згідно з документацією, Vaults підтримують зберігання програмних та HSM-підтримуваних ключів, секретів і сертифікатів. Керовані HSM пули підтримують лише HSM-підтримувані ключі.

URL формат для vaults - https://{vault-name}.vault.azure.net/{object-type}/{object-name}/{object-version}, а для керованих HSM пулів - https://{hsm-name}.managedhsm.azure.net/{object-type}/{object-name}/{object-version}

Де:

  • vault-name - це глобально унікальне ім'я ключового сховища
  • object-type може бути "keys", "secrets" або "certificates"
  • object-name - унікальне ім'я об'єкта в ключовому сховищі
  • object-version - генерується системою і використовується для адресації унікальної версії об'єкта.

Щоб отримати доступ до секретів, збережених у сховищі, можна вибрати між 2 моделями дозволів під час створення сховища:

Access Control

Доступ до ресурсу Key Vault контролюється двома площинами:

  • управлінська площина, ціль якої - management.azure.com.
  • Використовується для управління ключовим сховищем та політиками доступу. Підтримується лише контроль доступу на основі ролей Azure (RBAC).
  • площина даних, ціль якої - <vault-name>.vault.azure.com.
  • Використовується для управління та доступу до даних (ключів, секретів і сертифікатів) в ключовому сховищі. Це підтримує політики доступу до ключового сховища або Azure RBAC.

Роль, така як Contributor, яка має дозволи в управлінській площині для управління політиками доступу, може отримати доступ до секретів, змінюючи політики доступу.

Key Vault RBAC Built-In Roles

Network Access

У Azure Key Vault можна налаштувати правила брандмауера, щоб дозволити операції площини даних лише з вказаних віртуальних мереж або діапазонів IPv4 адрес. Це обмеження також впливає на доступ через портал адміністрування Azure; користувачі не зможуть перерахувати ключі, секрети або сертифікати в ключовому сховищі, якщо їх IP-адреса не входить до авторизованого діапазону.

Для аналізу та управління цими налаштуваннями ви можете використовувати Azure CLI:

bash
az keyvault show --name name-vault --query networkAcls

Попередня команда відобразить налаштування брандмауера name-vault, включаючи активовані діапазони IP та політики для забороненого трафіку.

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

Захист від видалення

Коли створюється ключовий сейф, мінімальна кількість днів для дозволу на видалення становить 7. Це означає, що щоразу, коли ви намагаєтеся видалити цей ключовий сейф, йому знадобиться принаймні 7 днів для видалення.

Однак можливо створити сейф з вимкненим захистом від очищення, що дозволяє очищати ключовий сейф та об'єкти під час періоду зберігання. Хоча, як тільки цей захист увімкнено для сейфа, його не можна вимкнути.

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

bash
# List all Key Vaults in the subscription
az keyvault list
# List Key Vaults in a specific Resource Group
az keyvault list --resource-group <ResourceGroupName>
az keyvault list --query '[].{name:name}' -o tsv # Get just the names
# Show details of a specific Key Vault
az keyvault show --name <KeyVaultName> # If accessPolicies, you can see them here
# List all keys in a Key Vault
az keyvault key list --vault-name <KeyVaultName>
# List all secrets in a Key Vault
az keyvault secret list --vault-name <KeyVaultName>
# Get versions of a secret
az keyvault secret list-versions --vault-name <KeyVaultName> --name <SecretName>
# List all certificates in a Key Vault
az keyvault certificate list --vault-name <KeyVaultName>
# List all deleted Key Vaults in the subscription
az keyvault list-deleted
# Get properties of a deleted Key Vault
az keyvault show-deleted --name <KeyVaultName>
# Get assigned roles
az role assignment list --include-inherited --scope "/subscriptions/<subscription-uuid>/resourceGroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<vault-name>"

# Get secret value
az keyvault secret show --vault-name <KeyVaultName> --name <SecretName>
# Get old versions secret value
az keyvault secret show --id https://<KeyVaultName>.vault.azure.net/secrets/<KeyVaultName>/<idOldVersion>

# List deleted key vaults
az keyvault secret list-deleted --vault-name <vault-name>

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

Az - Key Vault Privesc

Після Експлуатації

Az - Key Vault 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