Skip to content

Azure / Entra ID — Enumeration

Azure enumeration

Azure enumeration

Entra ID (eski adıyla Azure AD), Microsoft bulutunun kimlik katmanıdır. Keşif; tenant’ı ve kullanıcıları çıkarmakla başlar, ele geçirilen kimlik sonrası rol, grup, uygulama ve Azure kaynak envanterine döner. AD on-prem enumeration ile paralel düşün: önce kimlik haritası, sonra saldırı yolu.

Kimliksiz: hedef domain / e-posta formatı
Kimlikli: kullanıcı+parola, PRT/token, veya app client_id+secret/cert
Araçlar: az cli, AADInternals, ROADtools, AzureHound, GraphRunner, curl
Terminal window
curl -s "https://login.microsoftonline.com/getuserrealm.srf?login=user@hedef.com&xml=1"
Terminal window
curl -s "https://login.microsoftonline.com/hedef.com/.well-known/openid-configuration" | jq .
Terminal window
curl -s "https://login.microsoftonline.com/hedef.com/v2.0/.well-known/openid-configuration" \
| jq -r .issuer
Terminal window
curl -sI "https://hedef.com"
Terminal window
curl -s "https://login.microsoftonline.com/getuserrealm.srf?login=admin@hedef.com&xml=1"

Kullanıcı geçerlilik enumeration:

Terminal window
Import-Module AADInternals
Terminal window
Get-AADIntLoginInformation -UserName user@hedef.com
Terminal window
Invoke-AADIntUserEnumerationAsOutsider -UserName user@hedef.com
Terminal window

AADInternals tenant bilgisi, alan adları, Auth method ve kullanıcı doğrulaması için yaygın kullanılır.

Terminal window
az login
Terminal window
az login --service-principal -u $APP_ID -p $SECRET --tenant $TENANT
Terminal window
az account show -o json
Terminal window
az account list -o table
Terminal window
az ad signed-in-user show
Terminal window
az ad user list -o table --query "[].{upn:userPrincipalName,id:id}"
Terminal window
az ad group list -o table
Terminal window
az ad group member list --group "Global Administrators" -o table 2>/dev/null
Terminal window
az role assignment list --all -o table
Terminal window
az resource list -o table
Terminal window
az group list -o table
Terminal window
az vm list -o table
Terminal window
az keyvault list -o table
Terminal window
az storage account list -o table
Terminal window
az webapp list -o table
Terminal window
az functionapp list -o table

Microsoft Graph ile:

Terminal window
az account get-access-token --resource-type ms-graph
Terminal window
roadrecon auth -u user@hedef.com -p 'Pass'
Terminal window
roadrecon gather
Terminal window
roadrecon gui
  1. Kimliği tanı — az account show , az ad signed-in-user show ; hangi tenant/subscription’dasın, MFA var mı.

  2. Grafiği çıkar — AzureHound ile Entra ID + Azure RBAC ilişkilerini topla, BloodHound’da privesc yollarını gör:

    Terminal window
    azurehound list -u user@hedef.com -p 'Pass' -t <tenant-id> -o ah.zip
    Terminal window
    azurehound list --jwt <token> -o ah.json
  3. Kaynak envanteri — abonelikler, kaynak grupları, Key Vault, Storage, VM’ler, Automation, App Service; okunabilir sırları ve managed identity atamalarını ara.

Directory roles → Global Admin, Privileged Role Admin, Application Admin
App registrations → yüksek Graph izinleri (Mail.Read, RoleManagement...)
Service principals → creds, owners
Conditional Access → boşluklar (legacy auth, excluded users)
Azure RBAC → Owner / User Access Administrator / Contributor
Key Vault → secrets/keys/certs
Hybrid → AAD Connect, PTA, federation → on-prem köprü
Terminal window
az ad app list --show-mine -o table
Terminal window
az ad sp list --show-mine -o table
Terminal window
az ad sp credential list --id <sp-id>
Terminal window
az rest --method GET \
--url "https://graph.microsoft.com/v1.0/directoryRoles"

Azure · user list

embedded tool
Generated command
az ad user list -o table
getuserrealm + user enum
→ password spray (eşik altında)
→ roadrecon / AzureHound
→ Application Admin path veya Subscription Contributor
→ Key Vault / VM Run Command / managed identity