Az - Key Vault

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배우세요

HackTricks를 지원하는 다른 방법:

기본 정보

문서에서 Azure Key Vault는 안전하게 비밀을 저장하고 액세스하는 클라우드 서비스입니다. 비밀은 API 키, 비밀번호, 인증서 또는 암호화 키와 같이 액세스를 엄격히 제어하고 싶은 모든 것을 의미합니다. Key Vault 서비스는 두 가지 유형의 컨테이너를 지원합니다: 보관함(vaults)과 관리형 하드웨어 보안 모듈(HSM) 풀. 보관함은 소프트웨어 및 HSM 지원 키, 비밀 및 인증서를 저장하는 데 사용됩니다. 관리형 HSM 풀은 HSM 지원 키만 지원합니다. 자세한 내용은 Azure Key Vault REST API 개요를 참조하세요.

URL 형식https://{vault-name}.vault.azure.net/{object-type}/{object-name}/{object-version}입니다. 여기서:

  • vault-name은 키 보관함의 전역적으로 고유한 이름입니다.

  • object-type은 "keys", "secrets" 또는 "certificates"가 될 수 있습니다.

  • object-name은 키 보관함 내의 고유한 객체 이름입니다.

  • object-version은 시스템에서 생성되며 객체의 고유한 버전을 지정하는 데 선택적으로 사용됩니다.

보관함에 저장된 비밀에 액세스하려면 2가지 권한 모델을 사용할 수 있습니다:

  • 보관함 액세스 정책

  • Azure RBAC

액세스 제어

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를 사용할 수 있습니다:

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

이전 명령은 name-vault의 방화벽 설정을 표시합니다. 이 설정에는 허용된 IP 범위 및 거부된 트래픽에 대한 정책이 포함됩니다.

열거

# Get keyvault token
curl "$IDENTITY_ENDPOINT?resource=https://vault.azure.net&api-version=2017-09-01" -H secret:$IDENTITY_HEADER

# Connect with PS AzureAD
## $token from management API
Connect-AzAccount -AccessToken $token -AccountId 1937ea5938eb-10eb-a365-10abede52387 -KeyVaultAccessToken $keyvaulttoken

# List vaults
Get-AzKeyVault
# Get secrets names from the vault
Get-AzKeyVaultSecret -VaultName <vault_name>
# Get secret values
Get-AzKeyVaultSecret -VaultName <vault_name> -Name <secret_name> –AsPlainText
#!/bin/bash

# Dump all keyvaults from the subscription

# Define Azure subscription ID
AZ_SUBSCRIPTION_ID="your-subscription-id"

# Specify the filename for output
CSV_OUTPUT="vault-names-list.csv"

# Login to Azure account
az login

# Select the desired subscription
az account set --subscription $AZ_SUBSCRIPTION_ID

# Retrieve all resource groups within the subscription
AZ_RESOURCE_GROUPS=$(az group list --query "[].name" -o tsv)

# Initialize the CSV file with headers
echo "Vault Name,Associated Resource Group" > $CSV_OUTPUT

# Iterate over each resource group
for GROUP in $AZ_RESOURCE_GROUPS
do
# Fetch key vaults within the current resource group
VAULT_LIST=$(az keyvault list --resource-group $GROUP --query "[].name" -o tsv)

# Process each key vault
for VAULT in $VAULT_LIST
do
# Extract the key vault's name
VAULT_NAME=$(az keyvault show --name $VAULT --resource-group $GROUP --query "name" -o tsv)

# Append the key vault name and its resource group to the file
echo "$VAULT_NAME,$GROUP" >> $CSV_OUTPUT
done
done
htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 영웅까지 AWS 해킹을 배우세요!

HackTricks를 지원하는 다른 방법:

最終更新