From 62d813a60ee6cedb4707ea121e8864b495495d08 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 25 Feb 2025 21:58:08 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation --- src/SUMMARY.md | 5 +- .../az-virtual-desktop-privesc.md | 33 ++++++ .../az-services/az-virtual-desktop.md | 102 ++++++++++++++++++ 3 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-desktop-privesc.md create mode 100644 src/pentesting-cloud/azure-security/az-services/az-virtual-desktop.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index c9736abf4..17ab8f63d 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -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) diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-desktop-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-desktop-privesc.md new file mode 100644 index 000000000..c74d33522 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-desktop-privesc.md @@ -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//resourceGroups//providers/Microsoft.DesktopVirtualization/applicationGroups//providers/Microsoft.Authorization/roleAssignments/?api-version=2022-04-01" \ +--body '{ +"properties": { +"roleDefinitionId": "/subscriptions//providers/Microsoft.Authorization/roleDefinitions/1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63", +"principalId": "" +} +}' +``` +Крім того, ви можете змінити користувача віртуальної машини та пароль для доступу до неї. +```bash +az vm user update \ +--resource-group \ +--name \ +--username \ +--password +``` +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-virtual-desktop.md b/src/pentesting-cloud/azure-security/az-services/az-virtual-desktop.md new file mode 100644 index 000000000..4b011f860 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-services/az-virtual-desktop.md @@ -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 + +Host pools в Azure Virtual Desktop - це колекції віртуальних машин Azure, налаштованих як хости сеансів, які надають віртуальні столи та додатки користувачам. Є два основних типи: +- **Особисті хост-пули**, де кожна віртуальна машина призначена для одного користувача, з його середовищем +- **Об'єднані хост-пули**, де кілька користувачів ділять ресурси на будь-якому доступному хості сеансу. Має налаштовуваний ліміт сеансів, а конфігурація хоста сеансу дозволяє Azure Virtual Desktop автоматизувати створення хостів сеансів на основі конфігурації. + +Кожен хост-пул має **токен реєстрації**, який використовується для реєстрації віртуальних машин у хост-пулі. + +### Application groups & Workspace +Групи додатків **контролюють доступ користувачів** до повного робочого столу або конкретних наборів додатків, доступних на хостах сеансів у хост-пулі. Є два типи: +- **Групи додатків робочого столу**, які надають користувачам доступ до повного робочого столу Windows (доступні як з особистими, так і з об'єднаними хост-пулами) +- **Групи RemoteApp**, які дозволяють користувачам отримувати доступ до окремих опублікованих додатків (доступні лише з об'єднаними хост-пулами). +Хост-пул може мати одну групу додатків робочого столу, але кілька груп RemoteApp. Користувачі можуть бути призначені до кількох груп додатків у різних хост-пулах. Якщо користувач призначений як до групи робочого столу, так і до групи RemoteApp у одному й тому ж хост-пулі, він бачить лише ресурси з переважного типу групи, встановленого адміністраторами. + +**Workspace** - це **колекція груп додатків**, що дозволяє користувачам отримувати доступ до робочих столів та груп додатків, призначених їм. Кожна група додатків повинна бути пов'язана з робочим простором, і вона може належати лише одному робочому простору одночасно. + +### Key Features +- **Гнучке створення ВМ**: Створюйте віртуальні машини Azure безпосередньо або додавайте локальні віртуальні машини Azure пізніше. +- **Функції безпеки**: Увімкніть Trusted Launch (безпечний завантаження, vTPM, моніторинг цілісності) для розширеної безпеки ВМ (необхідна віртуальна мережа). Може інтегрувати Azure Firewall і контролювати трафік через групи безпеки мережі. +- **Приєднання до домену**: Підтримка приєднання до домену Active Directory з налаштовуваними конфігураціями. +- **Діагностика та моніторинг**: Увімкніть налаштування діагностики для потокового запису журналів і метрик до Log Analytics, облікових записів зберігання або подій для моніторингу. +- **Шаблони користувацьких зображень**: Створюйте та керуйте ними для використання при додаванні хостів сеансів. Легко додавайте загальні налаштування або власні скрипти. +- **Реєстрація робочого простору**: Легко реєструйте групи додатків робочого столу за замовчуванням до нових або існуючих робочих просторів для спрощеного управління доступом користувачів. + +### Enumeration +```bash +az extension add --name desktopvirtualization + +# List HostPool of a Resource group +az desktopvirtualization hostpool list --resource-group + +# List Application Groups +az desktopvirtualization applicationgroup list --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//resourceGroups//providers/Microsoft.DesktopVirtualization/applicationGroups//providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" \ +| jq '.value[] | select((.properties.scope | ascii_downcase) == "/subscriptions//resourcegroups//providers/microsoft.desktopvirtualization/applicationgroups/")' + + +# List Workspace in a resource group +az desktopvirtualization workspace list --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" + +``` +### Connection + +Щоб підключитися до віртуального робочого столу через веб, ви можете отримати доступ через 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}}