mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
+39
-7
@@ -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 '<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
|
||||
```
|
||||
### 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/<user-object-id>" \
|
||||
--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/)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user