Azure Pentesting
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Información Básica
Aprende los conceptos básicos de Azure y Entra ID en la siguiente página:
Metodología de Pentesting/Red Team de Azure
Para auditar un entorno AZURE, es muy importante saber: qué servicios se están utilizando, qué está siendo expuesto, quién tiene acceso a qué, y cómo están conectados los servicios internos de Azure y los servicios externos.
Desde el punto de vista de un Red Team, el primer paso para comprometer un entorno de Azure es lograr obtener algún punto de apoyo.
Enumeración Externa y Acceso Inicial
El primer paso es, por supuesto, enumerar información sobre el inquilino que estás atacando y tratar de obtener un punto de apoyo.
Basado en el nombre de dominio, es posible saber si la empresa está usando Azure, obtener el ID del inquilino, obtener otros dominios válidos en el mismo inquilino (si hay más) y obtener información relevante como si SSO está habilitado, configuraciones de correo, correos electrónicos de usuarios válidos…
Consulta la siguiente página para aprender cómo realizar la enumeración externa:
Az - Unauthenticated Enum & Initial Entry
Con esta información, las formas más comunes de intentar obtener un punto de apoyo son:
- OSINT: Busca filtraciones en Github o cualquier otra plataforma de código abierto que pueda contener credenciales o información interesante.
- Reutilización de contraseñas, filtraciones o password spraying
- Comprar credenciales a un empleado
- Phishing Común (credenciales o aplicación Oauth)
- Phishing de Autenticación con Código de Dispositivo
- brechas de terceros
- Vulnerabilidades en Aplicaciones Alojadas en Azure
- Server Side Request Forgery con acceso al endpoint de metadatos
- Tomas de subdominio como en https://godiego.co/posts/STO-Azure/
- Otras configuraciones incorrectas de servicios de Azure
- Si alguna laptop de desarrollador está comprometida (WinPEAS y LinPEAS pueden encontrar esta información):
- Dentro de
<HOME>/.Azure azureProfile.jsoncontiene información sobre usuarios conectados en el pasadoclouds.configcontiene información sobre suscripcionesservice_principal_entries.jsoncontiene credenciales de aplicaciones (ID de inquilino, clientes y secreto). Solo en Linux y macOSmsal_token_cache.jsoncontiene tokens de acceso y tokens de actualización. Solo en Linux y macOSservice_principal_entries.biny msal_token_cache.bin se utilizan en Windows y están encriptados con DPAPImsal_http_cache.bines un caché de solicitudes HTTP- Cárgalo:
with open("msal_http_cache.bin", 'rb') as f: pickle.load(f) AzureRmContext.jsoncontiene información sobre inicios de sesión anteriores usando Az PowerShell (pero no credenciales)- Dentro de
C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*hay varios archivos.bincon tokens de acceso, tokens de ID e información de cuentas encriptada con el DPAPI de los usuarios. - Es posible encontrar más tokens de acceso en los archivos
.tbresdentro deC:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\que contienen un base64 encriptado con DPAPI con tokens de acceso. - En Linux y macOS puedes obtener tokens de acceso, tokens de actualización y tokens de ID desde Az PowerShell (si se usó) ejecutando
pwsh -Command "Save-AzContext -Path /tmp/az-context.json" - En Windows, esto solo genera tokens de ID.
- Es posible ver si se utilizó Az PowerShell en Linux y macOS verificando si existe
$HOME/.local/share/.IdentityService/(aunque los archivos contenidos están vacíos y son inútiles)
Encuentra otras configuraciones incorrectas de servicios de Azure que pueden llevar a un punto de apoyo en la siguiente página:
Az - Unauthenticated Enum & Initial Entry
Note
Recuerda que generalmente la parte más ruidosa de la enumeración es el inicio de sesión, no la enumeración en sí.
Herramientas de Azure y Entra ID
Las siguientes herramientas serán muy útiles para enumerar tanto inquilinos de Entra ID como entornos de Azure lentamente (para evitar detección) o automáticamente (para ahorrar tiempo):
Bypass de Políticas de Acceso
.png)
En casos donde tienes algunas credenciales válidas pero no puedes iniciar sesión, estas son algunas protecciones comunes que podrían estar en su lugar:
- Lista blanca de IP – Necesitas comprometer una IP válida
- Restricciones geográficas – Encuentra dónde vive el usuario o dónde están las oficinas de la empresa y obtén una IP de la misma ciudad (o país al menos)
- Navegador – Tal vez solo se permite un navegador de ciertos SO (Windows, Linux, Mac, Android, iOS). Descubre qué SO usa la víctima/empresa.
- También puedes intentar comprometer credenciales de Service Principal ya que generalmente son menos limitadas y su inicio de sesión es menos revisado
Después de eludirlo, podrías ser capaz de volver a tu configuración inicial y aún tendrás acceso.
Consulta:
Az - Conditional Access Policies & MFA Bypass
Whoami
Caution
Aprende cómo instalar az cli, AzureAD y Az PowerShell en la sección Az - Entra ID.
Una de las primeras cosas que necesitas saber es quién eres (en qué entorno estás):
az account list
az account tenant list # Current tenant info
az account subscription list # Current subscription info
az ad signed-in-user show # Current signed-in user
az ad signed-in-user list-owned-objects # Get owned objects by current user
az account management-group list #Not allowed by default
Enumeración de Entra ID y Privesc
Por defecto, cualquier usuario debería tener suficientes permisos para enumerar cosas como usuarios, grupos, roles, principales de servicio… (ver permisos predeterminados de AzureAD).
Puedes encontrar aquí una guía:
Az - Entra ID (AzureAD) & Azure IAM
Consulta las herramientas de Post-Explotación para encontrar herramientas que escalen privilegios en Entra ID como AzureHound:
Automated Post Exploitation Tools
Enumeración de Azure
Una vez que sepas quién eres, puedes comenzar a enumerar los servicios de Azure a los que tienes acceso.
Deberías comenzar a averiguar los permisos que tienes sobre los recursos. Para esto:
- Encuentra el recurso al que tienes acceso:
Tip
Esto no requiere ningún permiso especial.
El comando de Az PowerShell Get-AzResource te permite conocer los recursos sobre los que tu usuario actual tiene visibilidad.
Además, puedes obtener la misma información en la consola web yendo a https://portal.azure.com/#view/HubsExtension/BrowseAll o buscando “Todos los recursos” o ejecutando:
az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"
- Encuentra los permisos que tienes sobre los recursos que puedes ver:
Tip
Esto no requiere ningún permiso especial.
Hablando con la API https://management.azure.com/{resource_id}/providers/Microsoft.Authorization/permissions?api-version=2022-04-01, puedes obtener los permisos que tienes sobre el recurso especificado en el resource_id.
Por lo tanto, verificando cada uno de los recursos a los que tienes acceso, puedes obtener los permisos que tienes sobre ellos.
Warning
Puedes automatizar esta enumeración utilizando la herramienta Find_My_Az_Management_Permissions.
Enumera permisos con **`Microsoft.Authorization/roleAssignments/read`**
Tip
Ten en cuenta que necesitas el permiso
Microsoft.Authorization/roleAssignments/readpara ejecutar esta acción.
- Con suficientes permisos, el rol
Get-AzRoleAssignmentse puede utilizar para enumerar todos los roles en la suscripción o el permiso sobre un recurso específico indicándolo como en:
Get-AzRoleAssignment -Scope /subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4
También es posible obtener esta información ejecutando:
az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value"
como en:
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value"
- Otra opción es obtener los roles asignados a ti en azure. Esto también requiere el permiso
Microsoft.Authorization/roleAssignments/read:
az role assignment list --assignee "<email>" --all --output table
O ejecutando lo siguiente (Si los resultados están vacíos, puede ser porque no tienes permiso para obtenerlos):
az rest --method GET --uri 'https://management.azure.com/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId eq '<user-id>'
- Encuentra los permisos granulares de los roles asignados a ti:
Luego, para obtener el permiso granular, podrías ejecutar (Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions.
O llama a la API directamente con
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2022-04-01" | jq ".properties"
En la siguiente sección puedes encontrar información sobre los servicios de Azure más comunes y cómo enumerarlos:
Escalación de Privilegios, Post-Explotación y Persistencia
Una vez que sepas cómo está estructurado el entorno de Azure y qué servicios se están utilizando, puedes comenzar a buscar formas de escalar privilegios, moverte lateralmente, realizar otros ataques de post-explotación y mantener persistencia.
En la siguiente sección puedes encontrar información sobre cómo escalar privilegios en los servicios de Azure más comunes:
En la siguiente puedes encontrar información sobre cómo realizar ataques de post-explotación en los servicios de Azure más comunes:
En la siguiente puedes encontrar información sobre cómo mantener persistencia en los servicios de Azure más comunes:
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
HackTricks Cloud

