
EvilMist is a collection of scripts and utilities designed to support cloud penetration testing & red teaming. The toolkit helps identify misconfigurations, assess privilege-escalation paths, and simulate attack techniques. EvilMist aims to streamline cloud-focused red-team workflows and improve the overall security posture of cloud infrastructures
EvilMist는 클라우드 보안 구성 감사, 클라우드 침투 테스트 및 클라우드 레드 팀 운영을 지원하도록 설계된 스크립트 및 유틸리티 모음입니다. 이 툴킷은 잘못된 구성을 식별하고, 권한 상승 경로를 평가하며, 공격 기술을 시뮬레이션하는 데 도움을 줍니다. EvilMist는 클라우드 중심의 레드 팀 워크플로우를 간소화하고 클라우드 인프라의 전반적인 보안 태세를 개선하는 것을 목표로 합니다.
인증되지 않은 Azure/Entra ID 열거 및 정찰 도구입니다. 인증 토큰 없이 공개적으로 접근 가능한 API 및 DNS 쿼리를 사용하여 수동/반수동 열거를 수행합니다.
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraEnum-PS1.md | scripts/powershell/Invoke-EntraEnum.ps1 |
포괄적인 Azure Entra ID(Azure AD) 사용자 열거 및 보안 평가 도구로, PowerShell 및 Python 버전으로 제공됩니다.
주요 기능:
/users 접근이 차단된 경우에도 작동| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraRecon-PS1.md | scripts/powershell/Invoke-EntraRecon.ps1 |
| Python | EntraRecon-PY.md |
MFA(Multi-Factor Authentication)가 활성화되지 않은 Azure Entra ID 사용자를 식별하기 위한 집중 보안 평가 도구입니다. 공유 사서함 탐지 및 로그인 활동 분석을 위한 고급 기능을 포함합니다.
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraMFACheck-PS1.md | scripts/powershell/Invoke-EntraMFACheck.ps1 |
Azure Entra ID의 외부 사용자를 식별, 분석 및 보안 태세를 평가하기 위한 포괄적인 게스트 계정 분석 도구입니다. 게스트 액세스 거버넌스 및 보안 감사에 필수적입니다.
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraGuestCheck-PS1.md | scripts/powershell/Invoke-EntraGuestCheck.ps1 |
PowerShell 도구, 관리 포털, 핵심 Microsoft 365 서비스, 권한 있는 ID 관리를 포함한 10개의 중요 관리 애플리케이션에 대한 액세스 권한이 있는 Azure Entra ID 사용자를 식별하는 포괄적인 보안 평가 도구입니다. 권한 있는 액세스 거버넌스 및 관리 도구 감사에 필수적입니다.
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraAppAccess-PS1.md | scripts/powershell/Invoke-EntraAppAccess.ps1 |
하위 폴더로 이동하지 않고 루트 디렉터리에서 모든 스크립트 실행:```powershell
.\Invoke-EvilMist.ps1
.\Invoke-EvilMist.ps1 -Script EntraRecon -ExportPath "users.csv"
.\Invoke-EvilMist.ps1 -List
.\Invoke-EvilMist.ps1 -Script EntraMFACheck -Matrix -OnlyNoMFA
**사용 가능한 스크립트:** EntraEnum, EntraRecon, EntraMFACheck, EntraGuestCheck, EntraAppAccess, EntraRoleCheck, EntraServicePrincipalCheck, EntraConditionalAccessCheck, EntraAdminUnitCheck, EntraStaleAccountCheck, EntraDeviceCheck, EntraSSPRCheck, EntraPasswordPolicyCheck, EntraLegacyAuthCheck, EntraLicenseCheck, EntraDirectorySyncCheck, EntraPowerPlatformCheck, EntraGroupCheck, EntraApplicationCheck, EntraAttackPathCheck, EntraAzureRBACCheck, EntraOAuthConsentCheck, EntraSignInRiskCheck, EntraPIMCheck, EntraKeyVaultCheck, EntraStorageAccountCheck, EntraNetworkSecurityCheck, EntraManagedIdentityCheck, EntraExchangeCheck, EntraSharePointCheck, EntraTeamsCheck, EntraAzureAttackPathCheck, EntraReport, EntraComplianceCheck, SharePointEnum
### 인증되지 않은 Entra ID 열거 (PowerShell)
**요구 사항:** PowerShell 7+ (추가 모듈 불필요)```powershell
# Basic domain enumeration (TenantInfo, DomainRealm, DNS)
.\Invoke-EvilMist.ps1 -Script EntraEnum -Domain example.com
# Check if email exists
.\Invoke-EvilMist.ps1 -Script EntraEnum -Email [email protected] -UserEnum
# Bulk user enumeration from file
.\Invoke-EvilMist.ps1 -Script EntraEnum -EmailList users.txt -UserEnum -Throttle 1
# Full enumeration with export
.\Invoke-EvilMist.ps1 -Script EntraEnum -Domain example.com -All -ExportPath results.json
# Stealth mode
.\Invoke-EvilMist.ps1 -Script EntraEnum -Domain example.com -All -EnableStealth
📖 전체 문서: EntraEnum-PS1.md
요구 사항: PowerShell 7+```powershell
.\Invoke-EvilMist.ps1 -Script EntraRecon
.\Invoke-EvilMist.ps1 -Script EntraRecon -UseAzCliToken
.\Invoke-EvilMist.ps1 -Script EntraRecon -ExportPath "users.csv"
.\Invoke-EvilMist.ps1 -Script EntraRecon -EnableStealth
### Enumerate-EntraUsers (Python)
**요구 사항:** Python 3.8+, `msal`, `requests`
📖 **전체 문서:** [EntraRecon-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraRecon-PS1.md)```bash
# Install dependencies
pip install -r requirements.txt
# Run directly from subfolder
python scripts\python\entra_recon.py
📖 전체 문서: EntraRecon-PY.md
요구 사항: PowerShell 7+, Microsoft.Graph 모듈```powershell
.\Invoke-EvilMist.ps1 -Script EntraMFACheck
.\Invoke-EvilMist.ps1 -Script EntraMFACheck
.\Invoke-EvilMist.ps1 -Script EntraMFACheck -ExportPath "no-mfa-users.csv"
.\Invoke-EvilMist.ps1 -Script EntraMFACheck -Matrix -IncludeDisabledUsers
.\Invoke-EvilMist.ps1 -Script EntraMFACheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraMFACheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraMFACheck-PS1.md)
### 게스트 계정 열거 (PowerShell)
**요구 사항:** PowerShell 7+, Microsoft.Graph 모듈```powershell
# Enumerate all guest accounts
.\Invoke-EvilMist.ps1 -Script EntraGuestCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraGuestCheck -ExportPath "guest-accounts.csv"
# Show only guests without MFA in matrix view
.\Invoke-EvilMist.ps1 -Script EntraGuestCheck -Matrix -OnlyNoMFA
# Include disabled guests with stealth mode
.\Invoke-EvilMist.ps1 -Script EntraGuestCheck -IncludeDisabledGuests -EnableStealth -QuietStealth
📖 전체 문서: EntraGuestCheck-PS1.md
요구 사항: PowerShell 7+, Microsoft.Graph 모듈```powershell
.\Invoke-EvilMist.ps1 -Script EntraAppAccess
.\Invoke-EvilMist.ps1 -Script EntraAppAccess -ExportPath "app-access.csv"
.\Invoke-EvilMist.ps1 -Script EntraAppAccess -Matrix -OnlyNoMFA
.\Invoke-EvilMist.ps1 -Script EntraAppAccess -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraAppAccess-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraAppAccess-PS1.md)
### 권한 있는 역할 확인 (PowerShell)
**요구 사항:** PowerShell 7+, Microsoft.Graph 모듈```powershell
# Check users with privileged directory roles
.\Invoke-EvilMist.ps1 -Script EntraRoleCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraRoleCheck -ExportPath "privileged-roles.csv"
# Show only users without MFA in matrix view
.\Invoke-EvilMist.ps1 -Script EntraRoleCheck -Matrix -OnlyNoMFA
# Show only permanent (non-PIM) assignments
.\Invoke-EvilMist.ps1 -Script EntraRoleCheck -OnlyPermanent -ExportPath "permanent-admins.csv"
# Stealth mode scan
.\Invoke-EvilMist.ps1 -Script EntraRoleCheck -EnableStealth -QuietStealth
📖 전체 문서: EntraRoleCheck-PS1.md
요구 사항: PowerShell 7+, Microsoft.Graph 모듈```powershell
.\Invoke-EvilMist.ps1 -Script EntraServicePrincipalCheck
.\Invoke-EvilMist.ps1 -Script EntraServicePrincipalCheck -ExportPath "service-principals.csv"
.\Invoke-EvilMist.ps1 -Script EntraServicePrincipalCheck -Matrix -OnlyExpiredCredentials
.\Invoke-EvilMist.ps1 -Script EntraServicePrincipalCheck -OnlyHighPermission -ExportPath "high-perm-sp.csv"
.\Invoke-EvilMist.ps1 -Script EntraServicePrincipalCheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraServicePrincipalCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraServicePrincipalCheck-PS1.md)
**주요 기능:**
- **포괄적인 역할 적용 범위** - 모든 디렉토리 역할(CRITICAL, HIGH, MEDIUM, LOW 위험 수준 포함)을 열거합니다.
- **PIM 지원** - 영구(활성) 및 PIM 관리(적격/활성) 역할 할당을 모두 식별합니다.
- **할당 추적** - 할당 날짜, 기간 및 만료 날짜를 표시합니다.
- **MFA 상태 감지** - 다단계 인증(MFA)이 없는 권한 있는 사용자를 식별합니다.
- **마지막 로그인 추적** - 로그인 날짜/시간 및 활동 패턴을 표시합니다.
- **위험 평가** - 역할 중요도와 보안 태세를 기반으로 사용자를 위험 수준별로 분류합니다.
- **활동 분석** - 로그인 통계, 오래된 계정, 비활성 사용자.
- **매트릭스 보기** - 빠른 시각적 스캔을 위한 간결한 테이블 형식.
- **필터링 옵션** - MFA가 없는 사용자, 영구 할당만 표시 또는 비활성화된 계정 포함.
- **내보내기 옵션** - 포괄적인 역할 할당 세부 정보가 포함된 CSV/JSON.
- **스텔스 모드** - 탐지를 피하기 위해 구성 가능한 지연 및 지터.
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraServicePrincipalCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraServicePrincipalCheck-PS1.md) | `scripts/powershell/Invoke-EntraServicePrincipalCheck.ps1` |
---
### 애플리케이션 등록 보안 점검 (PowerShell)
**요구 사항:** PowerShell 7+, Microsoft.Graph 모듈```powershell
# Check all application registrations and analyze security posture
.\Invoke-EvilMist.ps1 -Script EntraApplicationCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraApplicationCheck -ExportPath "applications.csv"
# Show only applications with expired credentials in matrix view
.\Invoke-EvilMist.ps1 -Script EntraApplicationCheck -Matrix -OnlyExpiredCredentials
# Show only high-permission applications
.\Invoke-EvilMist.ps1 -Script EntraApplicationCheck -OnlyHighPermission -ExportPath "high-perm-apps.csv"
# Show only applications with credentials
.\Invoke-EvilMist.ps1 -Script EntraApplicationCheck -OnlyWithCredentials -ExportPath "apps-with-creds.csv"
# Stealth mode scan
.\Invoke-EvilMist.ps1 -Script EntraApplicationCheck -EnableStealth -QuietStealth
📖 전체 문서: EntraApplicationCheck-PS1.md
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraApplicationCheck-PS1.md | scripts/powershell/Invoke-EntraApplicationCheck.ps1 |
요구 사항: PowerShell 7+, Microsoft.Graph 모듈```powershell
.\Invoke-EvilMist.ps1 -Script EntraConditionalAccessCheck
.\Invoke-EvilMist.ps1 -Script EntraConditionalAccessCheck -ExportPath "ca-policies.csv"
.\Invoke-EvilMist.ps1 -Script EntraConditionalAccessCheck -Matrix -OnlyWithExclusions
.\Invoke-EvilMist.ps1 -Script EntraConditionalAccessCheck -OnlyMFAgaps -ExportPath "mfa-gaps.csv"
.\Invoke-EvilMist.ps1 -Script EntraConditionalAccessCheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraConditionalAccessCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraConditionalAccessCheck-PS1.md)
### 관리 단위 보안 점검 (PowerShell)
**요구 사항:** PowerShell 7+, Microsoft.Graph modules```powershell
# Analyze all Administrative Units and scoped role assignments
.\Invoke-EvilMist.ps1 -Script EntraAdminUnitCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraAdminUnitCheck -ExportPath "admin-units.csv"
# Show only scoped administrators without MFA in matrix view
.\Invoke-EvilMist.ps1 -Script EntraAdminUnitCheck -Matrix -OnlyNoMFA
# Include disabled accounts
.\Invoke-EvilMist.ps1 -Script EntraAdminUnitCheck -IncludeDisabledUsers -ExportPath "all-admins.csv"
# Stealth mode scan
.\Invoke-EvilMist.ps1 -Script EntraAdminUnitCheck -EnableStealth -QuietStealth
📖 전체 문서: EntraAdminUnitCheck-PS1.md
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraAdminUnitCheck-PS1.md | scripts/powershell/Invoke-EntraAdminUnitCheck.ps1 |
요구 사항: PowerShell 7+, Microsoft.Graph 모듈```powershell
.\Invoke-EvilMist.ps1 -Script EntraStaleAccountCheck
.\Invoke-EvilMist.ps1 -Script EntraStaleAccountCheck -ExportPath "stale-accounts.csv"
.\Invoke-EvilMist.ps1 -Script EntraStaleAccountCheck -IncludeDisabledUsers -Matrix
.\Invoke-EvilMist.ps1 -Script EntraStaleAccountCheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraStaleAccountCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraStaleAccountCheck-PS1.md)
**주요 기능:**
- **오래된 계정 감지** - 최근 90일 이상 로그인하지 않은 계정 식별
- **로그인 이력 없는 계정 감지** - 한 번도 사용되지 않은 계정 검색
- **라이선스 낭비 감지** - 비활성화되었으나 라이선스가 할당된 계정 식별
- **암호 만료 추적** - 암호가 만료된 계정 감지
- **계정 연령 분석** - 계정 연령 계산 및 비활성과의 상관 관계 분석
- **위험 평가** - 위험 수준(CRITICAL/HIGH/MEDIUM/LOW)별 계정 분류
- **활동 분석** - 로그인 통계, 오래된 계정 분석
- **매트릭스 보기** - 빠른 시각적 스캔을 위한 간결한 테이블 형식
- **필터 옵션** - 비활성화된 계정 포함 또는 제외
- **내보내기 옵션** - 포괄적인 계정 세부 정보가 포함된 CSV/JSON
- **스텔스 모드** - 탐지 방지를 위한 구성 가능한 지연 및 지터
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraStaleAccountCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraStaleAccountCheck-PS1.md) | `scripts/powershell/Invoke-EntraStaleAccountCheck.ps1` |
---
### 디바이스 신뢰 및 규정 준수 확인 (PowerShell)
**요구 사항:** PowerShell 7+, Microsoft.Graph 모듈```powershell
# Analyze all registered devices
.\Invoke-EvilMist.ps1 -Script EntraDeviceCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraDeviceCheck -ExportPath "devices.csv"
# Show only non-compliant devices in matrix view
.\Invoke-EvilMist.ps1 -Script EntraDeviceCheck -Matrix -OnlyNonCompliant
# Show only BYOD devices
.\Invoke-EvilMist.ps1 -Script EntraDeviceCheck -OnlyBYOD -ExportPath "byod-devices.csv"
# Show only devices with stale sign-ins
.\Invoke-EvilMist.ps1 -Script EntraDeviceCheck -OnlyStale -ExportPath "stale-devices.csv"
# Stealth mode scan
.\Invoke-EvilMist.ps1 -Script EntraDeviceCheck -EnableStealth -QuietStealth
📖 Full documentation: EntraDeviceCheck-PS1.md
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraDeviceCheck-PS1.md | scripts/powershell/Invoke-EntraDeviceCheck.ps1 |
요구 사항: PowerShell 7+, Microsoft.Graph 모듈```powershell
.\Invoke-EvilMist.ps1 -Script EntraSSPRCheck
.\Invoke-EvilMist.ps1 -Script EntraSSPRCheck -ExportPath "sspr-users.csv"
.\Invoke-EvilMist.ps1 -Script EntraSSPRCheck -Matrix -OnlyNoBackup
.\Invoke-EvilMist.ps1 -Script EntraSSPRCheck -IncludeDisabledUsers -ExportPath "all-sspr-users.csv"
.\Invoke-EvilMist.ps1 -Script EntraSSPRCheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraSSPRCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraSSPRCheck-PS1.md)
**주요 기능:**
- **SSPR 상태 감지** - SSPR이 활성화, 등록 또는 가능한 사용자를 식별합니다.
- **등록 방법 분석** - SSPR에 대한 등록된 인증 방법을 분석합니다.
- **백업 방법 감지** - 백업 방법이 구성되지 않은 사용자를 식별합니다.
- **강력한 방법 감지** - 강력한 인증 방법과 약한 인증 방법을 구분합니다.
- **MFA 상태 상관 관계** - SSPR 구성을 MFA 상태와 상호 참조합니다.
- **마지막 로그인 추적** - 로그인 날짜/시간 및 활동 패턴을 표시합니다.
- **위험 평가** - SSPR 구성을 기반으로 사용자를 위험 수준(HIGH/MEDIUM/LOW)으로 분류합니다.
- **활동 분석** - 로그인 통계, 오래된 계정, 비활성 사용자
- **행렬 보기** - 빠른 시각적 스캔을 위한 간결한 테이블 형식
- **필터링 옵션** - 백업 방법이 없는 사용자만 표시하거나 비활성화된 계정 포함
- **내보내기 옵션** - 포괄적인 SSPR 세부 정보가 포함된 CSV/JSON
- **스텔스 모드** - 탐지를 피하기 위한 구성 가능한 지연 및 지터
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraSSPRCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraSSPRCheck-PS1.md) | `scripts/powershell/Invoke-EntraSSPRCheck.ps1` |
---
### 암호 정책 보안 점검 (PowerShell)
**요구 사항:** PowerShell 7+, Microsoft.Graph 모듈```powershell
# Analyze all password policies
.\Invoke-EvilMist.ps1 -Script EntraPasswordPolicyCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraPasswordPolicyCheck -ExportPath "password-policies.csv"
# Show only users with weak password policies in matrix view
.\Invoke-EvilMist.ps1 -Script EntraPasswordPolicyCheck -Matrix -OnlyWeakPolicies
# Show only users with password never expires
.\Invoke-EvilMist.ps1 -Script EntraPasswordPolicyCheck -OnlyNeverExpires -ExportPath "never-expires.csv"
# Stealth mode scan
.\Invoke-EvilMist.ps1 -Script EntraPasswordPolicyCheck -EnableStealth -QuietStealth
📖 전체 문서: EntraPasswordPolicyCheck-PS1.md
핵심 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraPasswordPolicyCheck-PS1.md | scripts/powershell/Invoke-EntraPasswordPolicyCheck.ps1 |
요구 사항: PowerShell 7+, Microsoft.Graph 모듈```powershell
.\Invoke-EvilMist.ps1 -Script EntraLegacyAuthCheck
.\Invoke-EvilMist.ps1 -Script EntraLegacyAuthCheck -ExportPath "legacy-auth.csv"
.\Invoke-EvilMist.ps1 -Script EntraLegacyAuthCheck -Matrix -OnlyRecent
.\Invoke-EvilMist.ps1 -Script EntraLegacyAuthCheck -IncludeDisabledUsers -ExportPath "all-legacy-users.csv"
.\Invoke-EvilMist.ps1 -Script EntraLegacyAuthCheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraLegacyAuthCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraLegacyAuthCheck-PS1.md)
**주요 기능:**
- **레거시 프로토콜 탐지** - 10가지 레거시 인증 프로토콜(IMAP, POP3, SMTP, Exchange ActiveSync 등)을 식별합니다.
- **로그인 로그 분석** - 감사 로그에서 레거시 인증 사용(최근 90일)을 쿼리합니다.
- **마지막 사용 추적** - 마지막 레거시 인증 날짜와 시간을 표시합니다.
- **프로토콜 통계** - 프로토콜별 성공/실패 로그인을 추적합니다.
- **MFA 상태 탐지** - 레거시 인증을 사용하는 다단계 인증(MFA)이 없는 사용자를 식별합니다.
- **위험 평가** - 사용 패턴과 최근성을 기준으로 사용자를 위험 수준(CRITICAL/HIGH/MEDIUM/LOW)으로 분류합니다.
- **활동 분석** - 로그인 통계, 프로토콜 분석, 사용 최근성
- **매트릭스 보기** - 빠른 시각적 스캔을 위한 컴팩트 테이블 형식
- **필터링 옵션** - 최근 사용만 표시하거나 비활성화된 계정 포함
- **내보내기 옵션** - 포괄적인 레거시 인증 세부 정보를 포함한 CSV/JSON
- **스텔스 모드** - 탐지를 피하기 위한 구성 가능한 지연 및 지터
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraLegacyAuthCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraLegacyAuthCheck-PS1.md) | `scripts/powershell/Invoke-EntraLegacyAuthCheck.ps1` |
---
### 라이선스 및 SKU 분석 (PowerShell)
**요구 사항:** PowerShell 7+, Microsoft.Graph 모듈```powershell
# Analyze all license SKUs and user assignments
.\Invoke-EvilMist.ps1 -Script EntraLicenseCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraLicenseCheck -ExportPath "licenses.csv"
# Show only users with privileged licenses (E5, P2) in matrix view
.\Invoke-EvilMist.ps1 -Script EntraLicenseCheck -Matrix -OnlyPrivilegedLicenses
# Show only unused license assignments
.\Invoke-EvilMist.ps1 -Script EntraLicenseCheck -OnlyUnusedLicenses -ExportPath "unused-licenses.csv"
# Stealth mode scan
.\Invoke-EvilMist.ps1 -Script EntraLicenseCheck -EnableStealth -QuietStealth
📖 전체 문서: EntraLicenseCheck-PS1.md
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraLicenseCheck-PS1.md | scripts/powershell/Invoke-EntraLicenseCheck.ps1 |
요구 사항: PowerShell 7+, Microsoft.Graph 모듈```powershell
.\Invoke-EvilMist.ps1 -Script EntraDirectorySyncCheck
.\Invoke-EvilMist.ps1 -Script EntraDirectorySyncCheck -ExportPath "sync-status.csv"
.\Invoke-EvilMist.ps1 -Script EntraDirectorySyncCheck -Matrix -OnlySyncErrors
.\Invoke-EvilMist.ps1 -Script EntraDirectorySyncCheck -OnlyStaleSync -ExportPath "stale-sync.csv"
.\Invoke-EvilMist.ps1 -Script EntraDirectorySyncCheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraDirectorySyncCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraDirectorySyncCheck-PS1.md)
**주요 기능:**
- **동기화 상태 분석** - 동기화된 사용자와 클라우드 전용 사용자 식별
- **동기화 오류 탐지** - 모든 프로비저닝 및 동기화 오류 열거
- **오래된 동기화 탐지** - 오래된 동기화(7일 초과) 사용자 식별
- **동기화 충돌 식별** - 중복 속성 및 충돌 감지
- **동기화 범위 분석** - 동기화 구성 및 범위 확인
- **위험 평가** - 동기화 상태에 따라 사용자 위험 수준(CRITICAL/HIGH/MEDIUM/LOW) 분류
- **활동 분석** - 동기화 통계, 오류 분석, 도메인 분석
- **매트릭스 보기** - 빠른 시각적 스캔을 위한 간결한 테이블 형식
- **필터링 옵션** - 동기화 오류만 표시, 오래된 동기화만 표시, 비활성화된 계정 포함
- **내보내기 옵션** - 포괄적인 동기화 세부 정보가 포함된 CSV/JSON
- **스텔스 모드** - 탐지를 방지하기 위한 구성 가능한 지연 및 지터
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraDirectorySyncCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraDirectorySyncCheck-PS1.md) | `scripts/powershell/Invoke-EntraDirectorySyncCheck.ps1` |
---
### Power Platform 열거 (PowerShell)
**요구 사항:** PowerShell 7+, Microsoft.Graph 모듈, Power Platform 관리자 또는 Environment Maker 권한
**인증:** 스크립트가 Power Platform API 인증을 자동으로 처리합니다:
- **기본값**: 디바이스 코드 흐름(브라우저 프롬프트) - 설정 불필요
- **Azure CLI**: `-UseAzCliToken` 사용 - 필요 시 자동으로 `az login` 실행
- **Azure PowerShell**: `-UseAzPowerShellToken` 사용 - 필요 시 자동으로 `Connect-AzAccount` 실행 (Graph 인증과 동일한 계정 사용)```powershell
# Enumerate all Power Apps and Power Automate flows
.\Invoke-EvilMist.ps1 -Script EntraPowerPlatformCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraPowerPlatformCheck -ExportPath "power-platform.csv"
# Show only high-risk resources (CRITICAL/HIGH) in matrix view
.\Invoke-EvilMist.ps1 -Script EntraPowerPlatformCheck -Matrix -OnlyHighRisk
# Show only resources with sensitive connectors
.\Invoke-EvilMist.ps1 -Script EntraPowerPlatformCheck -OnlySensitiveConnectors -ExportPath "sensitive.csv"
# Use Azure CLI (automatically runs 'az login' if needed)
.\Invoke-EvilMist.ps1 -Script EntraPowerPlatformCheck -UseAzCliToken
# Use Azure PowerShell (automatically runs 'Connect-AzAccount' if needed, uses Graph context account)
.\Invoke-EvilMist.ps1 -Script EntraPowerPlatformCheck -UseAzPowerShellToken
# Stealth mode scan
.\Invoke-EvilMist.ps1 -Script EntraPowerPlatformCheck -EnableStealth -QuietStealth
📖 전체 문서: EntraPowerPlatformCheck-PS1.md
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraPowerPlatformCheck-PS1.md | scripts/powershell/Invoke-EntraPowerPlatformCheck.ps1 |
요구 사항: PowerShell 7+, Microsoft.Graph 모듈```powershell
.\Invoke-EvilMist.ps1 -Script EntraAttackPathCheck
.\Invoke-EvilMist.ps1 -Script EntraAttackPathCheck -ExportPath "attack-paths.csv"
.\Invoke-EvilMist.ps1 -Script EntraAttackPathCheck -Matrix -OnlyHighRisk
.\Invoke-EvilMist.ps1 -Script EntraAttackPathCheck -IncludeDisabledUsers -ExportPath "all-paths.csv"
.\Invoke-EvilMist.ps1 -Script EntraAttackPathCheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraAttackPathCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraAttackPathCheck-PS1.md)
**주요 기능:**
- **권한 상승 분석** - 역할 할당 가능 그룹을 통해 상승된 권한으로의 경로를 식별합니다.
- **비밀번호 재설정 위임 탐지** - 다른 사용자의 비밀번호를 재설정할 수 있는 사용자를 찾습니다.
- **전이 그룹 구성원 분석** - 권한 있는 그룹에 대한 간접적인 액세스를 식별합니다.
- **공유 사서함 액세스 탐지** - 측면 이동에 사용될 수 있는 공유 사서함을 식별합니다.
- **위험 평가** - 경로 유형 및 사용자 보안 상태에 따라 공격 경로를 위험 수준(CRITICAL/HIGH/MEDIUM)으로 분류합니다.
- **경로 복잡도 분석** - 공격 경로 복잡도(Low/Medium/High)를 평가합니다.
- **MFA 상태 탐지** - 공격 경로에서 다중 인증(MFA)이 없는 사용자를 식별합니다.
- **마지막 로그인 추적** - 로그인 날짜/시간 및 활동 패턴을 표시합니다.
- **활동 분석** - 로그인 통계, 유휴 계정, 비활성 사용자
- **매트릭스 보기** - 빠른 시각적 스캔을 위한 간결한 테이블 형식
- **필터링 옵션** - 고위험 경로만 표시하거나 비활성화된 계정 포함
- **내보내기 옵션** - 포괄적인 공격 경로 세부 정보가 포함된 CSV/JSON
- **스텔스 모드** - 탐지를 피하기 위한 구성 가능한 지연 및 지터
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraAttackPathCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraAttackPathCheck-PS1.md) | `scripts/powershell/Invoke-EntraAttackPathCheck.ps1` |
---
### Azure RBAC 역할 할당 감사 및 드리프트 탐지 (PowerShell)
**요구 사항:** PowerShell 7+, Az.Accounts, Az.Resources, Microsoft.Graph.Authentication 모듈```powershell
# Export all Azure RBAC role assignments across ALL tenants and subscriptions to baseline JSON
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode Export
# Export to specific file
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode Export -ExportPath "rbac-baseline.json"
# Skip tenants with MFA/Conditional Access issues (common in multi-tenant scenarios)
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode Export -SkipFailedTenants
# Show all users with their Azure permissions in matrix format
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode Export -SkipFailedTenants -ShowAllUsersPermissions
# Expand group memberships to show all users who have Azure access via groups
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode Export -SkipFailedTenants -ExpandGroupMembers
# Combined: Show all users including those with access via groups
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode Export -SkipFailedTenants -ExpandGroupMembers -ShowAllUsersPermissions
# Detect drift against baseline across all tenants
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode DriftDetect -BaselinePath "rbac-baseline.json"
# Detect drift with matrix view and export report
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode DriftDetect -BaselinePath "rbac-baseline.json" -Matrix -ExportPath "drift-report.json"
# Export specific tenant only
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode Export -TenantId "tenant-id-123"
# Export specific subscription with Azure CLI auth
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode Export -SubscriptionId "sub-123" -UseAzCliToken
# Stealth mode drift detection
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode DriftDetect -BaselinePath "baseline.json" -EnableStealth -QuietStealth
# Export excluding PIM/JIT time-bounded assignments (focus on permanent assignments only)
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode Export -ExcludePIM
# Detect drift excluding PIM/JIT assignments (ignore temporary elevated access)
.\Invoke-EvilMist.ps1 -Script EntraAzureRBACCheck -Mode DriftDetect -BaselinePath "baseline.json" -ExcludePIM
📖 전체 문서: EntraAzureRBACCheck-PS1.md
주요 기능:
-SkipFailedTenants)-ShowAllUsersPermissions)-ExpandGroupMembers)-ExcludePIM)| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraAzureRBACCheck-PS1.md | scripts/powershell/Invoke-EntraAzureRBACCheck.ps1 |
요구 사항: PowerShell 7+, Microsoft.Graph 모듈```powershell
.\Invoke-EvilMist.ps1 -Script EntraOAuthConsentCheck
.\Invoke-EvilMist.ps1 -Script EntraOAuthConsentCheck -ExportPath "consent-grants.csv"
.\Invoke-EvilMist.ps1 -Script EntraOAuthConsentCheck -Matrix -OnlyHighRisk
.\Invoke-EvilMist.ps1 -Script EntraOAuthConsentCheck -OnlyThirdParty -OnlyAdminConsent
.\Invoke-EvilMist.ps1 -Script EntraOAuthConsentCheck -StaleDays 60 -OnlyStale
.\Invoke-EvilMist.ps1 -Script EntraOAuthConsentCheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraOAuthConsentCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraOAuthConsentCheck-PS1.md)
**주요 기능:**
- **OAuth2PermissionGrant 열거** - 테넌트의 모든 위임된 권한 부여를 열거합니다.
- **관리자 vs 사용자 동의 탐지** - 테넌트 전체 관리자 동의와 개별 사용자 동의를 구분합니다.
- **위험한 권한 탐지** - 고위험 범위(Mail.ReadWrite, Files.ReadWrite.All, User.ReadWrite.All 등)를 식별합니다.
- **만료된 동의 탐지** - 사용되지 않는 동의 부여를 찾습니다(구성 가능한 임계값, 기본 90일).
- **타사 앱 식별** - 확장된 권한을 가진 비 Microsoft 애플리케이션을 자동으로 식별합니다.
- **로그인 활동 상관 관계 분석** - 로그인 활동과 교차 참조하여 유휴 앱을 탐지합니다.
- **위험 평가** - 동의 유형, 권한 및 앱 출처에 따라 동의 부여를 위험 수준(CRITICAL/HIGH/MEDIUM/LOW)으로 분류합니다.
- **게시자 분석** - 애플리케이션 게시자 및 확인된 게시자 상태를 추적합니다.
- **리소스 추적** - 각 앱이 액세스할 수 있는 API/리소스를 식별합니다.
- **매트릭스 보기** - 빠른 시각적 검색을 위한 간결한 테이블 형식입니다.
- **필터 옵션** - 고위험, 타사, 만료 또는 관리자 동의 부여만 표시합니다.
- **내보내기 옵션** - 종합적인 동의 부여 세부 정보가 포함된 CSV/JSON입니다.
- **스텔스 모드** - 탐지를 피하기 위해 구성 가능한 지연 및 지터를 사용합니다.
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraOAuthConsentCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraOAuthConsentCheck-PS1.md) | `scripts/powershell/Invoke-EntraOAuthConsentCheck.ps1` |
---
### 로그인 위험 검사 (PowerShell)
**요구 사항:** PowerShell 7+, Microsoft.Graph 모듈, Azure AD Premium P2```powershell
# Enumerate all risky users
.\Invoke-EvilMist.ps1 -Script EntraSignInRiskCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraSignInRiskCheck -ExportPath "risky-users.csv"
# Show only high-risk users in matrix view
.\Invoke-EvilMist.ps1 -Script EntraSignInRiskCheck -Matrix -OnlyHighRisk
# Show only active (not remediated) risks
.\Invoke-EvilMist.ps1 -Script EntraSignInRiskCheck -OnlyActive
# Include risky sign-ins from the last 7 days
.\Invoke-EvilMist.ps1 -Script EntraSignInRiskCheck -IncludeRiskySignIns -DaysBack 7
# Full analysis with pattern detection
.\Invoke-EvilMist.ps1 -Script EntraSignInRiskCheck -IncludeRiskySignIns -IncludeRiskDetections -Matrix
# Stealth mode scan
.\Invoke-EvilMist.ps1 -Script EntraSignInRiskCheck -EnableStealth -QuietStealth
📖 전체 문서: EntraSignInRiskCheck-PS1.md
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraSignInRiskCheck-PS1.md | scripts/powershell/Invoke-EntraSignInRiskCheck.ps1 |
요구 사항: PowerShell 7+, Microsoft.Graph 모듈, Azure AD Premium P2```powershell
.\Invoke-EvilMist.ps1 -Script EntraPIMCheck
.\Invoke-EvilMist.ps1 -Script EntraPIMCheck -ExportPath "pim-audit.csv"
.\Invoke-EvilMist.ps1 -Script EntraPIMCheck -Matrix -OnlyCritical
.\Invoke-EvilMist.ps1 -Script EntraPIMCheck -OnlyHighPrivilege -MaxActivationHours 2
.\Invoke-EvilMist.ps1 -Script EntraPIMCheck -IncludeGroups -IncludeAccessReviews
.\Invoke-EvilMist.ps1 -Script EntraPIMCheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraPIMCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraPIMCheck-PS1.md)
**주요 기능:**
- **JIT Access Configuration Audit** - 최대 활성화 기간, 승인 요구 사항, MFA 적용 여부 분석
- **Approval Workflow Analysis** - 승인 없거나 승인자가 누락된 역할 식별
- **Justification Requirements** - 활성화 시 필수 사유 제공이 없는 역할 탐지
- **MFA Enforcement** - 활성화 시 MFA가 필요하지 않은 역할 식별
- **Notification Configuration** - 역할 활성화에 대한 관리자 알림 설정 분석
- **Permanent Assignment Detection** - PIM을 우회하는 영구 권한 접근 발견
- **PIM for Groups** - 그룹 기반 권한 접근 관리 분석
- **Access Reviews** - 정기적 액세스 인증 설정 확인
- **Risk Assessment** - 구성 격차에 따라 역할을 위험 수준(CRITICAL/HIGH/MEDIUM/LOW)으로 분류
- **Eligible vs Active Analysis** - 자격 할당과 활성/영구 할당 비교
- **Break-Glass Account Detection** - 비상 계정일 수 있는 영구 할당 식별
- **Matrix View** - 빠른 시각적 스캔을 위한 간결한 테이블 형식
- **Filtering Options** - 중요 역할, 높은 권한 역할 또는 잘못된 구성만 표시
- **Export Options** - CSV/JSON 형식의 포괄적인 PIM 구성 상세 정보
- **Stealth Mode** - 탐지 방지를 위한 구성 가능한 지연 및 지터
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraPIMCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraPIMCheck-PS1.md) | `scripts/powershell/Invoke-EntraPIMCheck.ps1` |
---
### Azure Key Vault 보안 점검 (PowerShell)
**요구 사항:** PowerShell 7+, Az.Accounts, Az.KeyVault, Az.Resources, Az.Monitor 모듈```powershell
# Perform comprehensive Key Vault security audit
.\Invoke-EvilMist.ps1 -Script EntraKeyVaultCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraKeyVaultCheck -ExportPath "keyvault-audit.csv"
# Show only critical findings in matrix view
.\Invoke-EvilMist.ps1 -Script EntraKeyVaultCheck -Matrix -OnlyCritical
# Audit only Key Vaults with public access enabled
.\Invoke-EvilMist.ps1 -Script EntraKeyVaultCheck -OnlyPublicAccess
# Include secret and certificate expiration analysis
.\Invoke-EvilMist.ps1 -Script EntraKeyVaultCheck -IncludeSecrets -IncludeCertificates -ExpirationDays 90
# Stealth mode scan
.\Invoke-EvilMist.ps1 -Script EntraKeyVaultCheck -EnableStealth -QuietStealth
📖 전체 문서: EntraKeyVaultCheck-PS1.md
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraKeyVaultCheck-PS1.md | scripts/powershell/Invoke-EntraKeyVaultCheck.ps1 |
노출된 스토리지 계정과 데이터 유출 위험을 탐지하는 포괄적인 Azure Storage Account 보안 감사 도구입니다. 공용 Blob 컨테이너, 네트워크 잘못된 구성, 데이터 보호 격차를 식별합니다.```powershell
.\Invoke-EvilMist.ps1 -Script EntraStorageAccountCheck
.\Invoke-EvilMist.ps1 -Script EntraStorageAccountCheck -ExportPath "storage-audit.csv"
.\Invoke-EvilMist.ps1 -Script EntraStorageAccountCheck -Matrix -OnlyCritical
.\Invoke-EvilMist.ps1 -Script EntraStorageAccountCheck -OnlyAnonymousContainers -IncludeContainers
.\Invoke-EvilMist.ps1 -Script EntraStorageAccountCheck -IncludeKeyAge -KeyRotationDays 60
.\Invoke-EvilMist.ps1 -Script EntraStorageAccountCheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraStorageAccountCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraStorageAccountCheck-PS1.md)
**주요 기능:**
- **공용 Blob 컨테이너 탐지** - 익명 액세스(Blob/컨테이너 수준)가 있는 컨테이너 식별
- **HTTPS 적용 확인** - 암호화되지 않은 HTTP 트래픽을 허용하는 스토리지 계정 탐지
- **공유 키 액세스 분석** - Azure AD 인증 대신 스토리지 키를 사용하는 계정 식별
- **네트워크 보안 감사** - 공용 액세스, 방화벽 규칙, VNet 통합, 프라이빗 엔드포인트 확인
- **데이터 보호 분석** - Blob 일시 삭제, 컨테이너 일시 삭제, 버전 관리 상태
- **키 순환 추적** - 순환 임계값을 초과하는 스토리지 계정 키 식별
- **교차 테넌트 복제** - 다른 테넌트로의 데이터 복제 탐지(유출 위험)
- **TLS 버전 확인** - 최소 TLS 1.2 적용 확인
- **인프라 암호화** - 이중 암호화 구성 확인
- **진단 로깅 확인** - 감사 로깅 활성화 확인
- **위험 평가** - 스토리지 계정을 위험 수준(CRITICAL/HIGH/MEDIUM/LOW)으로 분류
- **매트릭스 보기** - 빠른 시각적 스캔을 위한 간결한 테이블 형식
- **필터링 옵션** - 중요 항목, 공용 액세스 또는 익명 컨테이너만 표시
- **내보내기 옵션** - 포괄적인 스토리지 계정 세부 정보가 포함된 CSV/JSON
- **스텔스 모드** - 탐지를 피하기 위한 구성 가능한 지연 및 지터
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraStorageAccountCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraStorageAccountCheck-PS1.md) | `scripts/powershell/Invoke-EntraStorageAccountCheck.ps1` |
---
### 네트워크 보안 확인 (PowerShell)
**요구 사항:** PowerShell 7+, Azure PowerShell 모듈```powershell
# Perform comprehensive Network Security audit
.\Invoke-EvilMist.ps1 -Script EntraNetworkSecurityCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraNetworkSecurityCheck -ExportPath "network-audit.csv"
# Show only NSGs with open management ports
.\Invoke-EvilMist.ps1 -Script EntraNetworkSecurityCheck -OnlyOpenPorts -Matrix
# Full scan with VNets, Bastion, and DDoS analysis
.\Invoke-EvilMist.ps1 -Script EntraNetworkSecurityCheck -IncludeVNets -IncludeBastion -IncludeDDoS -Matrix
# Include NSG flow logs analysis
.\Invoke-EvilMist.ps1 -Script EntraNetworkSecurityCheck -IncludeFlowLogs -Matrix
# Stealth mode scan
.\Invoke-EvilMist.ps1 -Script EntraNetworkSecurityCheck -EnableStealth -QuietStealth
📖 전체 문서: EntraNetworkSecurityCheck-PS1.md
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraNetworkSecurityCheck-PS1.md | scripts/powershell/Invoke-EntraNetworkSecurityCheck.ps1 |
과도한 권한과 보안 위험을 식별하는 포괄적인 Azure 관리 ID 보안 감사 도구입니다. 높은 권한의 관리 ID, 구독 간 액세스, 사용되지 않는 ID를 감지합니다.```powershell
.\Invoke-EvilMist.ps1 -Script EntraManagedIdentityCheck
.\Invoke-EvilMist.ps1 -Script EntraManagedIdentityCheck -ExportPath "managed-identity-audit.csv"
.\Invoke-EvilMist.ps1 -Script EntraManagedIdentityCheck -OnlyHighPrivilege -Matrix
.\Invoke-EvilMist.ps1 -Script EntraManagedIdentityCheck -OnlyCrossSubscription -Matrix
.\Invoke-EvilMist.ps1 -Script EntraManagedIdentityCheck -IncludeRoleDetails -Matrix
.\Invoke-EvilMist.ps1 -Script EntraManagedIdentityCheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraManagedIdentityCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraManagedIdentityCheck-PS1.md)
**주요 기능:**
- **ID 인벤토리** - 시스템 할당 및 사용자 할당 관리 ID 열거
- **역할 할당 분석** - 각 관리 ID에 대한 Azure RBAC 권한
- **고권한 탐지** - 소유자, 기여자, 사용자 액세스 관리자 역할 식별
- **중요 역할 탐지** - 소유자, UAA 또는 RBAC 관리자 역할이 있는 ID 플래그 지정
- **구독 간 액세스** - 홈 구독을 넘어서는 권한이 있는 ID 탐지
- **미사용 ID 탐지** - 역할 할당이 없는 관리 ID 찾기
- **리소스 범위** - VM, App Services, Function Apps, 사용자 할당 ID
- **범위 분석** - 구독 전체 대 리소스 그룹 대 리소스 수준 권한
- **위험 평가** - CRITICAL/HIGH/MEDIUM/LOW 분류 및 결과
- **매트릭스 보기** - 빠른 검토를 위한 간결한 표 형식
- **내보내기 옵션** - 포괄적인 ID 세부 정보가 포함된 CSV/JSON
- **스텔스 모드** - 탐지를 피하기 위한 구성 가능한 지연 및 지터
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraManagedIdentityCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraManagedIdentityCheck-PS1.md) | `scripts/powershell/Invoke-EntraManagedIdentityCheck.ps1` |
---
### Exchange Online 보안 감사
메일 기반 공격 벡터와 데이터 유출 위험을 탐지하는 포괄적인 Exchange Online 보안 감사 도구입니다. 외부 주소로 전달되는 받은 편지함 규칙, 의심스러운 전송 규칙, 사서함 위임 및 감사 로깅 격차를 식별합니다.```powershell
# Perform comprehensive Exchange Online security audit
.\Invoke-EvilMist.ps1 -Script EntraExchangeCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraExchangeCheck -ExportPath "exchange-audit.csv"
# Show only mailboxes with external forwarding
.\Invoke-EvilMist.ps1 -Script EntraExchangeCheck -OnlyExternalForwarding -Matrix
# Show only suspicious inbox rules
.\Invoke-EvilMist.ps1 -Script EntraExchangeCheck -OnlySuspiciousRules -Matrix
# Include transport rules and OWA policies
.\Invoke-EvilMist.ps1 -Script EntraExchangeCheck -IncludeTransportRules -IncludeOWAPolicies -Matrix
# Stealth mode scan
.\Invoke-EvilMist.ps1 -Script EntraExchangeCheck -EnableStealth -QuietStealth
📖 전체 문서: EntraExchangeCheck-PS1.md
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraExchangeCheck-PS1.md | scripts/powershell/Invoke-EntraExchangeCheck.ps1 |
과도한 공유 및 외부 액세스 위험을 식별하기 위한 포괄적인 SharePoint Online 보안 평가 도구입니다. 테넌트 수준 및 사이트 수준의 공유 구성을 감사하여 잠재적인 데이터 노출을 탐지합니다.```powershell
.\Invoke-EvilMist.ps1 -Script EntraSharePointCheck
.\Invoke-EvilMist.ps1 -Script EntraSharePointCheck -ExportPath "sharepoint-audit.csv"
.\Invoke-EvilMist.ps1 -Script EntraSharePointCheck -OnlyAnonymousLinks -Matrix
.\Invoke-EvilMist.ps1 -Script EntraSharePointCheck -OnlyPermissiveOverrides -Matrix
.\Invoke-EvilMist.ps1 -Script EntraSharePointCheck -IncludeOneDrive -IncludeSensitivityLabels -Matrix
.\Invoke-EvilMist.ps1 -Script EntraSharePointCheck -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraSharePointCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraSharePointCheck-PS1.md)
**주요 기능:**
- **테넌트 공유 설정** - 조직 전체 외부 공유 정책 분석
- **익명 링크 탐지** - "Anyone" 링크를 허용하는 사이트 식별
- **사이트 수준 재정의** - 테넌트보다 더 허용적인 공유 설정이 적용된 사이트 탐지
- **게스트 액세스 분석** - 민감한 사이트에 대한 외부 사용자 액세스
- **OneDrive 공유** - 개인 스토리지 외부 공유 구성
- **민감도 레이블 적용 범위** - 데이터 분류가 누락된 사이트 식별
- **기본 링크 분석** - 기본 링크 유형 및 권한 구성
- **링크 만료 정책** - 익명 링크 만료 설정
- **도메인 제한** - 허용/차단 목록 구성
- **위험 평가** - CRITICAL/HIGH/MEDIUM/LOW 분류 및 결과
- **매트릭스 보기** - 빠른 검토를 위한 간결한 표 형식
- **내보내기 옵션** - CSV/JSON 형식의 포괄적인 사이트 세부 정보
- **스텔스 모드** - 탐지 회피를 위한 구성 가능한 지연 및 지터
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraSharePointCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraSharePointCheck-PS1.md) | `scripts/powershell/Invoke-EntraSharePointCheck.ps1` |
---
### SharePoint Online 열거
SharePoint REST API를 사용하는 인증된 SharePoint Online 검색 및 파일 다운로드 도구입니다. Red-team 운영자가 승인된 침투 테스트 중에 민감한 문서를 발견하고 유출할 수 있도록 합니다. [ElephantPoint](https://github.com/nettitude/ElephantPoint)(Nettitude)의 PowerShell 포트입니다.```powershell
# Zero-config search — auto-connects, auto-detects SharePoint domain
.\Invoke-EvilMist.ps1 -Script SharePointEnum -Query "password"
# Device code authentication (for headless terminals)
.\Invoke-EvilMist.ps1 -Script SharePointEnum -UseDeviceCode -Query "credentials"
# Direct bearer token from ROADtools/TokenTactics
.\Invoke-EvilMist.ps1 -Script SharePointEnum -SPOUrl example.sharepoint.com -Token $token -Query "confidential"
# Download file as Base64 for C2 exfiltration
.\Invoke-EvilMist.ps1 -Script SharePointEnum -SPOUrl example.sharepoint.com -Token $token -FileUrl "/sites/hr/Shared Documents/salaries.xlsx" -Base64
# Stealth search with matrix output and JSON export
.\Invoke-EvilMist.ps1 -Script SharePointEnum -Query "budget" -EnableStealth -QuietStealth -Matrix -ExportPath "results.json"
📖 전체 문서: SharePointEnum-PS1.md
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | SharePointEnum-PS1.md | scripts/powershell/Invoke-SharePointEnum.ps1 |
Microsoft Teams의 협업 보안 설정을 감사하는 포괄적인 보안 평가 도구입니다. 외부 액세스 위험, 게스트 정책, 회의 보안 취약점, 앱 권한 문제를 식별합니다.```powershell
.\Invoke-EvilMist.ps1 -Script EntraTeamsCheck
.\Invoke-EvilMist.ps1 -Script EntraTeamsCheck -ExportPath "teams-audit.csv"
.\Invoke-EvilMist.ps1 -Script EntraTeamsCheck -OnlyMeetingRisks -Matrix
.\Invoke-EvilMist.ps1 -Script EntraTeamsCheck -OnlyExternalAccess -Matrix
.\Invoke-EvilMist.ps1 -Script EntraTeamsCheck -IncludeTeamsInventory -IncludeAppPolicies -Matrix
.\Invoke-EvilMist.ps1 -Script EntraTeamsCheck -EnableStealth -QuietStealth
📖 **Full documentation:** [EntraTeamsCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraTeamsCheck-PS1.md)
**주요 기능:**
- **외부 액세스 (페더레이션)** - 외부 조직에서 통신할 수 있는 사용자 분석
- **게스트 액세스 정책** - 게스트 사용자 기능 및 권한 설정
- **미팅 정책** - 익명 참가, 로비 우회, 녹화 설정
- **앱 권한 정책** - 타사 및 사용자 지정 앱 액세스 제어
- **메시징 정책** - 채팅 및 메시지 기능 설정
- **Teams 인벤토리** - 가시성, 게스트 멤버십, 거버넌스 분석
- **클라이언트 구성** - Teams 클라이언트 보안 설정
- **위험 평가** - CRITICAL/HIGH/MEDIUM/LOW 분류 및 결과
- **매트릭스 보기** - 빠른 검토를 위한 간결한 표 형식
- **내보내기 옵션** - CSV/JSON 형식, 포괄적인 구성 세부 정보 포함
- **스텔스 모드** - 감지를 방지하기 위한 구성 가능한 지연 및 지터
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraTeamsCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraTeamsCheck-PS1.md) | `scripts/powershell/Invoke-EntraTeamsCheck.ps1` |
---
### Azure 크로스 서비스 공격 경로 분석
다중 Azure 서비스에 걸친 멀티홉 공격 경로를 식별하는 포괄적인 크로스 서비스 Azure 공격 경로 분석 도구입니다. 하나의 리소스에 대한 액세스가 Azure 환경 전체에서 다른 리소스의 손상으로 이어질 수 있는 방법을 밝혀냅니다.```powershell
# Perform comprehensive cross-service attack path analysis
.\Invoke-EvilMist.ps1 -Script EntraAzureAttackPathCheck
# Export results to CSV
.\Invoke-EvilMist.ps1 -Script EntraAzureAttackPathCheck -ExportPath "azure-attack-paths.csv"
# Show only critical attack paths in matrix view
.\Invoke-EvilMist.ps1 -Script EntraAzureAttackPathCheck -OnlyCritical -Matrix
# Show critical and high-risk paths
.\Invoke-EvilMist.ps1 -Script EntraAzureAttackPathCheck -OnlyHighRisk -Matrix
# Include inherited permission paths with deeper analysis
.\Invoke-EvilMist.ps1 -Script EntraAzureAttackPathCheck -IncludeInheritedPaths -MaxPathDepth 4
# Stealth mode scan
.\Invoke-EvilMist.ps1 -Script EntraAzureAttackPathCheck -EnableStealth -QuietStealth
📖 전체 문서: EntraAzureAttackPathCheck-PS1.md
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraAzureAttackPathCheck-PS1.md | scripts/powershell/Invoke-EntraAzureAttackPathCheck.ps1 |
여러 EvilMist 보안 검사를 실행하고 위험 평가, 수정 우선순위 및 추세 분석이 포함된 포괄적인 임원 대시보드를 생성하는 통합 HTML 보안 보고서 생성기입니다.```powershell
.\Invoke-EvilMist.ps1 -Script EntraReport -QuickScan
.\Invoke-EvilMist.ps1 -Script EntraReport -ComprehensiveScan -ExportPath "full-report.html"
.\Invoke-EvilMist.ps1 -Script EntraReport -Checks MFA,Roles,ConditionalAccess,AttackPaths
.\Invoke-EvilMist.ps1 -Script EntraReport -Checks All -ExportPath "security-report.html"
.\Invoke-EvilMist.ps1 -Script EntraReport -ComprehensiveScan -BaselinePath "previous-report.json"
.\Invoke-EvilMist.ps1 -Script EntraReport -QuickScan -EnableStealth -QuietStealth
📖 **전체 문서:** [EntraReport-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraReport-PS1.md)
**주요 기능:**
- **통합 보고** - 단일 명령으로 여러 보안 검사 실행
- **임원 대시보드** - 보안 점수(0-100)를 포함한 전문 HTML 보고서
- **위험 심각도 개요** - CRITICAL, HIGH, MEDIUM, LOW 발견 건수
- **수정 우선순위 매트릭스** - 권장 일정이 포함된 우선순위 조치(P1-P4)
- **추세 분석** - 기준 보고서와 비교하여 보안 개선 추적
- **빠른 스캔 모드** - 핵심 보안 검사(MFA, 역할, CA, 공격 경로, OAuth, PIM)
- **종합 스캔** - 전체 범위를 위한 모든 가용 보안 검사
- **JSON 내보내기** - 향후 비교를 위한 자동 기준선 내보내기
- **스텔스 모드** - 탐지를 피하기 위한 구성 가능한 지연 및 지터
| 버전 | 문서 | 파일 |
|---------|---------------|------|
| PowerShell | [EntraReport-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraReport-PS1.md) | `scripts/powershell/Invoke-EntraReport.ps1` |
---
### 규정 준수 평가 (CIS/NIST/SOC2/ISO27001/GDPR)
Azure Entra ID 보안 구성을 CIS Microsoft Azure Foundations Benchmark, NIST 800-53, SOC 2, ISO 27001 및 GDPR을 포함한 업계 표준 프레임워크에 대해 평가하는 포괄적인 규정 준수 평가 도구입니다.```powershell
# Comprehensive compliance assessment against all frameworks
.\Invoke-EvilMist.ps1 -Script EntraComplianceCheck -Matrix
# CIS Azure Benchmark assessment
.\Invoke-EvilMist.ps1 -Script EntraComplianceCheck -Framework CIS -ExportPath "cis-compliance.csv"
# NIST 800-53 assessment with remediation guidance
.\Invoke-EvilMist.ps1 -Script EntraComplianceCheck -Framework NIST -IncludeRemediation
# Executive report with compliance score
.\Invoke-EvilMist.ps1 -Script EntraComplianceCheck -GenerateExecutiveReport -ExportPath "compliance-report.html"
# SOC 2 assessment showing only failed controls
.\Invoke-EvilMist.ps1 -Script EntraComplianceCheck -Framework SOC2 -OnlyFailed
# Filter by NIST control family (e.g., Access Control)
.\Invoke-EvilMist.ps1 -Script EntraComplianceCheck -Framework NIST -ControlFamily AC
📖 전체 문서: EntraComplianceCheck-PS1.md
주요 기능:
| 버전 | 문서 | 파일 |
|---|---|---|
| PowerShell | EntraComplianceCheck-PS1.md | scripts/powershell/Invoke-EntraComplianceCheck.ps1 |
두 버전 모두 동일한 핵심 기능을 제공합니다:
|---------|---------------------|-------------------|---------------------------|----------------------------|----------------------|------------------------|--------------------------|--------------------------|------------------------|---------------------|-------------------|-------------|---------------------|-------------------|--------------|---------------------|-------------------|-------------------|-------------------|-------------------|-------------------| | 목적 | 포괄적인 사용자 열거 | 집중 MFA 보안 감사 | 게스트 접근 거버넌스 | 중요 관리자 접근 감사 | 권한 있는 역할 할당 감사 | 서비스 계정 보안 감사 | 애플리케이션 등록 보안 감사 | 보안 정책 격차 분석 | 범위 지정 관리자 접근 감사 | 계정 위생 감사 | 디바이스 신뢰 및 규정 준수 감사 | SSPR 구성 감사 | 암호 정책 보안 감사 | 레거시 인증 보안 감사 | 라이선스 및 SKU 분석 | 디렉터리 동기화 상태 및 상태 감사 | Power Platform 열거 및 보안 감사 | 그룹 보안 분석 및 거버넌스 | 공격 경로 분석 - 권한 상승 및 측면 이동 | 다중 테넌트 Azure RBAC 기준선 내보내기 및 드리프트 탐지 | OAuth 동의 부여 감사 - 불법 동의 탐지 | | 사용자 열거 | 15개 이상의 방법 | 표준 방법 | 게스트 중심 | 앱 할당 기반 | 역할 할당 기반 | 서비스 주체 중심 | | | | | | 레거시 인증 중심 | 동기화 중심 | ❌ | | MFA 탐지 | 기본 점검 | 고급(방법 유형 포함) | 고급(방법 유형 포함) | 고급(방법 유형 포함) | 고급(방법 유형 포함) | 소유자 MFA 점검 | | | | | | 고급(방법 유형 포함) | ❌ | ❌ | | 공유 사서함 탐지 | ❌ | ✅ 자동 | ❌ (게스트에는 해당 없음) | ❌ (앱 액세스에는 해당 없음) | ❌ (역할에는 해당 없음) | ❌ (SP에는 해당 없음) | | | | | | ❌ (레거시 인증에 해당 없음) | ❌ | ❌ | | 게스트 도메인 추출 | ❌ | ❌ | ✅ 자동 | ❌ | ❌ | ❌ | | | | | | ❌ | ❌ | ❌ | | 초대 상태 추적 | ❌ | ❌ | ✅ 수락 날짜 포함 | ❌ | ❌ | ❌ | | | | | | ❌ | ❌ | ❌ | | 앱 액세스 추적 | ❌ | ❌ | ❌ | ✅ 다중 앱 커버리지 | ❌ | ❌ | | | | | | ❌ | ❌ | ❌ | | 역할 할당 추적 | ❌ | ❌ | ❌ | ❌ | ✅ 모든 디렉터리 역할 | ❌ | | | | | | ❌ | ❌ | ✅ 모든 Azure RBAC 역할 | | PIM 할당 추적 | ❌ | ❌ | ❌ | ❌ | ✅ 적격 및 활성 | ❌ | | | | | | ❌ | ❌ | ❌ | | 자격 증명 열거 | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 비밀 및 인증서 | ✅ 비밀 및 인증서 | | | | | | ❌ | ❌ | ❌ | | 자격 증명 만료 추적 | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 만료 및 곧 만료 | ✅ 만료 및 곧 만료 | | | | | | ❌ | ❌ | ❌ | | 권한 분석 | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 고위험 및 중요 | ✅ 고위험 및 중요(API 권한) | | | | | | ❌ | ❌ | ✅ RBAC 역할 권한 | | 소유자 분석 | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ MFA 상태 포함 | ✅ MFA 상태 포함 | ❌ | | | | | ❌ | ❌ | ✅ MFA 상태 포함한 그룹 소유자 | ❌ | | 애플리케이션 등록 열거 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 포괄적 | | | | | | ❌ | ❌ | ❌ | | API 권한 분석 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 위임 및 애플리케이션 | | | | | | ❌ | ❌ | ❌ | | 할당 날짜 추적 | ❌ | ❌ | ✅ 초대 날짜 | ✅ 할당 날짜 | ✅ 할당 날짜 및 기간 | ❌ | ❌ | | | | | ❌ | ❌ | ✅ 역할 할당 생성 날짜 | | 정책 제외 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 사용자, 그룹, 역할, 앱 | | | | | ❌ | ❌ | ❌ | | MFA 적용 격차 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 정책 수준 분석 | | | | | ❌ | ❌ | ❌ | | 중요 앱 커버리지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 10개의 중요 앱 | | | | | ❌ | ❌ | ❌ | | 레거시 인증 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 정책 대상 지정 | | | | | ✅ 10개 프로토콜 | ❌ | ❌ | | 레거시 프로토콜 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | | | | ✅ IMAP/POP3/SMTP/EAS 등 | ❌ | ❌ | | 마지막 레거시 인증 사용 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | | | | ✅ 날짜/시간 추적 | ❌ | ❌ | | 프로토콜 통계 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | | | | ✅ 성공/실패 횟수 | ❌ | ❌ | | 정책 충돌 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 중복/충돌 | ❌ | ❌ | ❌ | | | ❌ | ❌ | ❌ | | 관리 단위 열거 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 포괄적 | ❌ | ❌ | ❌ | | | ❌ | ❌ | ❌ | | 범위 지정 역할 할당 분석 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 모든 범위 지정 할당 | ❌ | ❌ | ❌ | | | ❌ | ❌ | ❌ | | AU 멤버 열거 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 멤버 및 역할 | ❌ | ❌ | ❌ | | | ❌ | ❌ | ❌ | | 오래된 계정 탐지 | 제한적 | 제한적 | 제한적 | 제한적 | 제한적 | ❌ | ❌ | 제한적 | ✅ 90일 이상 비활성 | ❌ | | | 제한적 | ❌ | ❌ | | 로그인 없음 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 계정 수명 분석 | ❌ | | | ❌ | ❌ | ❌ | | 라이선스 낭비 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 라이선스가 있는 비활성 | ❌ | | | ❌ | ❌ | ❌ | | 암호 만료 추적 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 만료된 암호 | ❌ | ❌ | ✅ 만료 분석 | ❌ | ❌ | ❌ | | SSPR 상태 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 활성화/등록/가능 | ❌ | ❌ | ❌ | ❌ | | SSPR 방법 분석 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 등록 방법 | ❌ | ❌ | ❌ | ❌ | | 백업 방법 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 백업 방법 없음 | ❌ | ❌ | ❌ | ❌ | | 강력한 방법 분류 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 강력 vs 약한 방법 | ❌ | ❌ | ❌ | ❌ | | 디바이스 열거 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 포괄적 | ❌ | ❌ | ❌ | ❌ | ❌ | | 규정 준수 상태 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | ✅ 준수/비준수/알 수 없음 | | | ❌ | ❌ | ❌ | | BYOD 탐지 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | ✅ 자동 | | | ❌ | ❌ | ❌ | | 오래된 로그인 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | ✅ 90일 이상 | ✅ 90일 이상 | | | 제한적 | ❌ | ❌ | | Intune 규정 준수 정책 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 전체 열거 | | | ❌ | ❌ | ❌ | | 디바이스 신뢰 분석 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 조인 유형 | | | ❌ | ❌ | ❌ | | 관리 상태 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 관리/비관리 | | | ❌ | ❌ | ❌ | | 마지막 로그인 추적 | ✅ | ✅ 분석 포함 | ✅ 분석 포함 | ✅ 분석 포함 | ✅ 분석 포함 | 제한적(SP 활동) | ❌ | ✅ 분석 포함 | ✅ 분석 포함 | ✅ 분석 포함 | ✅ 분석 포함 | ✅ 분석 포함 | ✅ 분석 포함 | ✅ 분석 포함 | ✅ 분석 포함 | ❌ | | 로그인 가능 점검 | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | 동기화 상태 탐지 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 동기화됨 vs 클라우드 전용 | ❌ | | 동기화 오류 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 모든 프로비저닝 오류 | ❌ | | 오래된 동기화 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 동기화 후 7일 이상 | ❌ | | 동기화 충돌 식별 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 중복 특성 | ❌ | | 동기화 범위 분석 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 기본 구성 | ❌ | | 테넌트 SKU 열거 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 전체 열거 | ❌ | ❌ | | 라이선스 할당 추적 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 모든 할당 | ❌ | ❌ | | 권한 있는 라이선스 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ E5, P2 등 | ❌ | ❌ | | 미사용 라이선스 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 라이선스가 있는 비활성 | ❌ | ❌ | ❌ | ❌ | ✅ 로그인 없음 | ❌ | ❌ | | 라이선스 사용 분석 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 소비 통계 | ❌ | ❌ | ❌ | | Power Apps 열거 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 포괄적 | ❌ | | Power Automate 흐름 열거 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 포괄적 | ❌ | | 민감한 커넥터 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 30개 이상의 커넥터 | ❌ | | 고위험 작업 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 삭제/생성/수정 | ❌ | | 커넥터 위험 분석 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 중요/높음/중간/낮음 | ❌ | ❌ | | 그룹 열거 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 포괄적(모든 유형) | ❌ | | 소유자 없음 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 고아 그룹 | ❌ | | 과도한 멤버십 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 100명 초과 또는 500명 초과 멤버 | ❌ | | 역할 할당 가능 그룹 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 중요 위험 그룹 | ❌ | | 그룹 유형 분석 | ✅ 기본 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 보안/M365/배포/동적 | ❌ | | OAuth 동의 부여 열거 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 모든 OAuth2PermissionGrants | | 관리자 vs 사용자 동의 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 테넌트 전체 vs 개별 | | 위험한 권한 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 메일/파일/디렉터리 액세스 | | 오래된 동의 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 구성 가능한 임계값 | | 타사 앱 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Microsoft vs 타사 | | 게시자 확인 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 게시자 확인 상태 | | 다중 테넌트 스캔 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 모든 접근 가능한 테넌트 | ❌ | | 실패한 테넌트 건너뛰기 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ MFA/CA 실패 시 계속 | ❌ | | Azure RBAC 기준선 내보내기 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ JSON 기준선 | ❌ | | Azure RBAC 드리프트 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 새/제거/수정된 할당 | ❌ | | 다중 구독 지원 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 테넌트 전체 모든 구독 | ❌ | | 그룹 멤버 확장 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 그룹 확장해 사용자 표시 | ❌ | | 모든 사용자 권한 매트릭스 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 사용자 중심 권한 보기 | ❌ | | 범위 계층 분석 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 구독/RG/리소스 | ❌ | | PIM/JIT 제외 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 시간 제한 할당 제외 | ❌ | | ABAC 조건 탐지 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 조건 불일치 드리프트 | ❌ | | 수정 지침 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Terraform/CLI/PowerShell | ❌ | | 위험 수준 평가 | 기본 | 고급(높음/중간/낮음) | 고급(높음/중간/낮음) | 고급(높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간/낮음) | 고급(중요/높음/중간) | 고급(중요/높음/중간/낮음) | | 활동 분석 | 제한적 | 상세(오래된/최근/없음) | 상세(오래된/최근/없음) | 상세(오래된/최근/없음) | 상세(오래된/최근/없음) | 기본(수명 기반) | 상세(자격 증명 만료/권한 분석) | 정책 격차 분석 | 상세(범위 지정 관리자 활동) | 상세(오래된 지표) | 상세(오래된/최근/없음) | 상세(오래된/최근/없음) | 상세(암호 수명/정책 격차) | 상세(사용 최근성/프로토콜 통계) | 상세(라이선스 사용/미사용 추적) | 상세(동기화 상태/오류 통계) | 상세(리소스/환경/소유자 통계) | 상세(그룹 유형/소유자/멤버십 통계) | 상세(공격 경로 유형/복잡성/위험 통계) | 상세(드리프트 유형/역할/테넌트/구독 통계) | 상세(동의 유형/권한/오래된 통계) | | 매트릭스 보기 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | 부서 분석 | ✅ | ✅ 통계 포함 | ✅ 통계 포함 | ✅ 통계 포함 | ✅ 통계 포함 | ❌ | ❌ | ✅ 통계 포함 | ✅ 통계 포함 | ❌ | ✅ 통계 포함 | ✅ 통계 포함 | ✅ 통계 포함 | ✅ 통계 포함 | ✅ 통계 포함 | ❌ | ❌ | ❌ | ❌ | ❌ | | BloodHound 내보내기 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | HTML 보고서 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | CSV/JSON 내보내기 | ✅ | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ 향상된 필드 | ✅ JSON 기준선/드리프트 보고서 | ✅ 향상된 필드 | | 은밀 모드 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | 레드 팀 정찰 | MFA 규정 준수 감사 | 외부 사용자 보안 | 권한 있는 접근 감사 | 권한 있는 역할 거버넌스 | 서비스 계정 보안 | 애플리케이션 등록 보안 및 자격 증명 관리 | 보안 정책 격차 분석 | 범위 지정 관리자 접근 거버넌스 | 계정 위생 및 정리 | 디바이스 신뢰 및 규정 준수 | 암호 재설정 보안 | 암호 정책 규정 준수 | 레거시 인증 마이그레이션 및 보안 | 라이선스 거버넌스 및 비용 최적화 | 디렉터리 동기화 상태 및 오류 추적 | Power Platform 보안 및 커넥터 거버넌스 | 그룹 보안 및 거버넌스 | 공격 경로 분석 및 권한 상승 탐지 | 다중 테넌트 Azure RBAC 거버넌스 및 무단 접근 탐지 | OAuth 동의 보안 및 불법 동의 부여 탐지 |
pip install -r requirements.txt
또는 수동으로 설치:```bash
pip install msal requests
# Optional: Additional authentication methods
pip install azure-identity
Enumerate-EntraUsers: 스크립트는 첫 실행 시 필요한 Microsoft.Graph.Users 모듈을 자동으로 설치합니다.
MFA Security Check, Guest Account Enumeration, Critical Admin Access Check, Privileged Role Check, Service Principal Check, Application Registration Check, Conditional Access Check, Administrative Unit Check, Stale Account Check, Device Trust Check, SSPR Check, Password Policy Check, Legacy Auth Check, License Check, Directory Sync Check, Power Platform Check, and Group Security Check: Microsoft Graph PowerShell SDK가 필요합니다:
Azure RBAC Check: Azure PowerShell 모듈이 필요합니다:```powershell Install-Module Az -Scope CurrentUser
또는 개별 모듈을 설치하십시오:```powershell
Install-Module Az.Accounts -Scope CurrentUser
Install-Module Az.Resources -Scope CurrentUser
다른 도구들:```powershell Install-Module Microsoft.Graph -Scope CurrentUser
또는 개별 모듈 설치:```powershell
Install-Module Microsoft.Graph.Authentication -Scope CurrentUser
Install-Module Microsoft.Graph.Users -Scope CurrentUser
Install-Module Microsoft.Graph.Identity.SignIns -Scope CurrentUser
Install-Module Microsoft.Graph.Identity.DirectoryManagement -Scope CurrentUser
Install-Module Microsoft.Graph.Applications -Scope CurrentUser
Install-Module Microsoft.Graph.Groups -Scope CurrentUser
두 스크립트 모두 여러 인증 방법을 지원합니다:
az login 자격 증명 사용Connect-AzAccount 자격 증명 사용GRAPH_ACCESS_TOKEN 또는 AZURE_ACCESS_TOKEN 설정Python 버전은 추가로 다음을 지원합니다:
이 섹션에서는 툴킷의 각 스크립트에 필요한 인증 방법 및 API 권한의 종합 매트릭스를 제공합니다.
모든 스크립트는 동일한 핵심 인증 방법을 지원하며, 대상 API에 따라 약간의 차이가 있습니다:
스크립트: EntraRecon, EntraMFACheck, EntraGuestCheck, EntraAppAccess, EntraRoleCheck, EntraServicePrincipalCheck, EntraConditionalAccessCheck, EntraAdminUnitCheck, EntraStaleAccountCheck, EntraDeviceCheck, EntraSSPRCheck, EntraPasswordPolicyCheck, EntraLegacyAuthCheck, EntraLicenseCheck, EntraDirectorySyncCheck, EntraPowerPlatformCheck, EntraGroupCheck, EntraApplicationCheck, EntraAttackPathCheck, EntraOAuthConsentCheck, EntraSignInRiskCheck, EntraPIMCheck, EntraComplianceCheck
스크립트: EntraAzureRBACCheck, EntraKeyVaultCheck, EntraStorageAccountCheck, EntraManagedIdentityCheck, EntraNetworkSecurityCheck, EntraAzureAttackPathCheck
다음 표는 각 Microsoft Graph 기반 스크립트에 필요한 범위와 폴백 범위를 보여줍니다. 폴백 범위는 사용자에게 전체 필수 범위 집합에 대한 권한이 없는 경우 사용됩니다.
이 스크립트들은 Azure PowerShell(Az 모듈)을 사용하며 Microsoft Graph 범위 대신 Azure RBAC 권한이 필요합니다:
다음 Microsoft Graph 범위는 툴킷 전체에서 가장 자주 필요합니다:
모든 스크립트를 전체 기능으로 실행하려면 다음과 같은 통합 권한 집합이 권장됩니다:
Microsoft Graph (위임된 권한):``` Application.Read.All AuditLog.Read.All AdministrativeUnit.Read.All Device.Read.All DeviceManagementConfiguration.Read.All DeviceManagementManagedDevices.Read.All Directory.Read.All Group.Read.All GroupMember.Read.All IdentityRiskDetection.Read.All IdentityRiskySignIn.Read.All IdentityRiskyUser.Read.All Policy.Read.All PrivilegedAccess.Read.AzureAD Reports.Read.All RoleManagement.Read.Directory User.Read.All UserAuthenticationMethod.Read.All
**Azure RBAC:**
- 구독 또는 관리 그룹 수준의 읽기 권한자 역할 (Azure 리소스 스크립트용)
- Key Vault 읽기 권한자 (비밀 열거를 통한 EntraKeyVaultCheck용)
- Storage Blob 데이터 읽기 권한자 (컨테이너 열거를 통한 EntraStorageAccountCheck용)
**Microsoft 365 관리자 역할:**
- Exchange 관리자 (EntraExchangeCheck용)
- SharePoint 관리자 (EntraSharePointCheck용)
- Teams 관리자 (EntraTeamsCheck용)
---
## 법적 고지
이 도구 키트는 승인된 보안 테스트 및 연구 목적으로만 사용됩니다. 사용자는 이 도구를 시스템에 사용하기 전에 적절한 승인을 받았는지 확인할 책임이 있습니다. 저자는 이 소프트웨어의 오용에 대해 어떠한 책임도 지지 않습니다.
---
## 라이선스
GNU General Public License v3.0 - 자세한 내용은 [LICENSE](https://github.com/logisek/evilmist/blob/HEAD/LICENSE) 파일을 참조하십시오.
**Copyright (C) 2025 Logisek**
---
## 기여
기여를 환영합니다! 버그 및 기능 요청에 대해 풀 리퀘스트를 제출하거나 이슈를 열어 주시기 바랍니다.
---
## 감사의 말
- [Microsoft Graph API](https://docs.microsoft.com/en-us/graph/) - 주요 데이터 소스
- [BloodHound](https://github.com/BloodHoundAD/BloodHound) - 공격 경로 분석 영감
- [AzureHound](https://github.com/BloodHoundAD/AzureHound) - Azure 데이터 수집 형식
- [microsoft-info](https://github.com/merill/microsoft-info) - Microsoft 자사 앱 이름 및 Graph 사용 권한
---
scripts/python/entra_recon.py |
az loginConnect-AzAccount| 문서 | 설명 |
|---|
| EntraRecon-PS1.md | 모든 매개변수, 기능 및 사용 예제를 포함한 전체 PowerShell 스크립트 문서 |
| EntraRecon-PY.md | 인증 방법, 스텔스 구성 및 예제를 포함한 전체 Python 스크립트 문서 |
| EntraMFACheck-PS1.md | MFA 보안 점검 문서 - 공유 사서함 탐지, 로그인 추적 및 위험 평가 포함 |
| EntraGuestCheck-PS1.md | 게스트 계정 열거 문서 - 게스트 도메인 추출, 초대 추적 및 보안 분석 포함 |
| EntraAppAccess-PS1.md | PowerShell 및 Graph CLI 접근 권한 점검 문서 - 앱 접근 추적, 할당 날짜 및 권한 있는 접근 분석 포함 |
| EntraRoleCheck-PS1.md | 권한 있는 역할 점검 문서 - 역할 열거, PIM 할당 추적, 위험 평가 및 보안 분석 포함 |
| EntraServicePrincipalCheck-PS1.md | 서비스 주체 보안 점검 문서 - 자격 증명 열거, 만료 추적, 권한 분석, 소유자 보안 및 위험 평가 포함 |
| EntraConditionalAccessCheck-PS1.md | 조건부 액세스 정책 보안 점검 문서 - 정책 열거, 제외 탐지, MFA 시행 격차, 중요 앱 적용 범위 및 위험 평가 포함 |
| EntraStaleAccountCheck-PS1.md | 오래된 계정 점검 문서 - 오래된 계정 탐지, 미로그인 탐지, 라이선스 낭비 탐지, 비밀번호 만료 추적 및 계정 위생 분석 포함 |
| EntraDeviceCheck-PS1.md | 디바이스 신뢰 및 컴플라이언스 점검 문서 - 디바이스 열거, 컴플라이언스 상태 탐지, BYOD 탐지, 오래된 로그인 추적, Intune 컴플라이언스 정책 및 위험 평가 포함 |
| EntraSSPRCheck-PS1.md | 셀프 서비스 비밀번호 재설정 점검 문서 - SSPR 상태 탐지, 등록 방법 분석, 백업 방법 탐지, 강력한 방법 분류, MFA 상관관계 및 위험 평가 포함 |
| EntraPasswordPolicyCheck-PS1.md | 비밀번호 정책 보안 점검 문서 - 비밀번호 만료 분석, 만료 없음 탐지, 복잡성 요구 사항 확인, 취약한 정책 식별, 비밀번호 사용 기간 추적 및 위험 평가 포함 |
| EntraLegacyAuthCheck-PS1.md | 레거시 인증 점검 문서 - 레거시 프로토콜 탐지, 로그인 로그 분석, 마지막 사용 추적, 프로토콜 통계, MFA 상관관계 및 위험 평가 포함 |
| EntraLicenseCheck-PS1.md | 라이선스 및 SKU 분석 문서 - 테넌트 SKU 열거, 사용자 라이선스 할당 추적, 권한 있는 라이선스 탐지, 미사용 라이선스 식별 및 위험 평가 포함 |
| EntraAdminUnitCheck-PS1.md | 관리 단위 보안 점검 문서 - AU 열거, 범위 지정 역할 할당 분석, 구성원 열거, MFA 상태 탐지, 위험 평가 및 범위 지정 관리자 접근 분석 포함 |
| EntraDirectorySyncCheck-PS1.md | 디렉터리 동기화 상태 점검 문서 - 동기화 상태 분석, 동기화 오류 탐지, 오래된 동기화 탐지, 동기화 충돌 식별, 동기화 범위 분석 및 위험 평가 포함 |
| EntraPowerPlatformCheck-PS1.md | Power Platform 열거 문서 - Power Apps 열거, Power Automate 흐름 열거, 민감한 커넥터 탐지, 고위험 작업 식별, 커넥터 분석 및 위험 평가 포함 |
| EntraGroupCheck-PS1.md | 그룹 보안 분석 문서 - 그룹 열거, MFA 상태가 포함된 소유자 분석, 소유자 없음 탐지, 과도한 구성원 수 탐지, 역할 할당 가능 그룹 탐지 및 위험 평가 포함 |
| EntraApplicationCheck-PS1.md | 애플리케이션 등록 보안 점검 문서 - 애플리케이션 열거, 자격 증명 분석, 만료 추적, API 권한 분석, 소유자 보안 평가 및 위험 평가 포함 |
| EntraAttackPathCheck-PS1.md | 공격 경로 분석 문서 - 권한 상승 경로, 비밀번호 재설정 위임, 전이적 그룹 구성원, 공유 사서함 접근, 위험 평가 및 경로 복잡성 분석 포함 |
| EntraAzureRBACCheck-PS1.md | Azure RBAC 역할 할당 감사 및 드리프트 탐지 문서 - 기준선 내보내기, 드리프트 탐지, 다중 구독 지원, 다중 테넌트 지원, 실패한 테넌트 건너뛰기, 그룹 구성원 확장, 모든 사용자 권한 매트릭스, PIM/JIT 제외, ABAC 조건 불일치 탐지, 수정 지침(Terraform/CLI/PowerShell), 역할 할당 추적, 무단 변경 탐지 및 위험 평가 포함 |
| EntraOAuthConsentCheck-PS1.md | OAuth 동의 권한 부여 감사 문서 - OAuth2PermissionGrant 열거, 관리자 대 사용자 동의 탐지, 위험한 권한 식별, 오래된 동의 탐지, 타사 앱 분석, 로그인 활동 상관관계 및 불법 동의 권한 부여 탐지 위험 평가 포함 |
| EntraSignInRiskCheck-PS1.md | ID 보호 분석 문서 - 위험한 사용자 열거, 위험 수준/상태 추적, 위험 탐지 분석, 불가능한 이동 탐지, 익명 IP 탐지, 암호 스프레이 탐지, 유출된 자격 증명 탐지, 패턴 분석, 타이밍 분석 및 수정 가이드 포함 |
| EntraPIMCheck-PS1.md | PIM(Privileged Identity Management) 구성 감사 문서 - JIT 접근 구성 격차, 승인 워크플로 분석, MFA 시행, 정당성 요구 사항, 알림 구성, 영구 할당 탐지, PIM for Groups, 액세스 검토 및 위험 평가 포함 |
| EntraKeyVaultCheck-PS1.md | Azure Key Vault 보안 감사 문서 - 접근 모델 분석(RBAC 대 액세스 정책), 일시 삭제 및 제거 보호 상태, 네트워크 보안 감사(퍼블릭 액세스, 방화벽, VNet), 프라이빗 엔드포인트 탐지, 과도한 권한 부여 탐지, 진단 로깅 확인, 비밀/인증서/키 만료 추적 및 위험 평가 포함 |
| EntraStorageAccountCheck-PS1.md | Azure 스토리지 계정 보안 감사 문서 - 퍼블릭 Blob 컨테이너 탐지, HTTPS 적용 확인, 공유 키 액세스 분석, 네트워크 보안 감사(퍼블릭 액세스, 방화벽, VNet, 프라이빗 엔드포인트), 데이터 보호 분석(일시 삭제, 버전 관리), 키 순환 추적, 교차 테넌트 복제 탐지, TLS 버전 확인, 인프라 암호화 확인, 진단 로깅 확인 및 위험 평가 포함 |
| EntraNetworkSecurityCheck-PS1.md | Azure 네트워크 보안 감사 문서 - NSG 규칙 분석, 과도한 허용 규칙 탐지(0.0.0.0/0, Any-Any), 열린 관리 포트 탐지(RDP, SSH, WinRM), Azure Bastion 사용 분석, DDoS 보호 상태, VNet 피어링 보안, 서브넷 NSG 적용 범위, NSG 흐름 로그 구성, VPN/ExpressRoute 게이트웨이 분석, 트래픽 분석 상태 및 위험 평가 포함 |
| EntraManagedIdentityCheck-PS1.md | Azure 관리 ID 보안 감사 문서 - 시스템 할당 대 사용자 할당 ID 인벤토리, 역할 할당 분석, 고권한 ID 탐지(Owner, Contributor, UAA), 중요 역할 탐지, 교차 구독 접근 탐지, 미사용 ID 식별, 리소스 적용 범위(VM, App Services, Function Apps), 범위 분석 및 위험 평가 포함 |
| EntraExchangeCheck-PS1.md | Exchange Online 보안 감사 문서 - 받은 편지함 규칙 분석, 외부 전달 탐지, 전송 규칙 감사, 사서함 위임 분석, 감사 로깅 상태, OWA 정책 분석, 클라이언트 액세스 규칙, BEC 지표 탐지, 의심스러운 규칙 탐지 및 위험 평가 포함 |
| EntraSharePointCheck-PS1.md | SharePoint Online 보안 감사 문서 - 테넌트 공유 설정, 익명 링크 탐지, 사이트 수준 재정의 탐지, 게스트 접근 분석, OneDrive 공유 구성, 민감도 레이블 적용 범위, 기본 링크 분석, 링크 만료 정책 및 위험 평가 포함 |
| EntraTeamsCheck-PS1.md | Microsoft Teams 보안 감사 문서 - 외부 접근(페더레이션) 설정, 게스트 접근 정책, 모임 정책 분석(익명 참가, 로비 우회), 앱 권한 정책, 메시징 정책, Teams 인벤토리 분석 및 위험 평가 포함 |
| EntraAzureAttackPathCheck-PS1.md | Azure 교차 서비스 공격 경로 분석 문서 - VM에서 Key Vault 경로, 관리 ID 권한 상승, 스토리지 측면 이동, 사용자 지정 역할 취약점, 교차 구독 경로, 관리 그룹 상속, 공격 내러티브 및 위험 평가 포함 |
| EntraReport-PS1.md | 통합 보안 보고서 생성기 문서 - 다중 검사 실행, HTML 경영진 대시보드, 보안 점수 계산, 수정 우선순위 매트릭스, 기준선 비교를 통한 추세 분석, 빠른 검사 및 종합 검사 모드, JSON 기준선 내보내기 포함 |
| EntraComplianceCheck-PS1.md | 컴플라이언스 평가 문서 - CIS Azure Benchmark 매핑, NIST 800-53 통제 매핑, SOC 2 신뢰 서비스 기준, ISO 27001 통제, GDPR 지표, 컴플라이언스 점수, 통제 계열 필터링 및 경영진 보고 포함 |
| SharePointEnum-PS1.md | SharePoint Online 열거 문서 - REST API 검색, FQL 쿼리, 정제 필터, 파일 다운로드(디스크 및 Base64), 자동 탐지, 스마트 인증 폴백(세션 토큰 유효성 검사, Azure CLI 폴백, MSAL 디바이스 코드 흐름), 스텔스 모드 및 내보내기 옵션 포함 |
| 기능 | PowerShell | Python |
|---|
| 사용자 열거(15개 이상의 방법) | ✅ | ✅ |
| 보안 평가 | ✅ | ✅ |
| 자격 증명 공격 표면 | ✅ | ✅ |
| 조건부 액세스 분석 | ✅ | ✅ |
| 디바이스/Intune 열거 | ✅ | ✅ |
| 공격 경로 분석 | ✅ | ✅ |
| Power Platform 열거 | ✅ | ✅ |
| 측면 이동 분석 | ✅ | ✅ |
| BloodHound 내보내기 | ✅ | ✅ |
| HTML 보고서 생성 | ✅ | ✅ |
| 스텔스 모드 | ✅ | ✅ |
| 대화형 메뉴 | ✅ | ✅ |
| Azure CLI 토큰 | ✅ | ✅ |
| 디바이스 코드 흐름 | ✅ | ✅ |
| 리프레시 토큰 교환 | ❌ | ✅ |
| 확장된 앱 ID 데이터베이스 | ❌ | ✅ |
| 스텔스 사전 설정 | ❌ | ✅ |
| 매개변수 | 방법 | 설명 |
|---|
| (기본값) | 대화형 | Connect-MgGraph 대화형 OAuth 브라우저 프롬프트 |
-UseAzCliToken | Azure CLI 토큰 | az account get-access-token --resource https://graph.microsoft.com 사용 |
-UseAzPowerShellToken | Azure PowerShell 토큰 | Get-AzAccessToken -ResourceUrl "https://graph.microsoft.com" 사용 |
| 매개변수 | 방법 | 설명 |
|---|
| (기본값) | 대화형 | 대화형 브라우저 프롬프트로 Connect-AzAccount |
-UseAzCliToken | Azure CLI 토큰 | 기존 az login 세션 사용 |
-UseAzPowerShellToken | Azure PowerShell 토큰 | 기존 Connect-AzAccount 세션 사용 |
-UseDeviceCode | 디바이스 코드 흐름 | 헤드리스 터미널용 Connect-AzAccount -UseDeviceAuthentication |
| 스크립트 | 모듈 | 인증 |
|---|
| EntraExchangeCheck | ExchangeOnlineManagement | Connect-ExchangeOnline (Exchange 관리자 역할 필요) |
| EntraSharePointCheck | Microsoft.Online.SharePoint.PowerShell | SharePoint 관리 URL에 Connect-SPOService (SharePoint 관리자 역할 필요) |
| SharePointEnum | Az.Accounts (선택 사항) | 스마트 폴백: Azure 세션 토큰 → Azure CLI → MSAL 디바이스 코드 흐름 (Microsoft Office 클라이언트 ID) |
| EntraTeamsCheck | MicrosoftTeams | Connect-MicrosoftTeams (Teams 관리자 역할 필요) |
| 스크립트 | 필수 범위 | 폴백 범위 |
|---|
| Invoke-EntraApplicationCheck | Application.Read.All, Directory.Read.All, User.Read.All, UserAuthenticationMethod.Read.All, AuditLog.Read.All | Application.Read.All, Directory.Read.All, User.ReadBasic.All |
| Invoke-EntraRoleCheck | Directory.Read.All, RoleManagement.Read.Directory, User.Read.All, UserAuthenticationMethod.Read.All, AuditLog.Read.All | Directory.Read.All, RoleManagement.Read.Directory, User.ReadBasic.All |
| Invoke-EntraMFACheck | User.Read.All, UserAuthenticationMethod.Read.All, AuditLog.Read.All | User.ReadBasic.All, UserAuthenticationMethod.Read.All |
| Invoke-EntraGroupCheck | Directory.Read.All, Group.Read.All, User.Read.All, UserAuthenticationMethod.Read.All, AuditLog.Read.All | Directory.Read.All, Group.Read.All, User.ReadBasic.All |
| Invoke-EntraGuestCheck | User.Read.All, UserAuthenticationMethod.Read.All, AuditLog.Read.All | User.ReadBasic.All, UserAuthenticationMethod.Read.All |
| Invoke-EntraAdminUnitCheck | Directory.Read.All, AdministrativeUnit.Read.All, RoleManagement.Read.Directory, User.Read.All, UserAuthenticationMethod.Read.All | Directory.Read.All, AdministrativeUnit.Read.All, User.ReadBasic.All |
| Invoke-EntraConditionalAccessCheck | Policy.Read.All, Directory.Read.All, Application.Read.All, User.Read.All | Policy.Read.All, Directory.Read.All |
| Invoke-EntraDeviceCheck | Device.Read.All, Directory.Read.All, DeviceManagementManagedDevices.Read.All, DeviceManagementConfiguration.Read.All | Device.Read.All, Directory.Read.All |
| Invoke-EntraDirectorySyncCheck | Directory.Read.All, User.Read.All, AuditLog.Read.All | Directory.Read.All, User.ReadBasic.All |
| Invoke-EntraAttackPathCheck | Directory.Read.All, Group.Read.All, User.Read.All, UserAuthenticationMethod.Read.All, RoleManagement.Read.Directory, AuditLog.Read.All | Directory.Read.All, Group.Read.All, User.ReadBasic.All |
| Invoke-EntraServicePrincipalCheck | Application.Read.All, Directory.Read.All, User.Read.All, UserAuthenticationMethod.Read.All, AuditLog.Read.All | Application.Read.All, Directory.Read.All, User.ReadBasic.All |
| Invoke-EntraPasswordPolicyCheck | User.Read.All, Directory.Read.All, AuditLog.Read.All | User.ReadBasic.All, Directory.Read.All |
| Invoke-EntraLicenseCheck | Directory.Read.All, User.Read.All | User.ReadBasic.All |
| Invoke-EntraLegacyAuthCheck | AuditLog.Read.All, Directory.Read.All, User.Read.All, UserAuthenticationMethod.Read.All | Directory.Read.All, User.ReadBasic.All |
| Invoke-EntraSSPRCheck | User.Read.All, UserAuthenticationMethod.Read.All, Reports.Read.All, AuditLog.Read.All | User.ReadBasic.All, Reports.Read.All |
| Invoke-EntraStaleAccountCheck | User.Read.All, Directory.Read.All, AuditLog.Read.All | User.ReadBasic.All, Directory.Read.All |
| Invoke-EntraAppAccess | Application.Read.All, Directory.Read.All, User.Read.All, UserAuthenticationMethod.Read.All, AuditLog.Read.All | Application.Read.All, Directory.Read.All, User.ReadBasic.All |
| Invoke-EntraPIMCheck | Directory.Read.All, User.Read.All, RoleManagement.Read.Directory, PrivilegedAccess.Read.AzureAD | Directory.Read.All, User.ReadBasic.All |
| Invoke-EntraOAuthConsentCheck | Application.Read.All, Directory.Read.All, User.Read.All, AuditLog.Read.All | Application.Read.All, Directory.Read.All, User.ReadBasic.All |
| Invoke-EntraSignInRiskCheck | IdentityRiskyUser.Read.All, IdentityRiskySignIn.Read.All, IdentityRiskDetection.Read.All, AuditLog.Read.All, User.Read.All, Directory.Read.All | IdentityRiskyUser.Read.All, IdentityRiskySignIn.Read.All, IdentityRiskDetection.Read.All |
| Invoke-EntraPowerPlatformCheck | User.Read.All, Directory.Read.All, Application.Read.All | (사용자 컨텍스트를 통한 Power Platform API 권한) |
| Invoke-EntraComplianceCheck | Directory.Read.All, Policy.Read.All, User.Read.All, Application.Read.All, AuditLog.Read.All, RoleManagement.Read.Directory, IdentityRiskyUser.Read.All, IdentityRiskEvent.Read.All, UserAuthenticationMethod.Read.All | Directory.Read.All, Policy.Read.All, User.ReadBasic.All |
| 스크립트 | Azure RBAC 권한 | 추가 Graph 범위 |
|---|
| Invoke-EntraAzureRBACCheck | 대상 구독에 대한 읽기 권한자 역할 | User.Read, Directory.Read.All, GroupMember.Read.All |
| Invoke-EntraKeyVaultCheck | 구독에 대한 읽기 권한자, 비밀 열거를 위한 Key Vault 읽기 권한자 | - |
| Invoke-EntraStorageAccountCheck | 구독에 대한 읽기 권한자, 컨테이너 열거를 위한 Storage Blob 데이터 읽기 권한자 | - |
| Invoke-EntraManagedIdentityCheck | 구독에 대한 읽기 권한자 | Graph 쿼리를 위한 Directory.Read.All |
| Invoke-EntraNetworkSecurityCheck | NSG/VNet 열거를 위한 구독에 대한 읽기 권한자 | - |
| Invoke-EntraAzureAttackPathCheck | 구독에 대한 읽기 권한자, 액세스 정책 열거를 위한 Key Vault 읽기 권한자 | - |
| 스크립트 | 모듈 | 필수 역할/권한 |
|---|
| Invoke-EntraExchangeCheck | ExchangeOnlineManagement | Exchange 관리자 또는 동등한 역할. 필요: Get-InboxRule, Get-TransportRule, Get-MailboxPermission, Get-Mailbox |
| Invoke-EntraSharePointCheck | Microsoft.Online.SharePoint.PowerShell | SharePoint 관리자 또는 동등한 역할. 필요: Get-SPOTenant, Get-SPOSite, 공유 구성 cmdlet |
| Invoke-SharePointEnum | Az.Accounts (선택 사항) | SharePoint 액세스 권한이 있는 모든 사용자. Azure 세션, Azure CLI 또는 MSAL 디바이스 코드 흐름을 통해 위임된 권한으로 SharePoint REST Search API 사용 |
| Invoke-EntraTeamsCheck | MicrosoftTeams | Teams 관리자 또는 동등한 역할. 필요: Get-CsTenantFederationConfiguration, Get-CsTeamsMeetingPolicy, Get-CsTeamsClientConfiguration, Get-Team |
| 범위 | 사용 스크립트 | 목적 |
|---|
Directory.Read.All | 21개 이상 | 디렉터리 개체(사용자, 그룹, 역할, 설정) 읽기 |
User.Read.All | 19개 이상 | 로그인 활동을 포함한 모든 사용자 속성 읽기 |
AuditLog.Read.All | 16개 이상 | 로그인 로그, 감사 로그, 활동 보고서 읽기 |
UserAuthenticationMethod.Read.All | 13개 이상 | MFA 등록 및 인증 방법 확인 |
Application.Read.All | 7개 스크립트 | 앱 등록 및 서비스 주체 읽기 |
Group.Read.All | 4개 스크립트 | 그룹 멤버십 및 속성 읽기 |
RoleManagement.Read.Directory | 5개 스크립트 | 디렉터리 역할 할당 및 PIM 구성 읽기 |
Policy.Read.All | 3개 스크립트 | 조건부 액세스 정책 및 보안 기본값 읽기 |
Device.Read.All | 1개 스크립트 | 장치 등록 읽기 |
AdministrativeUnit.Read.All | 1개 스크립트 | 관리 단위 읽기 |
PrivilegedAccess.Read.AzureAD | 1개 스크립트 | PIM 역할 설정 및 할당 읽기 |
IdentityRiskyUser.Read.All | 2개 스크립트 | Identity Protection 위험 사용자 읽기 |
IdentityRiskySignIn.Read.All | 1개 스크립트 | Identity Protection 위험 로그인 읽기 |
IdentityRiskEvent.Read.All | 2개 스크립트 | Identity Protection 위험 이벤트 및 탐지 읽기 |
Reports.Read.All | 1개 스크립트 | 사용 보고서(SSPR) 읽기 |
DeviceManagementManagedDevices.Read.All | 1개 스크립트 | Intune 관리 장치 읽기 |
DeviceManagementConfiguration.Read.All | 1개 스크립트 | Intune 규정 준수 정책 읽기 |