Az - Key Vault

Reading time: 7 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: 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 개요를 참조하세요.

문서에 따르면, Vault는 소프트웨어 및 HSM 지원 키, 비밀 및 인증서를 저장하는 것을 지원합니다. 관리형 HSM 풀은 HSM 지원 키만 지원합니다.

VaultsURL 형식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와 같은 역할은 관리 평면에서 액세스 정책을 관리할 수 있는 권한을 가지고 있으며, 액세스 정책을 수정하여 비밀에 접근할 수 있습니다.

Key Vault RBAC 내장 역할

네트워크 액세스

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 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기