Az - Key Vault

Reading time: 8 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Informações Básicas

Azure Key Vault é um serviço de nuvem fornecido pela Microsoft Azure para armazenar e gerenciar informações sensíveis de forma segura, como segredos, chaves, certificados e senhas. Ele atua como um repositório centralizado, oferecendo acesso seguro e controle detalhado usando o Azure Active Directory (Azure AD). Do ponto de vista de segurança, o Key Vault fornece proteção de módulo de segurança de hardware (HSM) para chaves criptográficas, garante que os segredos sejam criptografados tanto em repouso quanto em trânsito, e oferece gerenciamento de acesso robusto por meio de controle de acesso baseado em função (RBAC) e políticas. Ele também possui registro de auditoria, integração com o Azure Monitor para rastreamento de acesso e rotação automática de chaves para reduzir o risco de exposição prolongada de chaves.

Veja a visão geral da API REST do Azure Key Vault para detalhes completos.

De acordo com a documentação, os Vaults suportam o armazenamento de chaves de software e chaves suportadas por HSM, segredos e certificados. Os pools de HSM gerenciados suportam apenas chaves suportadas por HSM.

O formato de URL para vaults é https://{vault-name}.vault.azure.net/{object-type}/{object-name}/{object-version} e para pools de HSM gerenciados é: https://{hsm-name}.managedhsm.azure.net/{object-type}/{object-name}/{object-version}

Onde:

  • vault-name é o nome único global do cofre de chaves
  • object-type pode ser "keys", "secrets" ou "certificates"
  • object-name é o nome único do objeto dentro do cofre de chaves
  • object-version é gerado pelo sistema e opcionalmente usado para endereçar uma versão única de um objeto.

Para acessar os segredos armazenados no cofre, é possível selecionar entre 2 modelos de permissões ao criar o cofre:

Controle de Acesso

O acesso a um recurso do Key Vault é controlado por dois planos:

  • O plano de gerenciamento, cujo alvo é management.azure.com.
  • É usado para gerenciar o cofre de chaves e políticas de acesso. Apenas o controle de acesso baseado em função do Azure (RBAC) é suportado.
  • O plano de dados, cujo alvo é <vault-name>.vault.azure.com.
  • É usado para gerenciar e acessar os dados (chaves, segredos e certificados) no cofre de chaves. Isso suporta políticas de acesso ao cofre de chaves ou Azure RBAC.

Um papel como Contribuidor que tem permissões no plano de gerenciamento para gerenciar políticas de acesso pode obter acesso aos segredos modificando as políticas de acesso.

Funções Integradas do RBAC do Key Vault

Acesso à Rede

No Azure Key Vault, regras de firewall podem ser configuradas para permitir operações do plano de dados apenas de redes virtuais ou intervalos de endereços IPv4 especificados. Essa restrição também afeta o acesso através do portal de administração do Azure; os usuários não poderão listar chaves, segredos ou certificados em um cofre de chaves se o endereço IP de login não estiver dentro do intervalo autorizado.

Para analisar e gerenciar essas configurações, você pode usar o Azure CLI:

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

O comando anterior exibirá as configurações do firewall de name-vault, incluindo intervalos de IP habilitados e políticas para tráfego negado.

Além disso, é possível criar um endpoint privado para permitir uma conexão privada a um cofre.

Proteção contra Exclusão

Quando um cofre de chaves é criado, o número mínimo de dias para permitir a exclusão é 7. O que significa que sempre que você tentar excluir esse cofre de chaves, ele precisará de pelo menos 7 dias para ser excluído.

No entanto, é possível criar um cofre com proteção contra purga desativada, o que permite que o cofre de chaves e os objetos sejam purgados durante o período de retenção. Embora, uma vez que essa proteção esteja habilitada para um cofre, não pode ser desativada.

Enumeração

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>

Escalação de Privilégios

Az - Key Vault Privesc

Pós Exploração

Az - Key Vault Post Exploitation

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks