Az - Dynamic Groups Privesc
Reading time: 3 minutes
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
Les 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'utilisateur ou d'appareil est modifié, les règles dynamiques sont vérifiées à nouveau. 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 à eux, 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 qu'en default, tout utilisateur peut inviter des invités dans Azure AD, donc, si une règle de groupe dynamique donne des permissions aux utilisateurs en fonction 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 : az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table
Exemple
- Exemple de règle :
(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")
- Description de la règle : Tout utilisateur invité avec un email secondaire contenant la chaîne 'security' sera ajouté au groupe
Pour l'email de l'utilisateur invité, 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 ne permet pas de modifier les valeurs des attributs, donc nous devons 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.