Az - Key Vault

Reading time: 10 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 概要を参照してください。

docsによると、Vault はソフトウェアおよび HSM バックの鍵、シークレット、証明書の保存をサポートしています。管理された HSM プールは HSM バックの鍵のみをサポートします。

ボールト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つの権限モデルのいずれかを選択できます:

アクセス制御

Key Vault リソースへのアクセスは、2つのプレーンによって制御されます:

  • 管理プレーン、そのターゲットは 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>
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>

権限昇格

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をサポートする