Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation

This commit is contained in:
Translator
2025-02-25 21:58:01 +00:00
parent eeeb480687
commit b0cfbd3910
3 changed files with 139 additions and 1 deletions

View File

@@ -431,6 +431,7 @@
- [Az - Static Web Applications](pentesting-cloud/azure-security/az-services/az-static-web-apps.md)
- [Az - Storage Accounts & Blobs](pentesting-cloud/azure-security/az-services/az-storage.md)
- [Az - Table Storage](pentesting-cloud/azure-security/az-services/az-table-storage.md)
- [Az - Virtual Desktop](pentesting-cloud/azure-security/az-services/az-virtual-desktop.md)
- [Az - Virtual Machines & Network](pentesting-cloud/azure-security/az-services/vms/README.md)
- [Az - Azure Network](pentesting-cloud/azure-security/az-services/vms/az-azure-network.md)
- [Az - Permissions for a Pentest](pentesting-cloud/azure-security/az-permissions-for-a-pentest.md)
@@ -485,11 +486,13 @@
- [Az - Static Web App Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-static-web-apps-privesc.md)
- [Az - Storage Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md)
- [Az - SQL Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md)
- [Az - Virtual Desktop Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-desktop-privesc.md)
- [Az - Virtual Machines & Network Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md)
- [Az - Persistence](pentesting-cloud/azure-security/az-persistence/README.md)
- [Az - Automation Accounts Persistence](pentesting-cloud/azure-security/az-persistence/az-automation-accounts-persistence.md)
- [Az - Cloud Shell Persistence](pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md)
- [Az - Queue SQL Persistence](pentesting-cloud/azure-security/az-persistence/az-sql-persistence.md)
- [Az - Logic Apps Persistence](pentesting-cloud/azure-security/az-persistence/az-logic-apps-persistence.md)
- [Az - SQL Persistence](pentesting-cloud/azure-security/az-persistence/az-sql-persistence.md)
- [Az - Queue Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-queue-persistence.md)
- [Az - VMs Persistence](pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md)
- [Az - Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-storage-persistence.md)

View File

@@ -0,0 +1,33 @@
# Az - Virtual Desktop Privesx
{{#include ../../../banners/hacktricks-training.md}}
## Azure Virtual Desktop Privesc
### `Microsoft.DesktopVirtualization/hostPools/retrieveRegistrationToken/action`
Puedes recuperar el token de registro utilizado para registrar máquinas virtuales dentro de un grupo de hosts.
```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")
Con estos permisos, puedes agregar una asignación de usuario al grupo de Aplicaciones, lo cual es necesario para acceder a la máquina virtual del escritorio virtual.
```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" \
--body '{
"properties": {
"roleDefinitionId": "/subscriptions/<SUBSCRIPTION_ID>/providers/Microsoft.Authorization/roleDefinitions/1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63",
"principalId": "<USER_OBJECT_ID>"
}
}'
```
Además, puedes cambiar el usuario y la contraseña de la máquina virtual para acceder a ella.
```bash
az vm user update \
--resource-group <RESOURCE_GROUP_NAME> \
--name <VM_NAME> \
--username <USERNAME> \
--password <NEW_PASSWORD>
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -0,0 +1,102 @@
# Az - Escritorio Virtual
{{#include ../../../banners/hacktricks-training.md}}
## Escritorio Virtual de Azure
Escritorio Virtual es un **servicio de virtualización de escritorio y aplicaciones**. Permite entregar escritorios completos de Windows, incluyendo Windows 11, Windows 10 o Windows Server a los usuarios de forma remota, ya sea como escritorios individuales o a través de aplicaciones individuales. Soporta configuraciones de sesión única para uso personal y entornos de múltiples sesiones. Los usuarios pueden conectarse desde prácticamente cualquier dispositivo utilizando aplicaciones nativas o un navegador web.
### Grupos de Hosts
Los grupos de hosts en Escritorio Virtual de Azure son colecciones de máquinas virtuales de Azure configuradas como hosts de sesión, proporcionando escritorios virtuales y aplicaciones a los usuarios. Hay dos tipos principales:
- **Grupos de hosts personales**, donde cada máquina virtual está dedicada a un solo usuario, con sus propios entornos.
- **Grupos de hosts agrupados**, donde múltiples usuarios comparten recursos en cualquier host de sesión disponible. Tiene un límite de sesión configurable y una configuración de host de sesión permite a Escritorio Virtual de Azure automatizar la creación de hosts de sesión basándose en una configuración.
Cada grupo de hosts tiene un **token de registro** que se utiliza para registrar máquinas virtuales dentro de un grupo de hosts.
### Grupos de Aplicaciones & Espacio de Trabajo
Los grupos de aplicaciones **controlan el acceso de los usuarios** a un escritorio completo o a conjuntos específicos de aplicaciones disponibles en los hosts de sesión dentro de un grupo de hosts. Hay dos tipos:
- **Grupos de aplicaciones de escritorio**, que dan a los usuarios acceso a un escritorio completo de Windows (disponible tanto con grupos de hosts personales como agrupados).
- **Grupos de RemoteApp**, que permiten a los usuarios acceder a aplicaciones publicadas individuales (disponible solo con grupos de hosts agrupados).
Un grupo de hosts puede tener un grupo de aplicaciones de escritorio pero múltiples grupos de RemoteApp. Los usuarios pueden ser asignados a múltiples grupos de aplicaciones en diferentes grupos de hosts. Si un usuario está asignado tanto a grupos de escritorio como a grupos de RemoteApp dentro del mismo grupo de hosts, solo verá recursos del tipo de grupo preferido establecido por los administradores.
Un **espacio de trabajo** es una **colección de grupos de aplicaciones**, permitiendo a los usuarios acceder a los escritorios y grupos de aplicaciones asignados a ellos. Cada grupo de aplicaciones debe estar vinculado a un espacio de trabajo, y solo puede pertenecer a un espacio de trabajo a la vez.
### Características Clave
- **Creación de VM Flexible**: Crear máquinas virtuales de Azure directamente o agregar máquinas virtuales locales de Azure más tarde.
- **Características de Seguridad**: Habilitar Trusted Launch (arranque seguro, vTPM, monitoreo de integridad) para una seguridad avanzada de VM (se necesita una red virtual). Puede integrar Azure Firewall y controlar el tráfico a través de Grupos de Seguridad de Red.
- **Unión a Dominio**: Soporte para uniones de dominio de Active Directory con configuraciones personalizables.
- **Diagnósticos y Monitoreo**: Habilitar Configuraciones de Diagnóstico para transmitir registros y métricas a Log Analytics, cuentas de almacenamiento o hubs de eventos para monitoreo.
- **Plantillas de imagen personalizadas**: Crear y gestionarlas para usar al agregar hosts de sesión. Agregar fácilmente personalizaciones comunes o sus propios scripts personalizados.
- **Registro de Espacio de Trabajo**: Registrar fácilmente grupos de aplicaciones de escritorio predeterminados a nuevos o existentes espacios de trabajo para una gestión simplificada del acceso de usuarios.
### Enumeración
```bash
az extension add --name desktopvirtualization
# List HostPool of a Resource group
az desktopvirtualization hostpool list --resource-group <Resource_Group>
# 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"
# 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"
# 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 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
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 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"
# 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"
```
### Conexión
Para conectarte al escritorio virtual a través de la web, puedes acceder a https://client.wvd.microsoft.com/arm/webclient/ (el más común), o https://client.wvd.microsoft.com/webclient/index.html (clásico)
Hay otros métodos que se describen aquí [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}}
{{#include ../../../banners/hacktricks-training.md}}