Pentesting Azure
Azure es distinto de AWS/GCP en un punto clave: está profundamente entrelazado con Entra ID (antes Azure AD), la identidad que también gobierna Microsoft 365. Eso significa que un compromiso de Azure puede extenderse a M365 y viceversa (ver Microsoft 365 y Entra ID), y que la enumeración y escalada giran en torno a usuarios, roles, aplicaciones y managed identities del tenant. Es el entorno cloud más común en empresas que ya usan Windows/AD.
Dos planos: Entra ID y Azure Resource Manager
Sección titulada «Dos planos: Entra ID y Azure Resource Manager»Entra ID (identidad) usuarios, grupos, apps, roles de directorio (Global Admin...)Azure RM (recursos) suscripciones, grupos de recursos, VMs, storage, roles RBAC (Owner...)Ambos tienen sus propios roles y su propia escalada. Global Administrator (Entra) y Owner (RM) son los objetivos. Un enlace clave: un Global Admin puede elevarse para controlar todas las suscripciones.
Credenciales y acceso
Sección titulada «Credenciales y acceso»# formas de entraraz login # usuario/contraseña, token, service principalaz login --service-principal -u <appId> -p <secret> --tenant <tenant># tokens robados, refresh tokens (ver cloud-m365), managed identities (cloud-metadata)Enumeración
Sección titulada «Enumeración»# CLIaz account show ; az ad signed-in-user showaz role assignment list --all ; az resource list# herramientas especializadasROADrecon # enumeración exhaustiva de Entra ID (dump a base de datos)AzureHound # BloodHound para Azure -> grafo de escaladaMicroBurst # scripts de enum/explotación (PowerShell)Stormspotter / PowerZureAzureHound + BloodHound es tan potente aquí como en AD on-prem: mapea rutas de escalada entre usuarios, roles, apps y recursos.
Vectores de escalada típicos
Sección titulada «Vectores de escalada típicos»# Entra ID- Application / Service Principal con permisos excesivos (API permissions, consent)- roles de directorio mal asignados; "Privileged Role Administrator" -> Global Admin- abuso de consentimiento de apps (illicit consent grant) -> tokens de usuarios- dynamic groups mal configurados (añadirte a un grupo privilegiado)# Azure RM- roleAssignments/write (User Access Administrator) -> asignarte Owner- Managed Identity de una VM/función con permisos -> robar su token (cloud-metadata)- Automation Accounts / Runbooks con credenciales o identidades privilegiadas- Custom roles con acciones peligrosas (Microsoft.Authorization/*)Managed Identities (el equivalente al rol de instancia)
Sección titulada «Managed Identities (el equivalente al rol de instancia)»# desde una VM comprometida, pedir el token de su Managed Identity (ver cloud-metadata)curl -H "Metadata:true" "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/"# usar el token para actuar como esa identidad (az rest / API)Persistencia
Sección titulada «Persistencia»# añadir credenciales a un Service Principal (clientSecret/cert) -> acceso persistente# crear app con permisos y consentir; añadir usuario a rol privilegiado# federación / cambios en autenticación (más sigiloso, ver cloud-m365)Para la defensa
Sección titulada «Para la defensa»- MFA y Conditional Access en todos los usuarios, especialmente privilegiados.
- PIM (Privileged Identity Management): roles privilegiados just-in-time, no permanentes.
- Revisar permisos de apps/Service Principals y el consentimiento (bloquear consentimiento de usuario).
- Mínimo privilegio RBAC; vigilar
roleAssignments/writey roles custom peligrosos. - Logs: Entra ID sign-in/audit logs, Azure Activity Log, Microsoft Defender for Cloud; alertas sobre cambios de roles/credenciales de SP.
Checklist de prueba
Sección titulada «Checklist de prueba»- Acceso con usuario/SP/token y
az account show - Enumerar Entra ID (ROADrecon) y recursos RM
- AzureHound + BloodHound para rutas de escalada
- Apps/Service Principals con permisos excesivos / consent
- roleAssignments/write → Owner; roles de directorio → Global Admin
- Managed Identities de VMs/funciones (token, Metadata service (IMDS))
- Automation Accounts/Runbooks con credenciales
- Puente a M365 (Microsoft 365 y Entra ID) y persistencia