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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
기본 정보
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 지원 키만 지원합니다.
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
은 시스템에서 생성되며 객체의 고유 버전을 지정하는 데 선택적으로 사용됩니다.
볼트에 저장된 비밀에 접근하기 위해 볼트를 생성할 때 2가지 권한 모델 중에서 선택할 수 있습니다:
- Vault 액세스 정책
- 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>
# 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 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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.