Az - Dynamic Groups Privesc

Apoya a HackTricks

Información Básica

Dynamic groups son grupos que tienen un conjunto de reglas configuradas y todos los usuarios o dispositivos que coinciden con las reglas se añaden al grupo. Cada vez que un atributo de un usuario o dispositivo es cambiado, las reglas dinámicas se revisan. Y cuando se crea una nueva regla, todos los dispositivos y usuarios son verificados.

Los grupos dinámicos pueden tener roles de Azure RBAC asignados a ellos, pero no es posible añadir roles de AzureAD a grupos dinámicos.

Esta característica requiere una licencia Azure AD premium P1.

Privesc

Ten en cuenta que por defecto cualquier usuario puede invitar a invitados en Azure AD, por lo que, si una regla de grupo dinámico otorga permisos a usuarios basados en atributos que pueden ser establecidos en un nuevo invitado, es posible crear un invitado con estos atributos y escalar privilegios. También es posible que un invitado gestione su propio perfil y cambie estos atributos.

Obtener grupos que permiten membresía dinámica: Get-AzureADMSGroup | ?{$_.GroupTypes -eq 'DynamicMembership'}

Ejemplo

  • Ejemplo de regla: (user.otherMails -any (_ -contains "tester")) -and (user.userType -eq "guest")

  • Descripción de la regla: Cualquier usuario invitado con un correo secundario que contenga la cadena 'tester' será añadido al grupo

  1. Ve a Azure Active Directory -> Usuarios y haz clic en ¿Quieres volver a la experiencia de lista de usuarios anterior? Haz clic aquí para salir de la vista previa

  2. Haz clic en Nuevo usuario invitado e invita un correo electrónico

  3. El perfil del usuario será añadido a Azure AD tan pronto como se envíe la invitación. Abre el perfil del usuario y haz clic en (gestionar) bajo Invitación aceptada.

  1. Cambia ¿Reenviar invitación? a y obtendrás una URL de invitación:

  1. Copia la URL y ábrela, inicia sesión como el usuario invitado y acepta la invitación

  2. Inicia sesión en la cli como el usuario y establece el correo secundario

# Login
$password = ConvertTo-SecureString 'password' -AsPlainText -Force
$creds = New-Object
System.Management.Automation.PSCredential('externaltester@somedomain.onmicrosoft.com', $Password)
Connect-AzureAD -Credential $creds -TenantId <tenant_id_of_attacked_domain>

# Cambiar configuración de OtherMails
Set-AzureADUser -ObjectId <OBJECT-ID> -OtherMails <Username>@<TENANT_NAME>.onmicrosoft.com -Verbose

Referencias

Apoya a HackTricks

Last updated