Az - Key Vault

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Información Básica

Azure Key Vault es un servicio en la nube proporcionado por Microsoft Azure para almacenar y gestionar de forma segura información sensible como secretos, claves, certificados y contraseñas. Actúa como un repositorio centralizado, ofreciendo acceso seguro y control detallado utilizando Azure Active Directory (Azure AD). Desde una perspectiva de seguridad, Key Vault proporciona protección de módulo de seguridad de hardware (HSM) para claves criptográficas, asegura que los secretos estén cifrados tanto en reposo como en tránsito, y ofrece una gestión de acceso robusta a través de control de acceso basado en roles (RBAC) y políticas. También cuenta con registro de auditoría, integración con Azure Monitor para rastrear el acceso, y rotación automática de claves para reducir el riesgo de exposición prolongada de claves.

Consulte Azure Key Vault REST API overview para obtener detalles completos.

Según la documentación, los Vaults admiten el almacenamiento de claves de software y respaldadas por HSM, secretos y certificados. Los grupos de HSM administrados solo admiten claves respaldadas por HSM.

El formato de URL para vaults es https://{vault-name}.vault.azure.net/{object-type}/{object-name}/{object-version} y para grupos de HSM administrados es: https://{hsm-name}.managedhsm.azure.net/{object-type}/{object-name}/{object-version}

Donde:

  • vault-name es el nombre único global del key vault
  • object-type puede ser “keys”, “secrets” o “certificates”
  • object-name es el nombre único del objeto dentro del key vault
  • object-version es generado por el sistema y se utiliza opcionalmente para dirigirse a una versión única de un objeto.

Para acceder a los secretos almacenados en el vault, es posible seleccionar entre 2 modelos de permisos al crear el vault:

Control de Acceso

El acceso a un recurso de Key Vault se controla mediante dos planos:

  • El plano de gestión, cuyo objetivo es management.azure.com.
  • Se utiliza para gestionar el key vault y las políticas de acceso. Solo se admite el control de acceso basado en roles de Azure (RBAC).
  • El plano de datos, cuyo objetivo es <vault-name>.vault.azure.com.
  • Se utiliza para gestionar y acceder a los datos (claves, secretos y certificados) en el key vault. Esto admite políticas de acceso al key vault o Azure RBAC.

Un rol como Contributor que tiene permisos en el plano de gestión para gestionar políticas de acceso puede acceder a los secretos modificando las políticas de acceso.

Roles Integrados de RBAC de Key Vault

Acceso a la Red

En Azure Key Vault, se pueden establecer reglas de firewall para permitir operaciones del plano de datos solo desde redes virtuales específicas o rangos de direcciones IPv4. Esta restricción también afecta el acceso a través del portal de administración de Azure; los usuarios no podrán listar claves, secretos o certificados en un key vault si su dirección IP de inicio de sesión no está dentro del rango autorizado.

Para analizar y gestionar estas configuraciones, puede utilizar el Azure CLI:

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

El comando anterior mostrará la configuración del firewall de name-vault, incluyendo rangos de IP habilitados y políticas para tráfico denegado.

Además, es posible crear un punto final privado para permitir una conexión privada a un vault.

Protección contra Eliminación

Cuando se crea un key vault, el número mínimo de días para permitir la eliminación es 7. Lo que significa que cada vez que intentes eliminar ese key vault necesitará al menos 7 días para ser eliminado.

Sin embargo, es posible crear un vault con protección contra purga deshabilitada, lo que permite que el key vault y los objetos sean purgados durante el período de retención. Aunque, una vez que esta protección está habilitada para un vault, no se puede deshabilitar.

Enumeración

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

Escalación de Privilegios

Az - Key Vault Privesc

Post Explotación

Az - Key Vault Post Exploitation

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks