Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
AzureADEnumeration — Неаутентифицированное перечисление Microsoft Entra ID (Azure AD) | Kitploit
Инструменты/GitHubGitHub/logisek/azureadenumeration
Безопасность облачной инфраструктурыOSINT (Разведка открытых источников)РазведкаСбор информацииТестирование на ПроникновениеБезопасность облачных средПеречисление ПоддоменовБезопасность Электронной ПочтыАнализ DNS
GitHublogisek/azureadenumeration

AzureADEnumeration

Неаутентифицированное перечисление Microsoft Entra ID (Azure AD)

7956 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

Microsoft Entra ID (Azure AD) Unauthenticated Enumeration

Источник: EvilMist Toolkit - Invoke-EntraEnum.ps1 - https://github.com/Logisek/EvilMist


1. Обнаружение тенанта (-TenantInfo)

Обнаруживает информацию о тенанте с помощью публичных API.

1.1 API azmap.dev

Получает сведения о тенанте из сервиса azmap.dev.

root@kitploit:~
# Replace DOMAIN with target domain (e.g., example.com)
curl -s "https://azmap.dev/api/tenant?domain=DOMAIN&extract=true"

Ответ содержит: tenantId, displayName, countryCode

1.2 Конфигурация OpenID

Получает конфигурацию OpenID Connect, включая конечные точки токенов.

root@kitploit:~
# Replace DOMAIN with target domain
curl -s "https://login.microsoftonline.com/DOMAIN/v2.0/.well-known/openid-configuration"

Ответ содержит: token_endpoint, authorization_endpoint, jwks_uri, issuer


2. Информация о доменной области (-DomainRealm)

Получает конфигурацию пространства имён домена и федерации.

root@kitploit:~
# Replace DOMAIN with target domain
curl -s "https://login.microsoftonline.com/getuserrealm.srf?login=enum@DOMAIN&json=1"

Ответ содержит:

  • NameSpaceType — «Managed» или «Federated»
  • AuthURL — URL аутентификации федерации (если федеративный)
  • CloudInstanceName — облачный экземпляр (например, "microsoftonline.com")
  • FederationBrandName — фирменное название организации
  • DomainName — подтверждённый домен

3. Перечисление пользователей через GetCredentialType (-UserEnum)

Проверяет, существует ли пользователь в Azure AD. Возвращает различные коды в зависимости от существования пользователя.

root@kitploit:~
# Replace EMAIL with target email address
curl -s -X POST "https://login.microsoftonline.com/common/GetCredentialType" \
  -H "Content-Type: application/json" \
  -d '{
    "Username": "EMAIL",
    "isOtherIdpSupported": true,
    "checkPhones": false,
    "isRemoteNGCSupported": true,
    "isCookieBannerShown": false,
    "isFidoSupported": true,
    "originalRequest": "",
    "country": "US",
    "forceotclogin": false,
    "isExternalFederationDisallowed": false,
    "isRemoteConnectSupported": false,
    "federationFlags": 0,
    "isSignup": false,
    "flowToken": "",
    "isAccessPassSupported": true
  }'

Коды IfExistsResult:

  • 0 = Пользователь существует (Azure IdP)
  • 1 = Пользователь не существует
  • 2 = Недопустимый запрос
  • 4 = Ошибка сервера
  • 5 = Пользователь существует (федеративный IdP)
  • 6 = Пользователь существует (внешний не-Microsoft IdP)

4. DNS-разведка (-DnsEnum)

DNS-запросы для записей, связанных с Azure/M365. Используйте команды dig, nslookup или host.

4.1 Записи CNAME

root@kitploit:~
# Main domain CNAME
dig CNAME DOMAIN

# Autodiscover CNAME
dig CNAME autodiscover.DOMAIN
dig CNAME lyncdiscover.DOMAIN
dig CNAME sip.DOMAIN

4.2 Записи TXT/SPF

root@kitploit:~
dig TXT DOMAIN

4.3 Записи SRV

root@kitploit:~
dig SRV _ldap._tcp.DOMAIN
dig SRV _kerberos._tcp.DOMAIN
dig SRV _autodiscover._tcp.DOMAIN
dig SRV _sip._tls.DOMAIN
dig SRV _sipfederationtls._tcp.DOMAIN

4.4 Записи MX

root@kitploit:~
dig MX DOMAIN

5. Перечисление пользователей OneDrive (-OneDriveEnum)

Полностью недетектируемо — не создаёт журналов аудита.

Проверяет существование пользователя, запрашивая URL его личного сайта OneDrive.

root@kitploit:~
# Replace TENANT with tenant name (e.g., example)
# Replace USERPATH with email formatted as: user_domain_com (@ and . replaced with _)
# Example: [email protected] becomes john_doe_example_com

curl -s -o /dev/null -w "%{http_code}" -I \
  "https://TENANT-my.sharepoint.com/personal/USERPATH/_layouts/15/onedrive.aspx"

Коды состояния:

  • 200 = Пользователь существует, OneDrive доступен
  • 401/403 = Пользователь существует, доступ запрещён
  • 404 = Пользователь не существует

Пример для пользователя [email protected]:

root@kitploit:~
curl -s -o /dev/null -w "%{http_code}" -I \
  "https://example-my.sharepoint.com/personal/john_doe_example_com/_layouts/15/onedrive.aspx"

6. Метаданные федерации (-FederationMeta)

Получает метаданные федерации, включая сертификаты подписи и конечные точки токенов.

root@kitploit:~
# Replace DOMAIN with target domain
curl -s "https://login.microsoftonline.com/DOMAIN/FederationMetadata/2007-06/FederationMetadata.xml"

Ответ содержит (XML):

  • Идентификатор сущности (Entity ID)
  • Сертификаты подписи X509
  • Конечные точки токенов
  • Форматы NameID
  • Типы утверждений (Claim Types)
  • Информация о сервере ADFS (если федеративный)

7. Обнаружение Seamless SSO (-SeamlessSSO)

Определяет, включён ли Desktop SSO (бесшовный единый вход, Seamless Single Sign-On).

7.1 Проверка конфигурации SSO

root@kitploit:~
# Replace DOMAIN with target domain
curl -s "https://login.microsoftonline.com/getuserrealm.srf?login=user@DOMAIN&json=1"

Ищите: DesktopSsoEnabled: true

7.2 Тестирование конечной точки Autologon (если SSO включён)

root@kitploit:~
# Replace TENANT_ID with the tenant GUID
curl -s -o /dev/null -w "%{http_code}" \
  "https://autologon.microsoftazuread-sso.com/TENANT_ID/winauth/trust/2005/usernamemixed"

8. Перечисление поддоменов Azure (-SubdomainEnum)

Обнаруживает ресурсы Azure, связанные с тенантом. Использует DNS-резолвинг.

Основные поддомены Azure для проверки:

root@kitploit:~
# Replace TENANT with tenant name

# Primary tenant domain
dig A TENANT.onmicrosoft.com

# SharePoint
dig A TENANT.sharepoint.com

# OneDrive
dig A TENANT-my.sharepoint.com

# Azure Blob Storage
dig A TENANT.blob.core.windows.net

# Azure Files
dig A TENANT.file.core.windows.net

# Azure Queue
dig A TENANT.queue.core.windows.net

# Azure Table
dig A TENANT.table.core.windows.net

# Key Vault
dig A TENANT.vault.azure.net

# Azure SQL
dig A TENANT.database.windows.net

# App Service
dig A TENANT.azurewebsites.net

# Kudu/Git Deployment
dig A TENANT.scm.azurewebsites.net

# Cloud Services
dig A TENANT.cloudapp.net
dig A TENANT.cloudapp.azure.com

# Exchange Online Protection
dig A TENANT.mail.protection.outlook.com

# Container Registry
dig A TENANT.azurecr.io

# Redis Cache
dig A TENANT.redis.cache.windows.net

# Service Bus
dig A TENANT.servicebus.windows.net

# Front Door
dig A TENANT.azurefd.net

# Azure AD B2C
dig A TENANT.b2clogin.com

# API Management
dig A TENANT.azure-api.net

# Traffic Manager
dig A TENANT.trafficmanager.net

# HDInsight
dig A TENANT.azurehdinsight.net

# Cosmos DB
dig A TENANT.documents.azure.com

# Cognitive Search
dig A TENANT.search.windows.net

# Cognitive Services
dig A TENANT.cognitiveservices.azure.com

Примеры перестановок:

root@kitploit:~
# Common suffixes: dev, prod, staging, test, uat, qa, backup, dr, api, app, web, data
dig A TENANTdev.blob.core.windows.net
dig A TENANTprod.azurewebsites.net
dig A TENANTstaging.vault.azure.net

9. Перечисление через Autodiscover V2 (-AutodiscoverEnum)

Проверяет существование пользователя через JSON-конечную точку Autodiscover V2.

root@kitploit:~
# Replace EMAIL with target email address
curl -s -o /dev/null -w "%{http_code}" -L --max-redirs 0 \
  "https://autodiscover-s.outlook.com/autodiscover/autodiscover.json?Email=EMAIL&Protocol=Autodiscoverv1"

Коды состояния:

  • 200 = Пользователь существует
  • 302 (редирект) = Пользователь не существует
  • 401/403 = Пользователь существует (требуется аутентификация)

10. Перечисление через Autodiscover V1 (-AutodiscoverV1Enum)

Устаревшая XML-конечная точка Autodiscover для перечисления пользователей.

root@kitploit:~
# Replace DOMAIN with target domain
# Replace EMAIL with target email address

curl -s -X POST "https://autodiscover.DOMAIN/autodiscover/autodiscover.xml" \
  -H "Content-Type: text/xml; charset=utf-8" \
  -d '<?xml version="1.0" encoding="utf-8"?>
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006">
  <Request>
    <EMailAddress>EMAIL</EMailAddress>
    <AcceptableResponseSchema>http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a</AcceptableResponseSchema>
  </Request>
</Autodiscover>'

Индикаторы ответа:

  • RedirectAddr в ответе = Пользователь существует
  • RedirectUrl в ответе = Может указывать на существование
  • ErrorCode: InvalidUser = Пользователь не существует
  • ErrorCode: NoError = Пользователь существует

11. Проба Exchange Web Services (EWS) (-EwsProbe)

Проверяет конечные точки EWS на предмет доступности.

root@kitploit:~
# Office 365 EWS endpoints
curl -s -o /dev/null -w "%{http_code}" \
  "https://outlook.office365.com/EWS/Exchange.asmx"

curl -s -o /dev/null -w "%{http_code}" \
  "https://outlook.office.com/EWS/Exchange.asmx"

# On-premises/custom domain endpoints
# Replace DOMAIN with target domain
curl -s -o /dev/null -w "%{http_code}" \
  "https://DOMAIN/EWS/Exchange.asmx"

curl -s -o /dev/null -w "%{http_code}" \
  "https://mail.DOMAIN/EWS/Exchange.asmx"

curl -s -o /dev/null -w "%{http_code}" \
  "https://ews.DOMAIN/EWS/Exchange.asmx"

Коды состояния, указывающие на доступность:

  • 200, 301, 302, 307, 308 = Доступно
  • 401, 403 = Доступно (требуется аутентификация)
  • 404 = Недоступно

12. Обнаружение SharePoint/Teams (-SharePointEnum)

Обнаруживает сайты SharePoint и Teams.

root@kitploit:~
# Replace TENANT with tenant name

# Tenant root
curl -s -o /dev/null -w "%{http_code}" \
  "https://TENANT.sharepoint.com"

# OneDrive root
curl -s -o /dev/null -w "%{http_code}" \
  "https://TENANT-my.sharepoint.com"

# Common site names to check
# Sites: intranet, portal, hr, finance, it, projects, marketing, sales, support, admin, security, dev

curl -s -o /dev/null -w "%{http_code}" \
  "https://TENANT.sharepoint.com/sites/intranet"

curl -s -o /dev/null -w "%{http_code}" \
  "https://TENANT.sharepoint.com/sites/portal"

curl -s -o /dev/null -w "%{http_code}" \
  "https://TENANT.sharepoint.com/sites/hr"

# Teams sites
curl -s -o /dev/null -w "%{http_code}" \
  "https://TENANT.sharepoint.com/teams/intranet"

curl -s -o /dev/null -w "%{http_code}" \
  "https://TENANT.sharepoint.com/teams/it"

Коды состояния:

  • 200 = Сайт существует и общедоступен
  • 401, 403 = Сайт существует, требуется аутентификация
  • 301, 302, 307, 308 = Сайт существует, происходит перенаправление
  • 404 = Сайт не существует

13. Обнаружение Lync (-LyncProbe)

Проверяет конечные точки обнаружения Lync.

root@kitploit:~
# Replace DOMAIN with target domain

curl -s -o /dev/null -w "%{http_code}" \
  "https://lyncdiscover.DOMAIN"

curl -s -o /dev/null -w "%{http_code}" \
  "https://lyncdiscoverinternal.DOMAIN"

curl -s -o /dev/null -w "%{http_code}" \
  "https://sip.DOMAIN"

14. Расширенное перечисление безопасности почты (-MailEnum)

14.1 DNS-записи (используйте dig/nslookup)

root@kitploit:~
# MX Records
dig MX DOMAIN

# SPF (TXT record)
dig TXT DOMAIN

# DMARC
dig TXT _dmarc.DOMAIN

# DKIM (common selectors)
dig TXT selector1._domainkey.DOMAIN  # Microsoft 365
dig TXT selector2._domainkey.DOMAIN  # Microsoft 365
dig TXT google._domainkey.DOMAIN     # Google Workspace
dig TXT default._domainkey.DOMAIN
dig TXT dkim._domainkey.DOMAIN
dig TXT mail._domainkey.DOMAIN
dig TXT k1._domainkey.DOMAIN         # Mailchimp
dig TXT s1._domainkey.DOMAIN
dig TXT s2._domainkey.DOMAIN

# MTA-STS
dig TXT _mta-sts.DOMAIN

# BIMI
dig TXT default._bimi.DOMAIN

# TLS-RPT
dig TXT _smtp._tls.DOMAIN

14.2 Политика MTA-STS (HTTP)

root@kitploit:~
# Replace DOMAIN with target domain
curl -s "https://mta-sts.DOMAIN/.well-known/mta-sts.txt"

15. Обнаружение ресурсов по Tenant ID (-TenantReverse)

По заданному Tenant ID обнаруживает связанные ресурсы.

root@kitploit:~
# Replace TENANT_ID with the tenant GUID

# OpenID Configuration (v2.0)
curl -s "https://login.microsoftonline.com/TENANT_ID/v2.0/.well-known/openid-configuration"

# OpenID Configuration (v1.0)
curl -s "https://login.microsoftonline.com/TENANT_ID/.well-known/openid-configuration"

# Graph Tenant Information (requires auth but reveals info in error)
curl -s "https://graph.microsoft.com/v1.0/tenantRelationships/findTenantInformationByTenantId(tenantId='TENANT_ID')"

# Device Code Endpoint
curl -s "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/devicecode"

# OAuth Authorize (reveals tenant branding)
curl -s "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/authorize?client_id=00000000-0000-0000-0000-000000000000&response_type=code&scope=openid"

16. Проба конфигурации OAuth (-OAuthProbe)

Перечисляет конфигурацию OAuth путём анализа сообщений об ошибках для известных идентификаторов приложений.

root@kitploit:~
# Replace TENANT with tenant ID or domain

# Well-known Microsoft Application IDs to test:

# Microsoft Graph
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=00000003-0000-0000-c000-000000000000&response_type=code&scope=openid"

# Azure AD Graph (Deprecated)
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=00000002-0000-0000-c000-000000000000&response_type=code&scope=openid"

# Office 365 Exchange Online
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=00000002-0000-0ff1-ce00-000000000000&response_type=code&scope=openid"

# Office 365 SharePoint Online
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=00000003-0000-0ff1-ce00-000000000000&response_type=code&scope=openid"

# Skype for Business Online
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=00000004-0000-0ff1-ce00-000000000000&response_type=code&scope=openid"

# Azure Service Management API
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=797f4846-ba00-4fd7-ba43-dac1f8f63013&response_type=code&scope=openid"

# Microsoft Azure PowerShell
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=1950a258-227b-4e31-a9cf-717495945fc2&response_type=code&scope=openid"

# Microsoft Azure CLI
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=04b07795-8ddb-461a-bbee-02f9e1bf7b46&response_type=code&scope=openid"

# Microsoft Office
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=d3590ed6-52b3-4102-aeff-aad2292ab01c&response_type=code&scope=openid"

# Microsoft Teams
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=1fec8e78-bce4-4aaf-ab1b-5451cc387264&response_type=code&scope=openid"

# Microsoft Planner
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=9bc3ab49-b65d-410a-85ad-de819febfddc&response_type=code&scope=openid"

# Microsoft Graph Command Line Tools
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=de8bc8b5-d9f9-48b1-a8ad-b748da725064&response_type=code&scope=openid"

# Azure Portal
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c&response_type=code&scope=openid"

# Microsoft App Access Panel
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=0000000c-0000-0000-c000-000000000000&response_type=code&scope=openid"

# Microsoft Outlook
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=5d661950-3475-41cd-a2c3-d671a3162bc1&response_type=code&scope=openid"

# Microsoft OneDrive
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=eb1cec80-a830-486e-b45b-f57094f163f9&response_type=code&scope=openid"

# SharePoint Online Client
curl -s "https://login.microsoftonline.com/TENANT/oauth2/v2.0/authorize?client_id=57fb890c-0dab-4253-a5e0-7188c88b2bb4&response_type=code&scope=openid"

Коды ошибок AADSTS для анализа:

  • AADSTS700016 = Приложение не найдено в каталоге
  • AADSTS650057 = Недопустимый ресурс (приложение существует, но проблема с конфигурацией)
  • AADSTS65001 = Требуется согласие пользователя/администратора (приложение существует)
  • AADSTS50011 = Несоответствие Reply URL (приложение существует)
  • AADSTS90002 = Тенант не найден

Краткий справочник: сводка всех конечных точек


Примечания

  • Для этих запросов аутентификация не требуется
  • Перечисление OneDrive полностью недетектируемо (не создаёт журналов аудита)
  • Используйте соответствующие задержки/троттлинг, чтобы избежать ограничения частоты запросов
  • Некоторые методы могут вызывать срабатывание оповещений в системах мониторинга безопасности
  • Всегда обеспечивайте надлежащую авторизацию перед выполнением перечисления

Скачать инструмент
МетодКонечная точкаHTTP-метод
Информация о тенантеhttps://azmap.dev/api/tenant?domain={domain}&extract=trueGET
Конфигурация OpenIDhttps://login.microsoftonline.com/{domain}/v2.0/.well-known/openid-configurationGET
Доменная областьhttps://login.microsoftonline.com/getuserrealm.srf?login=user@{domain}&json=1GET
Перечисление пользователейhttps://login.microsoftonline.com/common/GetCredentialTypePOST
Перечисление OneDrivehttps://{tenant}-my.sharepoint.com/personal/{user_path}/_layouts/15/onedrive.aspxHEAD
Метаданные федерацииhttps://login.microsoftonline.com/{domain}/FederationMetadata/2007-06/FederationMetadata.xmlGET
Autologonhttps://autologon.microsoftazuread-sso.com/{tenant_id}/winauth/trust/2005/usernamemixedGET
Autodiscover V2https://autodiscover-s.outlook.com/autodiscover/autodiscover.json?Email={email}&Protocol=Autodiscoverv1GET
Autodiscover V1https://autodiscover.{domain}/autodiscover/autodiscover.xmlPOST
EWShttps://outlook.office365.com/EWS/Exchange.asmxGET
SharePointhttps://{tenant}.sharepoint.com/sites/{site}GET
Lynchttps://lyncdiscover.{domain}GET
Политика MTA-STShttps://mta-sts.{domain}/.well-known/mta-sts.txtGET
OAuth-пробаhttps://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?client_id={app_id}&response_type=code&scope=openidGET