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

This commit is contained in:
Translator
2025-11-19 17:18:19 +00:00
parent 0d3e6b40d7
commit 8f0650343b
@@ -2,27 +2,59 @@
{{#include ../../../../banners/hacktricks-training.md}}
## Información Básica
## Información básica
**Dynamic groups** son grupos que tienen un conjunto de **rules** configuradas y todos los **users o devices** que coinciden con las reglas son añadidos al grupo. Cada vez que se **cambia** un **attribute** de un usuario o dispositivo, las reglas dinámicas son **rechecadas**. Y cuando se **crea** una **new rule**, todos los dispositivos y usuarios son **verificados**.
**Dynamic groups** son grupos que tienen un conjunto de **reglas** configuradas y todos los **usuarios o dispositivos** que coinciden con las reglas son agregados al grupo. Cada vez que se **cambia** un **atributo** de un usuario o dispositivo, las reglas dinámicas se **vuelven a comprobar**. Y cuando se **crea** una **nueva regla**, todos los dispositivos y usuarios son **verificados**.
Los grupos dinámicos pueden tener **Azure RBAC roles asignados** a ellos, pero **no es posible** añadir **AzureAD roles** a grupos dinámicos.
Dynamic groups pueden tener **Azure RBAC roles assigned** a ellos, pero **no es posible** agregar **AzureAD roles** a los Dynamic groups.
Esta función requiere una licencia de Azure AD premium P1.
Esta funcionalidad requiere licencia Azure AD Premium P1.
## Privesc
Ten en cuenta que por defecto cualquier usuario puede invitar a invitados en Azure AD, así que, si una **rule** de grupo dinámico otorga **permissions** a los usuarios basándose en **attributes** que pueden ser **establecidos** en un nuevo **guest**, es posible **crear un guest** con estos atributos y **escalar privilegios**. También es posible que un guest gestione su propio perfil y cambie estos atributos.
Ten en cuenta que por defecto cualquier usuario puede invitar invitados en Azure AD, por lo que, si una **regla** de un dynamic group otorga **permisos** a usuarios basándose en **atributos** que se pueden **establecer** en un nuevo **invitado**, es posible **crear un invitado** con esos atributos y **escalar privilegios**. También es posible que un invitado gestione su propio perfil y cambie estos atributos.
Obtén grupos que permiten membresía dinámica: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
Obtén los grupos que permiten Dynamic membership: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
### Enumeración de Dynamic Groups
Obtén las reglas de un dynamic group:
Con **Azure CLI**:
```bash
az ad group list \
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
--query "[].{displayName:displayName, rule:membershipRule}" \
-o table
```
Con **PowerShell** y **Microsoft Graph SDK**:
```bash
Install-Module Microsoft.Graph -Scope CurrentUser -Force
Import-Module Microsoft.Graph
Connect-MgGraph -Scopes "Group.Read.All"
Get-MgGroup -Filter "groupTypes/any(c:c eq 'DynamicMembership')" `
-Property Id, DisplayName, GroupTypes
# Get the rules of a specific group
$g = Get-MgGroup -Filter "displayName eq '<GROUP NAME>'" `
-Property DisplayName, GroupTypes, MembershipRule, MembershipRuleProcessingState
$g | Select-Object DisplayName, GroupTypes, MembershipRule
# Get the rules of all dynamic groups
Get-MgGroup -Filter "groupTypes/any(c:c eq 'DynamicMembership')" `
-Property DisplayName, MembershipRule |
Select-Object DisplayName, MembershipRule
```
### Ejemplo
- **Ejemplo de regla**: `(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")`
- **Descripción de la regla**: Cualquier usuario Guest con un correo electrónico secundario que contenga la cadena 'security' será añadido al grupo
- **Rule example**: `(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")`
- **Rule description**: Cualquier usuario Guest con un correo electrónico secundario que contenga la cadena 'security' será añadido al grupo
Para el correo electrónico del usuario Guest, acepta la invitación y verifica la configuración actual de **ese usuario** en [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
Desafortunadamente, la página no permite modificar los valores de los atributos, así que necesitamos usar la API:
Para el correo del usuario Guest, acepta la invitación y comprueba la configuración actual de **ese usuario** en [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
Desafortunadamente la página no permite modificar los valores de los atributos, por lo que necesitamos usar la API:
```bash
# Login with the gust user
az login --allow-no-subscriptions