Az - Dynamic Groups Privesc

Soutenez HackTricks

Informations de base

Les groupes dynamiques sont des groupes qui ont un ensemble de règles configurées et tous les utilisateurs ou appareils qui correspondent aux règles sont ajoutés au groupe. Chaque fois qu'un attribut d'utilisateur ou d'appareil est modifié, les règles dynamiques sont re-vérifiées. Et lorsqu'une nouvelle règle est créée, tous les appareils et utilisateurs sont vérifiés.

Les groupes dynamiques peuvent avoir des rôles Azure RBAC assignés, mais il est impossible d'ajouter des rôles AzureAD aux groupes dynamiques.

Cette fonctionnalité nécessite une licence Azure AD premium P1.

Privesc

Notez que par défaut, tout utilisateur peut inviter des invités dans Azure AD, donc, si une règle de groupe dynamique donne des permissions aux utilisateurs basées sur des attributs qui peuvent être définis dans un nouvel invité, il est possible de créer un invité avec ces attributs et escalader les privilèges. Il est également possible pour un invité de gérer son propre profil et de modifier ces attributs.

Obtenez les groupes qui permettent l'adhésion dynamique : Get-AzureADMSGroup | ?{$_.GroupTypes -eq 'DynamicMembership'}

Exemple

  • Exemple de règle : (user.otherMails -any (_ -contains "tester")) -and (user.userType -eq "guest")

  • Description de la règle : Tout utilisateur invité avec un email secondaire contenant la chaîne 'tester' sera ajouté au groupe

  1. Allez dans Azure Active Directory -> Utilisateurs et cliquez sur Voulez-vous revenir à l'ancienne expérience de la liste des utilisateurs ? Cliquez ici pour quitter l'aperçu

  2. Cliquez sur Nouvel utilisateur invité et invitez un email

  3. Le profil de l'utilisateur sera ajouté à Azure AD dès que l'invitation est envoyée. Ouvrez le profil de l'utilisateur et cliquez sur (gérer) sous Invitation acceptée.

  1. Changez Renvoyer l'invitation ? à Oui et vous obtiendrez une URL d'invitation :

  1. Copiez l'URL et ouvrez-la, connectez-vous en tant qu'utilisateur invité et acceptez l'invitation

  2. Connectez-vous dans le cli en tant qu'utilisateur et définissez l'email secondaire

# Connexion
$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>

# Modifier le paramètre OtherMails
Set-AzureADUser -ObjectId <OBJECT-ID> -OtherMails <Username>@<TENANT_NAME>.onmicrosoft.com -Verbose

Références

Soutenez HackTricks

Last updated