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

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

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 моделями дозволів під час створення сховища:

Контроль доступу

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

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

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

Вбудовані ролі RBAC Key Vault

Мережевий доступ

У 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>
# 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>

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

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