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

This commit is contained in:
Translator
2025-02-25 21:58:10 +00:00
parent cc7e2cae76
commit 360fe426d9
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`
Μπορείτε να ανακτήσετε το token εγγραφής που χρησιμοποιείται για την εγγραφή εικονικών μηχανών εντός ενός host pool.
```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
Οι host pools στο Azure Virtual Desktop είναι συλλογές εικονικών μηχανών Azure που έχουν ρυθμιστεί ως hosts συνεδρίας, παρέχοντας εικονικούς επιτραπέζιους υπολογιστές και εφαρμογές στους χρήστες. Υπάρχουν δύο κύριοι τύποι:
- **Προσωπικοί host pools**, όπου κάθε εικονική μηχανή είναι αφιερωμένη σε έναν μόνο χρήστη, με τα περιβάλλοντά της
- **Συγκεντρωμένοι host pools**, όπου πολλοί χρήστες μοιράζονται πόρους σε οποιονδήποτε διαθέσιμο host συνεδρίας. Έχει ρυθμιζόμενο όριο συνεδριών και μια ρύθμιση host συνεδρίας επιτρέπει στο Azure Virtual Desktop να αυτοματοποιεί τη δημιουργία hosts συνεδρίας με βάση μια ρύθμιση.
Κάθε host pool έχει ένα **token εγγραφής** που χρησιμοποιείται για την εγγραφή εικονικών μηχανών εντός ενός host pool.
### Application groups & Workspace
Οι ομάδες εφαρμογών **ελέγχουν την πρόσβαση των χρηστών** είτε σε έναν πλήρη επιτραπέζιο υπολογιστή είτε σε συγκεκριμένα σύνολα εφαρμογών που είναι διαθέσιμες σε hosts συνεδρίας εντός ενός host pool. Υπάρχουν δύο τύποι:
- **Ομάδες εφαρμογών επιτραπέζιων υπολογιστών**, οι οποίες δίνουν στους χρήστες πρόσβαση σε έναν πλήρη επιτραπέζιο υπολογιστή Windows (διαθέσιμο με προσωπικούς και συγκεντρωμένους host pools)
- **Ομάδες RemoteApp**, οι οποίες επιτρέπουν στους χρήστες να έχουν πρόσβαση σε μεμονωμένες δημοσιευμένες εφαρμογές (διαθέσιμες μόνο με συγκεντρωμένους host pools).
Ένας host pool μπορεί να έχει μία ομάδα εφαρμογών επιτραπέζιων υπολογιστών αλλά πολλές ομάδες RemoteApp. Οι χρήστες μπορούν να ανατεθούν σε πολλές ομάδες εφαρμογών σε διαφορετικούς host pools. Εάν ένας χρήστης έχει ανατεθεί και σε ομάδες επιτραπέζιων υπολογιστών και RemoteApp εντός του ίδιου host pool, βλέπει μόνο τους πόρους από τον προτιμώμενο τύπο ομάδας που έχει ορίσει ο διαχειριστής.
Ένας **workspace** είναι μια **συλλογή ομάδων εφαρμογών**, επιτρέποντας στους χρήστες να έχουν πρόσβαση στους επιτραπέζιους υπολογιστές και τις ομάδες εφαρμογών που τους έχουν ανατεθεί. Κάθε ομάδα εφαρμογών πρέπει να συνδέεται με έναν workspace και μπορεί να ανήκει μόνο σε έναν workspace τη φορά.
### Key Features
- **Flexible VM Creation**: Δημιουργία εικονικών μηχανών Azure απευθείας ή προσθήκη τοπικών εικονικών μηχανών Azure αργότερα.
- **Security Features**: Ενεργοποίηση Trusted Launch (secure boot, vTPM, monitoring ακεραιότητας) για προηγμένη ασφάλεια VM (απαιτείται εικονικό δίκτυο). Μπορεί να ενσωματωθεί το Azure Firewall και να ελέγξει την κυκλοφορία μέσω των Network Security Groups.
- **Domain Join**: Υποστήριξη για συνδέσεις τομέα Active Directory με προσαρμόσιμες ρυθμίσεις.
- **Diagnostics & Monitoring**: Ενεργοποίηση Διαγνωστικών Ρυθμίσεων για ροή καταγραφών και μετρήσεων σε Log Analytics, λογαριασμούς αποθήκευσης ή event hubs για παρακολούθηση.
- **Custom image templates**: Δημιουργία και διαχείριση τους για χρήση κατά την προσθήκη hosts συνεδρίας. Εύκολη προσθήκη κοινών προσαρμογών ή δικών σας προσαρμοσμένων σεναρίων.
- **Workspace Registration**: Εύκολη εγγραφή προεπιλεγμένων ομάδων εφαρμογών επιτραπέζιων υπολογιστών σε νέους ή υπάρχοντες workspaces για απλοποιημένη διαχείριση πρόσβασης χρηστών.
### 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}}