Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation

This commit is contained in:
Translator
2025-02-25 21:58:07 +00:00
parent 92d993e024
commit 47081bd563
3 changed files with 139 additions and 1 deletions

View File

@@ -431,6 +431,7 @@
- [Az - Static Web Applications](pentesting-cloud/azure-security/az-services/az-static-web-apps.md)
- [Az - Storage Accounts & Blobs](pentesting-cloud/azure-security/az-services/az-storage.md)
- [Az - Table Storage](pentesting-cloud/azure-security/az-services/az-table-storage.md)
- [Az - Virtual Desktop](pentesting-cloud/azure-security/az-services/az-virtual-desktop.md)
- [Az - Virtual Machines & Network](pentesting-cloud/azure-security/az-services/vms/README.md)
- [Az - Azure Network](pentesting-cloud/azure-security/az-services/vms/az-azure-network.md)
- [Az - Permissions for a Pentest](pentesting-cloud/azure-security/az-permissions-for-a-pentest.md)
@@ -485,11 +486,13 @@
- [Az - Static Web App Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-static-web-apps-privesc.md)
- [Az - Storage Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md)
- [Az - SQL Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md)
- [Az - Virtual Desktop Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-desktop-privesc.md)
- [Az - Virtual Machines & Network Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md)
- [Az - Persistence](pentesting-cloud/azure-security/az-persistence/README.md)
- [Az - Automation Accounts Persistence](pentesting-cloud/azure-security/az-persistence/az-automation-accounts-persistence.md)
- [Az - Cloud Shell Persistence](pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md)
- [Az - Queue SQL Persistence](pentesting-cloud/azure-security/az-persistence/az-sql-persistence.md)
- [Az - Logic Apps Persistence](pentesting-cloud/azure-security/az-persistence/az-logic-apps-persistence.md)
- [Az - SQL Persistence](pentesting-cloud/azure-security/az-persistence/az-sql-persistence.md)
- [Az - Queue Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-queue-persistence.md)
- [Az - VMs Persistence](pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md)
- [Az - Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-storage-persistence.md)

View File

@@ -0,0 +1,33 @@
# Az - Virtual Desktop Privesx
{{#include ../../../banners/hacktricks-training.md}}
## Azure Virtual Desktop Privesc
### `Microsoft.DesktopVirtualization/hostPools/retrieveRegistrationToken/action`
ホストプール内の仮想マシンを登録するために使用される登録トークンを取得できます。
```bash
az desktopvirtualization hostpool retrieve-registration-token -n testhostpool -g Resource_Group_1
```
### ("Microsoft.Authorization/roleAssignments/read", "Microsoft.Authorization/roleAssignments/write") && ("Microsoft.Compute/virtualMachines/read","Microsoft.Compute/virtualMachines/write","Microsoft.Compute/virtualMachines/extensions/read","Microsoft.Compute/virtualMachines/extensions/write")
この権限を持っていると、仮想デスクトップの仮想マシンにアクセスするために必要なアプリケーショングループにユーザー割り当てを追加できます。
```bash
az rest --method PUT \
--uri "https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.DesktopVirtualization/applicationGroups/<APP_GROUP_NAME>/providers/Microsoft.Authorization/roleAssignments/<NEW_ROLE_ASSIGNMENT_GUID>?api-version=2022-04-01" \
--body '{
"properties": {
"roleDefinitionId": "/subscriptions/<SUBSCRIPTION_ID>/providers/Microsoft.Authorization/roleDefinitions/1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63",
"principalId": "<USER_OBJECT_ID>"
}
}'
```
仮想マシンのユーザーとパスワードを変更してアクセスすることもできます。
```bash
az vm user update \
--resource-group <RESOURCE_GROUP_NAME> \
--name <VM_NAME> \
--username <USERNAME> \
--password <NEW_PASSWORD>
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -0,0 +1,102 @@
# Az - Virtual Desktop
{{#include ../../../banners/hacktricks-training.md}}
## Azure Virtual Desktop
Virtual Desktopは**デスクトップおよびアプリの仮想化サービス**です。これにより、ユーザーにフルWindowsデスクトップWindows 11、Windows 10、またはWindows Serverを含むをリモートで提供できます。個別のデスクトップまたは個別のアプリケーションを通じて提供されます。個人使用のためのシングルセッションセットアップと、マルチセッション環境をサポートしています。ユーザーは、ネイティブアプリまたはウェブブラウザを使用して、ほぼすべてのデバイスから接続できます。
### Host Pools
Azure Virtual Desktopのホストプールは、セッションホストとして構成されたAzure仮想マシンのコレクションであり、ユーザーに仮想デスクトップとアプリを提供します。主に2種類があります
- **パーソナルホストプール**:各仮想マシンが単一のユーザーに専用され、その環境を持ちます。
- **プールホストプール**複数のユーザーが利用可能なセッションホスト上でリソースを共有します。構成可能なセッション制限があり、セッションホストの構成により、Azure Virtual Desktopは構成に基づいてセッションホストの作成を自動化できます。
すべてのホストプールには、**登録トークン**があり、ホストプール内の仮想マシンを登録するために使用されます。
### Application groups & Workspace
アプリケーショングループは、ホストプール内のセッションホストで利用可能なフルデスクトップまたは特定のアプリケーションセットへの**ユーザーアクセスを制御**します。2種類あります
- **デスクトップアプリケーショングループ**ユーザーに完全なWindowsデスクトップへのアクセスを提供しますパーソナルおよびプールホストプールの両方で利用可能
- **RemoteAppグループ**:ユーザーが個別に公開されたアプリケーションにアクセスできるようにします(プールホストプールでのみ利用可能)。
ホストプールには1つのデスクトップアプリケーショングループがありますが、複数のRemoteAppグループを持つことができます。ユーザーは異なるホストプールにわたって複数のアプリケーショングループに割り当てることができます。同じホストプール内でデスクトップおよびRemoteAppグループの両方に割り当てられた場合、ユーザーは管理者によって設定された優先グループタイプのリソースのみを表示します。
**ワークスペース**は、ユーザーが割り当てられたデスクトップおよびアプリケーショングループにアクセスできる**アプリケーショングループのコレクション**です。各アプリケーショングループはワークスペースにリンクされている必要があり、一度に1つのワークスペースにのみ属することができます。
### Key Features
- **柔軟なVM作成**Azure仮想マシンを直接作成するか、後でAzureローカル仮想マシンを追加します。
- **セキュリティ機能**高度なVMセキュリティのためにTrusted Launchセキュアブート、vTPM、整合性監視を有効にします仮想ネットワークが必要です。Azure Firewallを統合し、Network Security Groupsを介してトラフィックを制御できます。
- **ドメイン参加**カスタマイズ可能な構成でActive Directoryドメイン参加をサポートします。
- **診断と監視**診断設定を有効にして、ログとメトリクスをLog Analytics、ストレージアカウント、またはイベントハブにストリーミングして監視します。
- **カスタムイメージテンプレート**:セッションホストを追加する際に使用するために作成および管理します。一般的なカスタマイズや独自のカスタムスクリプトを簡単に追加できます。
- **ワークスペース登録**:新しいまたは既存のワークスペースにデフォルトのデスクトップアプリケーショングループを簡単に登録し、ユーザーアクセス管理を簡素化します。
### Enumeration
```bash
az extension add --name desktopvirtualization
# List HostPool of a Resource group
az desktopvirtualization hostpool list --resource-group <Resource_Group>
# List Application Groups
az desktopvirtualization applicationgroup list --resource-group <Resource_Group>
# List Application Groups By Subscription
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/applicationGroups?api-version=2024-04-03"
# List Applications in a Application Group
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications?api-version=2024-04-03"
# List Assigned Users to the Application Group
az rest \
--method GET \
--url "https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.DesktopVirtualization/applicationGroups/<APP_GROUP_NAME>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" \
| jq '.value[] | select((.properties.scope | ascii_downcase) == "/subscriptions/<subscription_id_in_lowercase>/resourcegroups/<resource_group_name_in_lowercase>/providers/microsoft.desktopvirtualization/applicationgroups/<app_group_name_in_lowercase>")'
# List Workspace in a resource group
az desktopvirtualization workspace list --resource-group <Resource_Group>
# List Workspace in a subscription
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/workspaces?api-version=2024-04-03"
# List App Attach Package By Resource Group
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/appAttachPackages?api-version=2024-04-03"
# List App Attach Package By Subscription
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/appAttachPackages?api-version=2024-04-03"
# List Desktops
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops?api-version=2024-04-03"
# List MSIX Packages
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages?api-version=2024-04-03"
# List private endpoint connections associated with hostpool.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateEndpointConnections?api-version=2024-04-03"
# List private endpoint connections associated By Workspace.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateEndpointConnections?api-version=2024-04-03"
# List the private link resources available for a hostpool.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateLinkResources?api-version=2024-04-03"
# List the private link resources available for this workspace.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateLinkResources?api-version=2024-04-03"
# List sessionHosts/virtual machines.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts?api-version=2024-04-03"
# List start menu items in the given application group.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/startMenuItems?api-version=2024-04-03"
# List userSessions.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions?api-version=2024-04-03"
# List userSessions By Host Pool
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/userSessions?api-version=2024-04-03"
```
### 接続
ウェブ経由で仮想デスクトップに接続するには、https://client.wvd.microsoft.com/arm/webclient/ (最も一般的)または https://client.wvd.microsoft.com/webclient/index.html (クラシック)を通じてアクセスできます。
他の方法については、ここに記載されています [https://learn.microsoft.com/en-us/azure/virtual-desktop/users/connect-remote-desktop-client?tabs=windows](https://learn.microsoft.com/en-us/azure/virtual-desktop/users/connect-remote-desktop-client?tabs=windows)
## Privesc
{{#ref}}
../az-privilege-escalation/az-virtual-desktop-privesc.md
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}