From d373158c45951ac89e4fd57bf52bb3e5604ebb9b Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 19 Nov 2025 17:18:41 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala --- .../az-entraid-privesc/dynamic-groups.md | 46 ++++++++++++++++--- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/dynamic-groups.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/dynamic-groups.md index a81b6356c..b76f754b9 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/dynamic-groups.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/dynamic-groups.md @@ -4,24 +4,56 @@ ## Podstawowe informacje -**Dynamic groups** to grupy, które mają skonfigurowany zestaw **reguł**, a wszyscy **użytkownicy lub urządzenia**, które pasują do tych reguł, są dodawani do grupy. Za każdym razem, gdy **atrybut** użytkownika lub urządzenia jest **zmieniany**, dynamiczne reguły są **ponownie sprawdzane**. A gdy **nowa reguła** jest **tworzona**, wszystkie urządzenia i użytkownicy są **sprawdzani**. +**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**. -Dynamic groups mogą mieć przypisane **role Azure RBAC**, ale **nie jest możliwe** dodanie **ról AzureAD** do dynamicznych grup. +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 -Należy zauważyć, że domyślnie każdy użytkownik może zapraszać gości w Azure AD, więc jeśli reguła **dynamicznej grupy** przyznaje **uprawnienia** użytkownikom na podstawie **atrybutów**, które mogą być **ustawione** w nowym **gościu**, możliwe jest **utworzenie gościa** z tymi atrybutami i **eskalacja uprawnień**. Gość może również zarządzać swoim własnym profilem i zmieniać te atrybuty. +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. -Uzyskaj grupy, które pozwalają na dynamiczne członkostwo: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`** +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**: +```bash +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**: +```bash +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 ''" ` +-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 gość z drugim adresem e-mail zawierającym ciąg 'security' zostanie dodany do grupy +- **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 gościa, zaakceptuj zaproszenie i sprawdź bieżące ustawienia **tego użytkownika** w [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\ +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](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: ```bash # Login with the gust user @@ -41,7 +73,7 @@ az rest --method GET \ --url "https://graph.microsoft.com/v1.0/users/" \ --query "otherMails" ``` -## Odniesienia +## Źródła - [https://www.mnemonic.io/resources/blog/abusing-dynamic-groups-in-azure-ad-for-privilege-escalation/](https://www.mnemonic.io/resources/blog/abusing-dynamic-groups-in-azure-ad-for-privilege-escalation/)