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

This commit is contained in:
Translator
2025-02-25 21:58:07 +00:00
parent 3ec8204a2f
commit 90b6a9d058
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`
Vous pouvez récupérer le jeton d'enregistrement utilisé pour enregistrer des machines virtuelles au sein d'un pool d'hôtes.
```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")
Avec ces autorisations, vous pouvez ajouter une affectation d'utilisateur au groupe d'application, ce qui est nécessaire pour accéder à la machine virtuelle du bureau virtuel.
```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>"
}
}'
```
De plus, vous pouvez changer l'utilisateur et le mot de passe de la machine virtuelle pour y accéder.
```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 - Bureau Virtuel
{{#include ../../../banners/hacktricks-training.md}}
## Bureau Virtuel Azure
Bureau Virtuel est un **service de virtualisation de bureau et d'applications**. Il permet de fournir des bureaux Windows complets, y compris Windows 11, Windows 10 ou Windows Server aux utilisateurs à distance, soit sous forme de bureaux individuels, soit via des applications individuelles. Il prend en charge des configurations à session unique pour un usage personnel et des environnements à sessions multiples. Les utilisateurs peuvent se connecter depuis pratiquement n'importe quel appareil en utilisant des applications natives ou un navigateur web.
### Pools d'Hôtes
Les pools d'hôtes dans Bureau Virtuel Azure sont des collections de machines virtuelles Azure configurées en tant qu'hôtes de session, fournissant des bureaux et des applications virtuels aux utilisateurs. Il existe deux types principaux :
- **Pools d'hôtes personnels**, où chaque machine virtuelle est dédiée à un seul utilisateur, avec ses environnements
- **Pools d'hôtes partagés**, où plusieurs utilisateurs partagent des ressources sur n'importe quel hôte de session disponible. Il a une limite de session configurable et une configuration d'hôte de session permet à Bureau Virtuel Azure d'automatiser la création d'hôtes de session en fonction d'une configuration
Chaque pool d'hôtes a un **jeton d'enregistrement** utilisé pour enregistrer des machines virtuelles au sein d'un pool d'hôtes.
### Groupes d'Applications & Espace de Travail
Les groupes d'applications **contrôlent l'accès des utilisateurs** soit à un bureau complet, soit à des ensembles spécifiques d'applications disponibles sur les hôtes de session au sein d'un pool d'hôtes. Il existe deux types :
- **Groupes d'applications de bureau**, qui donnent aux utilisateurs accès à un bureau Windows complet (disponible avec des pools d'hôtes personnels et partagés)
- **Groupes RemoteApp**, qui permettent aux utilisateurs d'accéder à des applications publiées individuelles (disponibles uniquement avec des pools d'hôtes partagés).
Un pool d'hôtes peut avoir un groupe d'applications de bureau mais plusieurs groupes RemoteApp. Les utilisateurs peuvent être assignés à plusieurs groupes d'applications à travers différents pools d'hôtes. Si un utilisateur est assigné à la fois à des groupes de bureau et à des groupes RemoteApp au sein du même pool d'hôtes, il ne voit que les ressources du type de groupe préféré défini par les administrateurs.
Un **espace de travail** est une **collection de groupes d'applications**, permettant aux utilisateurs d'accéder aux bureaux et aux groupes d'applications qui leur sont assignés. Chaque groupe d'applications doit être lié à un espace de travail, et il ne peut appartenir qu'à un seul espace de travail à la fois.
### Caractéristiques Clés
- **Création de VM Flexible** : Créez des machines virtuelles Azure directement ou ajoutez des machines virtuelles locales Azure plus tard.
- **Fonctionnalités de Sécurité** : Activez le Trusted Launch (démarrage sécurisé, vTPM, surveillance de l'intégrité) pour une sécurité VM avancée (un réseau virtuel est nécessaire). Peut intégrer Azure Firewall et contrôler le trafic via des groupes de sécurité réseau.
- **Jointure de Domaine** : Support pour les jointures de domaine Active Directory avec des configurations personnalisables.
- **Diagnostics & Surveillance** : Activez les paramètres de diagnostic pour diffuser des journaux et des métriques vers Log Analytics, des comptes de stockage ou des hubs d'événements pour la surveillance.
- **Modèles d'images personnalisées** : Créez et gérez-les à utiliser lors de l'ajout d'hôtes de session. Ajoutez facilement des personnalisations courantes ou vos propres scripts personnalisés.
- **Enregistrement d'Espace de Travail** : Enregistrez facilement des groupes d'applications de bureau par défaut à de nouveaux espaces de travail ou à des espaces de travail existants pour simplifier la gestion de l'accès des utilisateurs.
### Énumération
```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"
```
### Connexion
Pour se connecter au bureau virtuel via le web, vous pouvez accéder à https://client.wvd.microsoft.com/arm/webclient/ (le plus courant), ou https://client.wvd.microsoft.com/webclient/index.html (classique)
Il existe d'autres méthodes décrites ici [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}}