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

This commit is contained in:
Translator
2025-02-25 21:58:11 +00:00
parent 10f204c2c9
commit f03e949349
3 changed files with 138 additions and 1 deletions

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,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 <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"
```
### 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}}