Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
AzureADEnumeration — Microsoft Entra ID (Azure AD) 인증되지 않은 열거 | Kitploit
도구/GitHubGitHub/logisek/azureadenumeration
Cloud Infrastructure SecurityOSINT (Open Source Intelligence)ReconnaissanceInformation GatheringPenetration TestingCloud SecuritySubdomain EnumerationEmail SecurityDNS Analysis
GitHublogisek/azureadenumeration

AzureADEnumeration

Microsoft Entra ID (Azure AD) 인증되지 않은 열거

7956개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

Microsoft Entra ID (Azure AD) 무인증 열거

출처: EvilMist Toolkit - Invoke-EntraEnum.ps1 - https://github.com/Logisek/EvilMist


1. 테넌트 검색 (-TenantInfo)

공개 API를 사용하여 테넌트 정보를 검색합니다.

1.1 azmap.dev API

azmap.dev 서비스에서 테넌트 세부 정보를 검색합니다.

root@kitploit:~
# DOMAIN을 대상 도메인으로 바꾸세요 (예: example.com)
curl -s "https://azmap.dev/api/tenant?domain=DOMAIN&extract=true"

응답에 포함된 항목: tenantId, displayName, countryCode

1.2 OpenID 구성

토큰 엔드포인트를 포함한 OpenID Connect 구성을 검색합니다.

root@kitploit:~
# 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:~
# 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:~
# EMAIL을 대상 이메일 주소로 바꾸세요
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)

Azure/M365 관련 레코드에 대한 DNS 쿼리입니다. dig, nslookup 또는 host 명령을 사용하세요.

4.1 CNAME 레코드

root@kitploit:~
# 기본 도메인 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)

완전히 탐지 불가 - 감사 로그가 생성되지 않습니다.

사용자의 OneDrive 개인 사이트 URL을 프로빙하여 사용자 존재 여부를 확인합니다.

root@kitploit:~
# TENANT를 테넌트 이름으로 바꾸세요 (예: example)
# USERPATH를 다음과 같은 형식의 이메일로 바꾸세요: user_domain_com (@와 .은 _로 대체)
# 예: [email protected] → 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:~
# DOMAIN을 대상 도메인으로 바꾸세요
curl -s "https://login.microsoftonline.com/DOMAIN/FederationMetadata/2007-06/FederationMetadata.xml"

응답에 포함된 항목 (XML):

  • 엔터티 ID
  • X509 서명 인증서
  • 토큰 엔드포인트
  • NameID 형식
  • 클레임 유형
  • ADFS 서버 정보 (페더레이션된 경우)

7. Seamless SSO 탐지 (-SeamlessSSO)

Desktop SSO(Seamless Single Sign-On)가 활성화되었는지 탐지합니다.

7.1 SSO 구성 확인

root@kitploit:~
# DOMAIN을 대상 도메인으로 바꾸세요
curl -s "https://login.microsoftonline.com/getuserrealm.srf?login=user@DOMAIN&json=1"

확인할 항목: DesktopSsoEnabled: true

7.2 Autologon 엔드포인트 테스트 (SSO가 활성화된 경우)

root@kitploit:~
# TENANT_ID를 테넌트 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:~
# TENANT를 테넌트 이름으로 바꾸세요

# 기본 테넌트 도메인
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 배포
dig A TENANT.scm.azurewebsites.net

# 클라우드 서비스
dig A TENANT.cloudapp.net
dig A TENANT.cloudapp.azure.com

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

# 컨테이너 레지스트리
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:~
# 일반적인 접미사: 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)

Autodiscover V2 JSON 엔드포인트를 통해 사용자 존재 여부를 확인합니다.

root@kitploit:~
# EMAIL을 대상 이메일 주소로 바꾸세요
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:~
# DOMAIN을 대상 도메인으로 바꾸세요
# EMAIL을 대상 이메일 주소로 바꾸세요

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 엔드포인트
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"

# 온프레미스/사용자 지정 도메인 엔드포인트
# 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:~
# TENANT를 테넌트 이름으로 바꾸세요

# 테넌트 루트
curl -s -o /dev/null -w "%{http_code}" \
  "https://TENANT.sharepoint.com"

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

# 확인할 일반적인 사이트 이름
# 사이트: 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 사이트
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 for Business 검색 엔드포인트를 프로빙합니다.

root@kitploit:~
# 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 레코드
dig MX DOMAIN

# SPF (TXT 레코드)
dig TXT DOMAIN

# DMARC
dig TXT _dmarc.DOMAIN

# DKIM (일반적인 셀렉터)
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:~
# DOMAIN을 대상 도메인으로 바꾸세요
curl -s "https://mta-sts.DOMAIN/.well-known/mta-sts.txt"

15. 테넌트 ID 리소스 검색 (-TenantReverse)

테넌트 ID가 주어지면 연결된 리소스를 검색합니다.

root@kitploit:~
# TENANT_ID를 테넌트 GUID로 바꾸세요

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

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

# Graph 테넌트 정보 (인증 필요하지만 오류에서 정보가 노출됨)
curl -s "https://graph.microsoft.com/v1.0/tenantRelationships/findTenantInformationByTenantId(tenantId='TENANT_ID')"

# 디바이스 코드 엔드포인트
curl -s "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/devicecode"

# OAuth 승인 (테넌트 브랜딩 노출)
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)

잘 알려진 애플리케이션 ID의 오류 메시지 분석을 통해 OAuth 구성을 열거합니다.

root@kitploit:~
# TENANT를 테넌트 ID 또는 도메인으로 바꾸세요

# 테스트할 잘 알려진 Microsoft 애플리케이션 ID:

# 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 (사용 중단됨)
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 명령줄 도구
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 앱 액세스 패널
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 클라이언트
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 = 회신 URL 불일치 (앱 존재)
  • AADSTS90002 = 테넌트를 찾을 수 없음

빠른 참조: 전체 엔드포인트 요약


참고 사항

  • 이러한 모든 요청에는 인증이 필요하지 않습니다
  • OneDrive 열거는 완전히 탐지 불가합니다 (감사 로그 없음)
  • 속도 제한을 피하기 위해 적절한 스로틀링/지연을 사용하세요
  • 일부 방법은 보안 모니터링 시스템에서 경고를 트리거할 수 있습니다
  • 열거를 수행하기 전에 항상 적절한 권한이 있는지 확인하세요

도구 다운로드
방법엔드포인트HTTP 메서드
테넌트 정보https://azmap.dev/api/tenant?domain={domain}&extract=trueGET
OpenID 구성https://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
OneDrive 열거https://{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-STS 정책https://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