From f03e949349516f458edb1032c5263a80021937c2 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 25 Feb 2025 21:58:11 +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 | 101 ++++++++++++++++++ 3 files changed, 138 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..3a11e087b --- /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..d0e4f8d41 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-services/az-virtual-desktop.md @@ -0,0 +1,101 @@ +# 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 वर्चुअल मशीनों का संग्रह होते हैं जिन्हें सेशन होस्ट के रूप में कॉन्फ़िगर किया गया है, जो उपयोगकर्ताओं को वर्चुअल डेस्कटॉप और ऐप्स प्रदान करते हैं। दो मुख्य प्रकार हैं: +- **व्यक्तिगत होस्ट पूल**, जहां प्रत्येक वर्चुअल मशीन एकल उपयोगकर्ता के लिए समर्पित होती है, इसके वातावरण के साथ +- **पूल्ड होस्ट पूल**, जहां कई उपयोगकर्ता किसी भी उपलब्ध सेशन होस्ट पर संसाधनों को साझा करते हैं। इसमें एक कॉन्फ़िगर करने योग्य सेशन सीमा होती है और एक सेशन होस्ट कॉन्फ़िगरेशन Azure Virtual Desktop को कॉन्फ़िगरेशन के आधार पर सेशन होस्ट बनाने के लिए स्वचालित करने की अनुमति देता है। + +प्रत्येक होस्ट पूल में एक **पंजीकरण टोकन** होता है जिसका उपयोग होस्ट पूल के भीतर वर्चुअल मशीनों को पंजीकृत करने के लिए किया जाता है। + +### Application groups & Workspace +एप्लिकेशन समूह **उपयोगकर्ता पहुंच को नियंत्रित करते हैं** या तो एक पूर्ण डेस्कटॉप या होस्ट पूल के भीतर सेशन होस्ट पर उपलब्ध विशिष्ट सेट के अनुप्रयोगों के लिए। दो प्रकार हैं: +- **डेस्कटॉप एप्लिकेशन समूह**, जो उपयोगकर्ताओं को एक पूर्ण Windows डेस्कटॉप (व्यक्तिगत और पूल्ड होस्ट पूल दोनों के साथ उपलब्ध) तक पहुंच प्रदान करते हैं +- **RemoteApp समूह**, जो उपयोगकर्ताओं को व्यक्तिगत प्रकाशित अनुप्रयोगों तक पहुंच की अनुमति देते हैं (केवल पूल्ड होस्ट पूल के साथ उपलब्ध)। +एक होस्ट पूल में एक डेस्कटॉप एप्लिकेशन समूह हो सकता है लेकिन कई RemoteApp समूह हो सकते हैं। उपयोगकर्ताओं को विभिन्न होस्ट पूल में कई एप्लिकेशन समूहों में असाइन किया जा सकता है। यदि एक उपयोगकर्ता को एक ही होस्ट पूल के भीतर डेस्कटॉप और RemoteApp समूहों में असाइन किया गया है, तो वे केवल प्रशासकों द्वारा सेट किए गए पसंदीदा समूह प्रकार के संसाधनों को देखते हैं। + +एक **वर्कस्पेस** एक **एप्लिकेशन समूहों का संग्रह** है, जो उपयोगकर्ताओं को उनके लिए असाइन किए गए डेस्कटॉप और एप्लिकेशन समूहों तक पहुंच प्रदान करता है। प्रत्येक एप्लिकेशन समूह को एक वर्कस्पेस से लिंक किया जाना चाहिए, और यह एक समय में केवल एक वर्कस्पेस का हिस्सा हो सकता है। + +### Key Features +- **लचीला VM निर्माण**: Azure वर्चुअल मशीनों को सीधे बनाएं या बाद में Azure लोकल वर्चुअल मशीनें जोड़ें। +- **सुरक्षा विशेषताएँ**: उन्नत VM सुरक्षा के लिए Trusted Launch (सुरक्षित बूट, vTPM, अखंडता निगरानी) सक्षम करें (एक वर्चुअल नेटवर्क की आवश्यकता है)। Azure फ़ायरवॉल को एकीकृत कर सकते हैं और नेटवर्क सुरक्षा समूहों के माध्यम से ट्रैफ़िक को नियंत्रित कर सकते हैं। +- **डोमेन जॉइन**: अनुकूलन योग्य कॉन्फ़िगरेशन के साथ Active Directory डोमेन जॉइन का समर्थन। +- **डायग्नोस्टिक्स और मॉनिटरिंग**: लॉग और मैट्रिक्स को लॉग एनालिटिक्स, स्टोरेज खातों, या इवेंट हब के लिए स्ट्रीम करने के लिए डायग्नोस्टिक सेटिंग्स सक्षम करें। +- **कस्टम इमेज टेम्पलेट्स**: सेशन होस्ट जोड़ते समय उपयोग के लिए उन्हें बनाने और प्रबंधित करने के लिए। सामान्य अनुकूलन या अपने स्वयं के कस्टम स्क्रिप्ट को आसानी से जोड़ें। +- **वर्कस्पेस पंजीकरण**: उपयोगकर्ता पहुंच प्रबंधन को सरल बनाने के लिए नए या मौजूदा वर्कस्पेस के लिए डिफ़ॉल्ट डेस्कटॉप एप्लिकेशन समूहों को आसानी से पंजीकृत करें। + +### 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}}