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:
+42
-10
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user