Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala

This commit is contained in:
Translator
2025-11-19 17:18:21 +00:00
parent 9c2bd0cc3f
commit b9c80f368a

View File

@@ -1,28 +1,60 @@
# Az - Динамічні Групи Privesc
# Az - Динамічні групи Privesc
{{#include ../../../../banners/hacktricks-training.md}}
## Основна Інформація
## Основна інформація
**Динамічні групи** - це групи, які мають набір **правил**, і всі **користувачі або пристрої**, що відповідають цим правилам, додаються до групи. Кожного разу, коли **атрибут** користувача або пристрою **змінюється**, динамічні правила **перевіряються** знову. І коли **створюється нове правило**, всі пристрої та користувачі **перевіряються**.
**Динамічні групи** це групи, для яких налаштовано набір **правил**, і всі **користувачі або пристрої**, що відповідають правилам, додаються до групи. Кожного разу, коли атрибут **користувача** або **пристрою** **змінюється**, динамічні правила **перевіряються повторно**. І коли створюється **нове правило**, всі пристрої та користувачі **перевіряються**.
Динамічним групам можуть бути призначені **ролі Azure RBAC**, але **неможливо** додати **ролі AzureAD** до динамічних груп.
Динамічним групам можна призначати **Azure RBAC roles**, але **неможливо** додати **AzureAD roles** до динамічних груп.
Ця функція вимагає ліцензії Azure AD premium P1.
## Privesc
Зверніть увагу, що за замовчуванням будь-який користувач може запрошувати гостей в Azure AD, тому, якщо правило динамічної групи надає **дозволи** користувачам на основі **атрибутів**, які можуть бути **встановлені** у нового **гостя**, можливо **створити гостя** з цими атрибутами та **ескалювати привілеї**. Також можливо, щоб гість керував своїм власним профілем і змінював ці атрибути.
Зверніть увагу, що за замовчуванням будь-який користувач може запрошувати гостей в Azure AD, тож якщо правило динамічної групи дає **права** користувачам на підставі **атрибутів**, які можна **встановити** у нового **гостя**, можливо **створити гостя** з цими атрибутами і **escalate privileges**. Гість також може керувати власним профілем і змінювати ці атрибути.
Отримати групи, які дозволяють динамічне членство: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
Get groups that allow Dynamic membership: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
### Перерахування динамічних груп
Отримати правила динамічної групи:
За допомогою **Azure CLI**:
```bash
az ad group list \
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
--query "[].{displayName:displayName, rule:membershipRule}" \
-o table
```
За допомогою **PowerShell** та **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
```
### Приклад
- **Приклад правила**: `(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")`
- **Опис правила**: Будь-який гість з вторинною електронною поштою, що містить рядок 'security', буде доданий до групи
- **Опис правила**: Будь-який гостьовий користувач з додатковою електронною поштою, яка містить рядок 'security', буде доданий до групи
Для електронної пошти користувача-гостя, прийміть запрошення та перевірте поточні налаштування **цього користувача** в [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
На жаль, сторінка не дозволяє змінювати значення атрибутів, тому нам потрібно використовувати API:
Для електронної пошти гостьового користувача, прийміть запрошення та перевірте поточні налаштування **цього користувача** на [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
На жаль, сторінка не дозволяє змінювати значення атрибутів, тому потрібно використовувати API:
```bash
# Login with the gust user
az login --allow-no-subscriptions