Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
AzureADEnumeration — Enumeração não autenticada do Microsoft Entra ID (Azure AD) | Kitploit
Ferramentas/GitHubGitHub/logisek/azureadenumeration
Segurança de Infraestrutura em NuvemOSINT (Inteligência de Fontes Abertas)ReconhecimentoColeta de InformaçõesTestes de PenetraçãoSegurança na NuvemEnumeração de SubdomíniosSegurança de EmailAnálise de DNS
GitHublogisek/azureadenumeration

AzureADEnumeration

Enumeração não autenticada do Microsoft Entra ID (Azure AD)

79510há 7 mesesRevisado pelo Kitploit
Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Enumeração não autenticada do Microsoft Entra ID (Azure AD)

Fonte: Kit EvilMist - Invoke-EntraEnum.ps1 - https://github.com/Logisek/EvilMist


1. Descoberta de inquilino (-TenantInfo)

Descobre informações do inquilino usando APIs públicas.

1.1 API azmap.dev

Obtém os detalhes do inquilino a partir do serviço azmap.dev.

root@kitploit:~
# Substitua DOMAIN pelo domínio alvo (ex.: example.com)
curl -s "https://azmap.dev/api/tenant?domain=DOMAIN&extract=true"

A resposta contém: tenantId, displayName, countryCode

1.2 Configuração OpenID

Obtém a configuração do OpenID Connect, incluindo os endpoints de token.

root@kitploit:~
# Substitua DOMAIN pelo domínio alvo
curl -s "https://login.microsoftonline.com/DOMAIN/v2.0/.well-known/openid-configuration"

A resposta contém: token_endpoint, authorization_endpoint, jwks_uri, issuer


2. Informações de realm do domínio (-DomainRealm)

Obtém o namespace do domínio e a configuração de federação.

root@kitploit:~
# Substitua DOMAIN pelo domínio alvo
curl -s "https://login.microsoftonline.com/getuserrealm.srf?login=enum@DOMAIN&json=1"

A resposta contém:

  • NameSpaceType - "Managed" ou "Federated"
  • AuthURL - URL de autenticação da federação (se federado)
  • CloudInstanceName - Instância de nuvem (ex.: "microsoftonline.com")
  • FederationBrandName - Nome de marca da organização
  • DomainName - Domínio verificado

3. Enumeração de usuários via GetCredentialType (-UserEnum)

Verifica se um usuário existe no Azure AD. Retorna códigos diferentes com base na existência do usuário.

root@kitploit:~
# Substitua EMAIL pelo endereço de e-mail alvo
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
  }'

Códigos IfExistsResult:

  • 0 = Usuário existe (IdP do Azure)
  • 1 = Usuário não existe
  • 2 = Solicitação inválida
  • 4 = Erro no servidor
  • 5 = Usuário existe (IdP federado)
  • 6 = Usuário existe (IdP externo não Microsoft)

4. Reconhecimento DNS (-DnsEnum)

Consultas DNS para registros relacionados ao Azure/M365. Use os comandos dig, nslookup ou host.

4.1 Registros CNAME

root@kitploit:~
# CNAME do domínio principal
dig CNAME DOMAIN

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

4.2 Registros TXT/SPF

root@kitploit:~
dig TXT DOMAIN

4.3 Registros 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 Registros MX

root@kitploit:~
dig MX DOMAIN

5. Enumeração de usuários do OneDrive (-OneDriveEnum)

Totalmente indetectável - Nenhum log de auditoria é gerado.

Verifica se um usuário existe ao sondar a URL do site pessoal do OneDrive.

root@kitploit:~
# Substitua TENANT pelo nome do inquilino (ex.: example)
# Substitua USERPATH pelo e-mail formatado como: user_domain_com (@ e . substituídos por _)
# Exemplo: [email protected] vira john_doe_example_com

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

Códigos de status:

  • 200 = Usuário existe, OneDrive acessível
  • 401/403 = Usuário existe, acesso negado
  • 404 = Usuário não existe

Exemplo para o usuário [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. Metadados de federação (-FederationMeta)

Obtém os metadados de federação, incluindo certificados de assinatura e endpoints de token.

root@kitploit:~
# Substitua DOMAIN pelo domínio alvo
curl -s "https://login.microsoftonline.com/DOMAIN/FederationMetadata/2007-06/FederationMetadata.xml"

A resposta contém (XML):

  • ID da entidade
  • Certificados de assinatura X509
  • Endpoints de token
  • Formatos NameID
  • Tipos de declaração
  • Informações do servidor ADFS (se federado)

7. Detecção de SSO contínuo (-SeamlessSSO)

Detecta se o SSO de desktop (Seamless Single Sign-On) está habilitado.

7.1 Verificar a configuração de SSO

root@kitploit:~
# Substitua DOMAIN pelo domínio alvo
curl -s "https://login.microsoftonline.com/getuserrealm.srf?login=user@DOMAIN&json=1"

Procure por: DesktopSsoEnabled: true

7.2 Testar o endpoint Autologon (se o SSO estiver habilitado)

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

8. Enumeração de subdomínios do Azure (-SubdomainEnum)

Descobre os recursos do Azure associados a um inquilino. Usa resolução DNS.

Subdomínios principais do Azure a verificar:

root@kitploit:~
# Substitua TENANT pelo nome do inquilino

# Domínio principal do inquilino
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

# Implantação Kudu/Git
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

Exemplos de permutação:

root@kitploit:~
# Sufixos comuns: 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. Enumeração via Autodiscover V2 (-AutodiscoverEnum)

Verifica a existência do usuário por meio do endpoint JSON do Autodiscover V2.

root@kitploit:~
# Substitua EMAIL pelo endereço de e-mail alvo
curl -s -o /dev/null -w "%{http_code}" -L --max-redirs 0 \
  "https://autodiscover-s.outlook.com/autodiscover/autodiscover.json?Email=EMAIL&Protocol=Autodiscoverv1"

Códigos de status:

  • 200 = Usuário existe
  • 302 (redirecionamento) = Usuário não existe
  • 401/403 = Usuário existe (autenticação necessária)

10. Enumeração via Autodiscover V1 (-AutodiscoverV1Enum)

Endpoint Autodiscover legado baseado em XML para enumeração de usuários.

root@kitploit:~
# Substitua DOMAIN pelo domínio alvo
# Substitua EMAIL pelo endereço de e-mail alvo

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>'

Indicadores de resposta:

  • RedirectAddr na resposta = Usuário existe
  • RedirectUrl na resposta = Pode indicar a existência
  • ErrorCode: InvalidUser = Usuário não existe
  • ErrorCode: NoError = Usuário existe

11. Sonda do Exchange Web Services (EWS) (-EwsProbe)

Sonda endpoints EWS para verificar exposição.

root@kitploit:~
# Endpoints EWS do Office 365
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"

# Endpoints on-premises/domínio personalizado
# Substitua DOMAIN pelo domínio alvo
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"

Códigos de status que indicam disponibilidade:

  • 200, 301, 302, 307, 308 = Disponível
  • 401, 403 = Disponível (autenticação necessária)
  • 404 = Não disponível

12. Descoberta de SharePoint/Teams (-SharePointEnum)

Descobre sites do SharePoint e do Teams.

root@kitploit:~
# Substitua TENANT pelo nome do inquilino

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

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

# Nomes de site comuns a verificar
# 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"

# Sites do Teams
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"

Códigos de status:

  • 200 = O site existe e é acessível publicamente
  • 401, 403 = O site existe, autenticação necessária
  • 301, 302, 307, 308 = O site existe, redirecionando
  • 404 = O site não existe

13. Descoberta do Lync (-LyncProbe)

Sonda os endpoints de descoberta do Lync for Business.

root@kitploit:~
# Substitua DOMAIN pelo domínio alvo

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. Enumeração aprimorada de segurança de e-mail (-MailEnum)

14.1 Registros DNS (use dig/nslookup)

root@kitploit:~
# Registros MX
dig MX DOMAIN

# SPF (registro TXT)
dig TXT DOMAIN

# DMARC
dig TXT _dmarc.DOMAIN

# DKIM (seletores comuns)
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 Política MTA-STS (HTTP)

root@kitploit:~
# Substitua DOMAIN pelo domínio alvo
curl -s "https://mta-sts.DOMAIN/.well-known/mta-sts.txt"

15. Descoberta de recursos pelo ID do inquilino (-TenantReverse)

Dado um ID de inquilino, descobre os recursos associados.

root@kitploit:~
# Substitua TENANT_ID pelo GUID do inquilino

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

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

# Informações do inquilino no Graph (exige autenticação, mas revela informações no erro)
curl -s "https://graph.microsoft.com/v1.0/tenantRelationships/findTenantInformationByTenantId(tenantId='TENANT_ID')"

# Endpoint de código de dispositivo
curl -s "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/devicecode"

# Autorização OAuth (revela a marca do inquilino)
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. Sonda de configuração OAuth (-OAuthProbe)

Enumera a configuração OAuth por meio da análise de mensagens de erro de IDs de aplicativo conhecidos.

root@kitploit:~
# Substitua TENANT pelo ID do inquilino ou domínio

# IDs de aplicativo Microsoft conhecidos para testar:

# 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 (Obsoleto)
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"

# API do Azure Service Management
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"

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

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

# Painel de acesso de aplicativos da Microsoft
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"

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

Códigos de erro AADSTS para analisar:

  • AADSTS700016 = Aplicativo não encontrado no diretório
  • AADSTS650057 = Recurso inválido (o aplicativo existe, mas há problema de configuração)
  • AADSTS65001 = Consentimento do usuário/administrador necessário (o aplicativo existe)
  • AADSTS50011 = URL de resposta incompatível (o aplicativo existe)
  • AADSTS90002 = Inquilino não encontrado

Referência rápida: resumo de todos os endpoints

MétodoEndpointMétodo HTTP
Informações do inquilinohttps://azmap.dev/api/tenant?domain={domain}&extract=trueGET
Configuração OpenIDhttps://login.microsoftonline.com/{domain}/v2.0/.well-known/openid-configurationGET
Realm do domíniohttps://login.microsoftonline.com/getuserrealm.srf?login=user@{domain}&json=1GET
Enumeração de usuárioshttps://login.microsoftonline.com/common/GetCredentialTypePOST
Enumeração do OneDrivehttps://{tenant}-my.sharepoint.com/personal/{user_path}/_layouts/15/onedrive.aspxHEAD
Metadados de federaçãohttps://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
Política MTA-STShttps://mta-sts.{domain}/.well-known/mta-sts.txtGET
Sonda OAuthhttps://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?client_id={app_id}&response_type=code&scope=openidGET

Notas

  • Nenhuma autenticação é necessária para qualquer uma dessas solicitações
  • A enumeração do OneDrive é totalmente indetectável (nenhum log de auditoria)
  • Use throttling/atrasos adequados para evitar rate limiting
  • Alguns métodos podem disparar alertas em sistemas de monitoramento de segurança
  • Sempre garanta a devida autorização antes de realizar a enumeração

Baixar ferramenta