Az - Virtuele Desktop
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
Azure Virtuele Desktop
Virtuele Desktop is ’n desktop en app virtualiseringsdiens. Dit stel in staat om volledige Windows-desktops, insluitend Windows 11, Windows 10, of Windows Server aan gebruikers op afstand te lewer, hetsy as individuele desktops of deur individuele toepassings. Dit ondersteun enkel-sessie opstellings vir persoonlike gebruik en multi-sessie omgewings. Gebruikers kan van feitlik enige toestel aansluit met behulp van inheemse toepassings of ’n webblaaier.
Gasheerpoele
Gasheerpoele in Azure Virtuele Desktop is versamelings van Azure virtuele masjiene wat as sessiegashere geconfigureer is, wat virtuele desktops en toepassings aan gebruikers bied. Daar is twee hoof tipes:
-
Persoonlike gasheerpoele, waar elke virtuele masjien aan ’n enkele gebruiker toegewy is.
-
Dit kan geconfigureer word sodat die admin spesifieke gebruikers aan VM’s kan toewys of dit kan outomaties gedoen word.
-
Dit is ideaal vir mense met intensiewe werklas, aangesien elke persoon sy eie VM sal hê. Boonop sal hulle in staat wees om lêers te stoor en instellings in die OS-skyf te konfigureer en hierdie sal voortduur aangesien elke gebruiker sy eie VM (gasheer) het.
-
Gedeelde gasheerpoele, waar verskeie gebruikers hulpbronne deel op beskikbare sessiegashere.
-
Dit is moontlik om ’n maksimum aantal gebruikers (sessies) per gasheer te configureer.
-
Dit is moontlik om VM’s handmatig by te voeg met behulp van registrasiesleutels, of toelaat dat Azure outomaties die aantal gashere skaal sonder die opsie om VM’s met die registrasiesleutel by te voeg. Dit is nie moontlik om VM’s outomaties te skaal vir persoonlike poele nie.
-
Om lêers in gebruikerssessies te behou, is dit nodig om FSlogix te gebruik.
Sessiegashere
Dit is die VM’s waaraan gebruikers sal aansluit.
- As outomatiese skaal gekies is, sal ’n sjabloon geskep word met die kenmerke van die gashere wat vir die poel geskep moet word.
- As nie, wanneer die Gasheerpoel geskep word, is dit moontlik om die kenmerke en die aantal VM’s wat jy wil skep aan te dui en Azure sal dit vir jou skep en byvoeg.
Die hoofkenmerke om die VM’s te configureer is:
- Die prefix naam van die nuwe VM’s
- Die VM tipe: Dit kan “Azure virtuele masjien” wees (om Azure VM’s te gebruik) of “Azure Plaaslike virtuele masjien” wat toelaat dat gashere op die perseel of aan die rand ontplooi word.
- Die ligging, sones, VM-sekuriteitsopsies, beeld, CPU, geheue, skyfgrootte…
- Die VNet, sekuriteitsgroep en poorte om aan die internet bloot te stel
- Dit is moontlik om akrediteer te stel om outomaties aan ’n AD-domein aan te sluit, of gebruik Entra ID-gids
- As Entra ID, is dit moontlik om die nuwe VM outomaties in Intune te registreer
- Dit is nodig om ’n administrateur gebruikersnaam en wagwoord in te stel tensy Azure die gashere sal skaal, in daardie geval moet ’n geheim geconfigureer word met die gebruikersnaam en nog een met die wagwoord
- Dit is moontlik om ’n script te configureer wat uitgevoer moet word vir aangepaste konfigurasie
Toepassing Groepe
Toepassing groepe beheer gebruikers toegang tot óf ’n volledige desktop óf spesifieke stelle toepassings wat op sessiegashere binne ’n gasheerpoel beskikbaar is.
Daar is twee tipes toepassing groepe:
- Desktop toepassing groepe, wat gebruikers toegang gee tot ’n volledige Windows-desktop en aangehegte toepassings.
- RemoteApp groepe, wat gebruikers toelaat om toegang te verkry tot individuele toepassings.
- Dit is nie moontlik om hierdie soort toepassing groep aan ’n Persoonlike Poel toe te wys nie.
- Dit is nodig om die pad na die binêre wat binne die VM uitgevoer moet word aan te dui.
’n Gedeelde Poel kan een Desktop toepassing groep en meerdere RemoteApp groepe hê en gebruikers kan aan meerdere toepassing groepe oor verskillende gasheerpoele toegewy word.
Wanneer ’n gebruiker toegang verleen word, word die rol Desktop Virtualization User oor die toepassing groep gegee.
Werkruimtes & Verbindinge
’n werkruimte is ’n versameling van toepassing groepe.
Om te verbinde met die Desktop of toepassings wat toegewy is, is dit moontlik om dit te doen vanaf https://windows365.microsoft.com/ent#/devices En daar is ander metodes beskryf op https://learn.microsoft.com/en-us/azure/virtual-desktop/users/connect-remote-desktop-client
Wanneer ’n gebruiker sy rekening toegang, sal hy geskei deur werkruimtes alles wat hy toegang het tot aangebied word. Daarom is dit nodig om elke toepassing groep aan een werkruimte toe te voeg sodat die gedefinieerde toegang sigbaar is.
Om ’n gebruiker in staat te stel om toegang te verkry tot ’n Desktop of ’n toepassing, het hy ook die rol Virtual Machine User Login of Virtual Machine Administrator Login oor die VM nodig.
Gemanagte Identiteite
Dit is nie moontlik om gemanagte identiteite aan gasheerpoele toe te wys nie, so die geskepte VM’s binne ’n poel sal dit hê. Dit is egter moontlik om stelsel en gebruiker gemanagte identiteite aan die VM’s toe te wys en dan toegang tot die tokens vanaf die metadata te verkry. Trouens, na die bekendstelling van die gasheerpoele vanaf die web, het die 2 gegenereerde VM’s die stelsel toegewyde gemanagte identiteit geaktiveer (alhoewel dit geen regte het nie).
Opsomming
az extension add --name desktopvirtualization
# List HostPools
az desktopvirtualization hostpool list
# List Workspaces
az desktopvirtualization workspace list
# List Application Groups
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 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 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"
# List MSIX Packages
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages?api-version=2024-04-03"
# List private endpoint connections associated with hostpool.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateEndpointConnections?api-version=2024-04-03"
# List private endpoint connections associated By Workspace.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateEndpointConnections?api-version=2024-04-03"
# List the private link resources available for a hostpool.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateLinkResources?api-version=2024-04-03"
# List the private link resources available for this workspace.
az rest --method GET --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateLinkResources?api-version=2024-04-03"
Privesc
Post Exploitation & Persistence
Az - Virtual Desktop Post Exploitation
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

