Az - Key Vault
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
基本信息
Azure Key Vault 是微软 Azure 提供的云服务,用于安全存储和管理敏感信息,如 机密、密钥、证书和密码。它充当一个集中式存储库,提供安全访问和细粒度控制,使用 Azure Active Directory (Azure AD)。从安全的角度来看,Key Vault 为加密密钥提供 硬件安全模块 (HSM) 保护,确保机密在静态和传输过程中都被加密,并通过 基于角色的访问控制 (RBAC) 和策略提供强大的访问管理。它还具有 审计日志、与 Azure Monitor 的集成以跟踪访问,以及自动密钥轮换以减少长期密钥暴露的风险。
有关完整细节,请参见 Azure Key Vault REST API 概述。
根据 文档,Vault 支持存储软件和 HSM 支持的密钥、机密和证书。托管 HSM 池仅支持 HSM 支持的密钥。
Vaults 的 URL 格式 为 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是系统生成的,可选用于指定 对象的唯一版本。
为了访问存储在保管库中的机密,在创建保管库时可以选择两种权限模型:
- 保管库访问策略
- Azure RBAC(最常见和推荐)
- 您可以在 https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/security#microsoftkeyvault 找到所有支持的细粒度权限。
访问控制
对 Key Vault 资源的访问由两个平面控制:
- 管理平面,其目标是 management.azure.com。
- 用于管理密钥保管库和 访问策略。仅支持 Azure 基于角色的访问控制 (RBAC)。
- 数据平面,其目标是
<vault-name>.vault.azure.com。 - 用于管理和访问 密钥保管库中的数据(密钥、机密和证书)。这支持 密钥保管库访问策略 或 Azure RBAC。
像 Contributor 这样的角色在管理平面中具有管理访问策略的权限,可以通过修改访问策略来访问机密。
Key Vault RBAC 内置角色
.png)
网络访问
在 Azure Key Vault 中,可以设置 防火墙 规则,以 仅允许来自指定虚拟网络或 IPv4 地址范围的数据平面操作。此限制也会影响通过 Azure 管理门户的访问;如果用户的登录 IP 地址不在授权范围内,则无法列出密钥、机密或证书。
要分析和管理这些设置,您可以使用 Azure CLI:
az keyvault show --name name-vault --query networkAcls
前一个命令将显示 name-vault 的防火墙设置,包括启用的 IP 范围和拒绝流量的策略。
此外,可以创建一个 私有端点 以允许与保管库的私有连接。
删除保护
创建密钥保管库时,允许删除的最小天数为 7。这意味着每当您尝试删除该密钥保管库时,它需要 至少 7 天才能被删除。
然而,可以创建一个 禁用清除保护 的保管库,这允许在保留期内清除密钥保管库和对象。尽管一旦为保管库启用此保护,就无法禁用。
枚举
# 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 Post Exploitation
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
HackTricks Cloud

