
EvilMist è una raccolta di script e utility progettati per supportare il penetration testing e il red teaming nel cloud. Il toolkit aiuta a identificare configurazioni errate, valutare percorsi di escalation dei privilegi e simulare tecniche di attacco. EvilMist mira a ottimizzare i flussi di lavoro del red team incentrati sul cloud e a migliorare la postura di sicurezza complessiva delle infrastrutture cloud.
EvilMist è una raccolta di script e utilità progettata per supportare il audit di configurazione della sicurezza cloud, i test di penetrazione cloud e il red teaming cloud. Il toolkit aiuta a identificare configurazioni errate, valutare percorsi di escalation dei privilegi e simulare tecniche di attacco. EvilMist mira a semplificare i flussi di lavoro di red team incentrati sul cloud e migliorare la postura di sicurezza complessiva delle infrastrutture cloud.
Strumento di enumerazione e ricognizione di Azure/Entra ID senza autenticazione. Esegue enumerazione passiva/semi-passiva utilizzando API pubblicamente accessibili e query DNS senza richiedere token di autenticazione.
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraEnum-PS1.md | scripts/powershell/Invoke-EntraEnum.ps1 |
Strumento completo di enumerazione degli utenti e valutazione della sicurezza di Azure Entra ID (Azure AD), disponibile in versioni PowerShell e Python.
Caratteristiche principali:
/users è bloccato| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraRecon-PS1.md | scripts/powershell/Invoke-EntraRecon.ps1 |
| Python | EntraRecon-PY.md |
Strumento di valutazione della sicurezza mirato per identificare gli utenti di Azure Entra ID senza autenticazione multi-fattore (MFA) abilitata. Include funzionalità avanzate per il rilevamento di cassette postali condivise e l'analisi dell'attività di accesso.
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraMFACheck-PS1.md | scripts/powershell/Invoke-EntraMFACheck.ps1 |
Strumento completo di analisi degli account guest per identificare, analizzare e valutare la postura di sicurezza degli utenti esterni in Azure Entra ID. Essenziale per la governance dell'accesso guest e gli audit di sicurezza.
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraGuestCheck-PS1.md | scripts/powershell/Invoke-EntraGuestCheck.ps1 |
Strumento completo di valutazione della sicurezza per identificare gli utenti di Azure Entra ID con accesso a 10 applicazioni amministrative critiche, inclusi strumenti PowerShell, portali di gestione, servizi principali di Microsoft 365 e gestione delle identità privilegiate. Essenziale per la governance dell'accesso privilegiato e l'audit degli strumenti amministrativi.
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraAppAccess-PS1.md | scripts/powershell/Invoke-EntraAppAccess.ps1 |
Esegui qualsiasi script dalla directory principale senza navigare nelle sottocartelle:```powershell
.\Invoke-EvilMist.ps1
.\Invoke-EvilMist.ps1 -Script EntraRecon -ExportPath "users.csv"
.\Invoke-EvilMist.ps1 -List
.\Invoke-EvilMist.ps1 -Script EntraMFACheck -Matrix -OnlyNoMFA
**Script disponibili:** 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
### Enumerazione Entra ID non autenticata (PowerShell)
**Requisiti:** PowerShell 7+ (nessun modulo aggiuntivo necessario)```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
📖 Documentazione completa: EntraEnum-PS1.md
Requisiti: 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
📖 **Documentazione completa:** [EntraRecon-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraRecon-PS1.md)
### Enumerate-EntraUsers (Python)
**Requisiti:** Python 3.8+, `msal`, `requests````bash
# Install dependencies
pip install -r requirements.txt
# Run directly from subfolder
python scripts\python\entra_recon.py
📖 Documentazione completa: EntraRecon-PY.md
Requisiti: - PowerShell 7+, moduli 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
📖 **Documentazione completa:** [EntraMFACheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraMFACheck-PS1.md)
### Enumerazione degli account guest (PowerShell)
**Requisiti:** PowerShell 7+, moduli 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
📖 Documentazione completa: EntraGuestCheck-PS1.md
Requisiti: PowerShell 7+, Microsoft.Graph modules```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
📖 **Documentazione completa:** [EntraAppAccess-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraAppAccess-PS1.md)
### Verifica dei ruoli privilegiati (PowerShell)
**Requisiti:** PowerShell 7+, Microsoft.Graph modules```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
📖 Documentazione completa: EntraRoleCheck-PS1.md
Requisiti: PowerShell 7+, Microsoft.Graph modules```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
📖 **Documentazione completa:** [EntraServicePrincipalCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraServicePrincipalCheck-PS1.md)
**Caratteristiche principali:**
- **Copertura completa dei ruoli** - Enumera tutti i ruoli della directory, inclusi i ruoli a rischio CRITICO, ALTO, MEDIO e BASSO
- **Supporto PIM** - Identifica sia le assegnazioni di ruolo permanenti (Attive) che quelle gestite da PIM (Idonee/Attive)
- **Tracciamento delle assegnazioni** - Mostra date di assegnazione, durata e date di scadenza
- **Rilevamento stato MFA** - Identifica utenti privilegiati senza autenticazione a più fattori
- **Tracciamento ultimo accesso** - Mostra data/ora di accesso e pattern di attività
- **Valutazione del rischio** - Categorizza gli utenti per livello di rischio in base alla criticità del ruolo e alla postura di sicurezza
- **Analisi dell'attività** - Statistiche di accesso, account obsoleti, utenti inattivi
- **Vista matrice** - Formato tabella compatto per una rapida scansione visiva
- **Opzioni di filtro** - Mostra solo utenti senza MFA, solo assegnazioni permanenti o includi account disabilitati
- **Opzioni di esportazione** - CSV/JSON con dettagli completi delle assegnazioni di ruolo
- **Modalità stealth** - Ritardi e jitter configurabili per evitare il rilevamento
| Versione | Documentazione | File |
|----------|--------------|------|
| PowerShell | [EntraServicePrincipalCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraServicePrincipalCheck-PS1.md) | `scripts/powershell/Invoke-EntraServicePrincipalCheck.ps1` |
---
### Controllo di sicurezza della registrazione dell'applicazione (PowerShell)
**Requisiti:** PowerShell 7+, moduli 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
📖 Documentazione completa: EntraApplicationCheck-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraApplicationCheck-PS1.md | scripts/powershell/Invoke-EntraApplicationCheck.ps1 |
Requisiti: PowerShell 7+, moduli 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
📖 **Documentazione completa:** [EntraConditionalAccessCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraConditionalAccessCheck-PS1.md)
### Controllo di sicurezza dell'unità amministrativa (PowerShell)
**Requisiti:** PowerShell 7+, moduli Microsoft.Graph```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
📖 Documentazione completa: EntraAdminUnitCheck-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraAdminUnitCheck-PS1.md | scripts/powershell/Invoke-EntraAdminUnitCheck.ps1 |
Requisiti: PowerShell 7+, moduli 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
📖 **Documentazione completa:** [EntraStaleAccountCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraStaleAccountCheck-PS1.md)
**Caratteristiche principali:**
- **Rilevamento account inattivi** - Identifica account senza accesso recente (>90 giorni)
- **Rilevamento account mai utilizzati** - Trova account che non sono mai stati usati
- **Rilevamento spreco di licenze** - Identifica account disabilitati che hanno ancora licenze assegnate
- **Monitoraggio scadenza password** - Rileva account con password scadute
- **Analisi età account** - Calcola l'età dell'account e la correla con l'inattività
- **Valutazione del rischio** - Classifica gli account per livello di rischio (CRITICO/ALTO/MEDIO/BASSO)
- **Analisi dell'attività** - Statistiche di accesso, ripartizione degli account inattivi
- **Vista matrice** - Formato tabella compatto per scansione visiva rapida
- **Opzioni di filtro** - Includere o escludere account disabilitati
- **Opzioni di esportazione** - CSV/JSON con dettagli completi dell'account
- **Modalità furtiva** - Ritardi e jitter configurabili per evitare il rilevamento
| Versione | Documentazione | File |
|----------|----------------|------|
| PowerShell | [EntraStaleAccountCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraStaleAccountCheck-PS1.md) | `scripts/powershell/Invoke-EntraStaleAccountCheck.ps1` |
---
### Controllo della fiducia e conformità del dispositivo (PowerShell)
**Requisiti:** PowerShell 7+, moduli 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
📖 Documentazione completa: EntraDeviceCheck-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraDeviceCheck-PS1.md | scripts/powershell/Invoke-EntraDeviceCheck.ps1 |
Requisiti: PowerShell 7+, moduli 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
📖 **Documentazione completa:** [EntraSSPRCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraSSPRCheck-PS1.md)
**Caratteristiche principali:**
- **SSPR Status Detection** - Identifica gli utenti con SSPR abilitato, registrato o capace
- **Analisi dei metodi di registrazione** - Analizza i metodi di autenticazione registrati per SSPR
- **Rilevamento metodi di backup** - Identifica gli utenti senza metodi di backup configurati
- **Rilevamento metodi forti** - Distingue tra metodi di autenticazione forti e deboli
- **Correlazione stato MFA** - Incrocia la configurazione SSPR con lo stato MFA
- **Tracciamento ultimo accesso** - Mostra data/ora di accesso e modelli di attività
- **Valutazione del rischio** - Categorizza gli utenti per livello di rischio (ALTO/MEDIO/BASSO) in base alla configurazione SSPR
- **Analisi dell'attività** - Statistiche di accesso, account inattivi, utenti non attivi
- **Vista matrice** - Formato tabella compatta per una rapida scansione visiva
- **Opzioni di filtro** - Mostra solo utenti senza metodi di backup o includi account disabilitati
- **Opzioni di esportazione** - CSV/JSON con dettagli completi SSPR
- **Modalità stealth** - Ritardi e jitter configurabili per evitare il rilevamento
| Versione | Documentazione | File |
|---------|---------------|------|
| PowerShell | [EntraSSPRCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraSSPRCheck-PS1.md) | `scripts/powershell/Invoke-EntraSSPRCheck.ps1` |
---
### Controllo sicurezza della politica delle password (PowerShell)
**Requisiti:** PowerShell 7+, moduli 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
📖 Documentazione completa: EntraPasswordPolicyCheck-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraPasswordPolicyCheck-PS1.md | scripts/powershell/Invoke-EntraPasswordPolicyCheck.ps1 |
Requisiti: PowerShell 7+, moduli 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
📖 **Documentazione completa:** [EntraLegacyAuthCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraLegacyAuthCheck-PS1.md)
**Caratteristiche principali:**
- **Rilevamento protocolli legacy** - Identifica 10 protocolli di autenticazione legacy (IMAP, POP3, SMTP, Exchange ActiveSync, ecc.)
- **Analisi log di accesso** - Interroga i log di controllo per l'uso dell'autenticazione legacy (ultimi 90 giorni)
- **Tracciamento ultimo utilizzo** - Mostra data e ora dell'ultima autenticazione legacy
- **Statistiche dei protocolli** - Tiene traccia degli accessi riusciti/falliti per protocollo
- **Rilevamento stato MFA** - Identifica gli utenti senza autenticazione multifattore che utilizzano l'autenticazione legacy
- **Valutazione del rischio** - Classifica gli utenti per livello di rischio (CRITICO/ALTO/MEDIO/BASSO) in base ai modelli di utilizzo e alla recenza
- **Analisi delle attività** - Statistiche di accesso, ripartizione dei protocolli, recenza dell'utilizzo
- **Vista matrice** - Formato tabella compatto per una rapida scansione visiva
- **Opzioni di filtro** - Mostra solo l'utilizzo recente o include account disabilitati
- **Opzioni di esportazione** - CSV/JSON con dettagli completi dell'autenticazione legacy
- **Modalità stealth** - Ritardi e jitter configurabili per evitare il rilevamento
| Version | Documentation | File |
|---------|---------------|------|
| PowerShell | [EntraLegacyAuthCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraLegacyAuthCheck-PS1.md) | `scripts/powershell/Invoke-EntraLegacyAuthCheck.ps1` |
---
### Analisi delle licenze e degli SKU (PowerShell)
**Requisiti:** PowerShell 7+, Microsoft.Graph modules```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
📖 Documentazione completa: EntraLicenseCheck-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraLicenseCheck-PS1.md | scripts/powershell/Invoke-EntraLicenseCheck.ps1 |
Requisiti: PowerShell 7+, moduli 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
📖 **Documentazione completa:** [EntraDirectorySyncCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraDirectorySyncCheck-PS1.md)
**Caratteristiche principali:**
- **Analisi dello stato della sincronizzazione** - Identifica utenti sincronizzati rispetto a quelli solo cloud
- **Rilevamento errori di sincronizzazione** - Enumera tutti gli errori di provisioning e sincronizzazione
- **Rilevamento sincronizzazione obsoleta** - Identifica utenti con sincronizzazione non aggiornata (>7 giorni)
- **Identificazione conflitti di sincronizzazione** - Rileva attributi duplicati e conflitti
- **Analisi dell'ambito di sincronizzazione** - Verifica configurazione e ambito della sincronizzazione
- **Valutazione del rischio** - Categorizza gli utenti per livello di rischio (CRITICO/ALTO/MEDIO/BASSO) in base allo stato di sincronizzazione
- **Analisi delle attività** - Statistiche di sincronizzazione, ripartizione degli errori, analisi dei domini
- **Vista matrice** - Formato tabella compatto per una rapida scansione visiva
- **Opzioni di filtro** - Mostra solo errori di sincronizzazione, sincronizzazione obsoleta o includi account disabilitati
- **Opzioni di esportazione** - CSV/JSON con dettagli completi sulla sincronizzazione
- **Modalità stealth** - Ritardi e jitter configurabili per evitare rilevamenti
| Versione | Documentazione | File |
|---------|---------------|------|
| PowerShell | [EntraDirectorySyncCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraDirectorySyncCheck-PS1.md) | `scripts/powershell/Invoke-EntraDirectorySyncCheck.ps1` |
---
### Enumerazione Power Platform (PowerShell)
**Requisiti:** PowerShell 7+, moduli Microsoft.Graph, autorizzazioni di amministratore Power Platform o Environment Maker
**Autenticazione:** Lo script gestisce automaticamente l'autenticazione all'API Power Platform:
- **Predefinito**: Flusso del codice del dispositivo (richiesta nel browser) - nessuna configurazione necessaria
- **Azure CLI**: Usa `-UseAzCliToken` - esegue automaticamente `az login` se necessario
- **Azure PowerShell**: Usa `-UseAzPowerShellToken` - esegue automaticamente `Connect-AzAccount` se necessario (usa lo stesso account dell'autenticazione 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
📖 Documentazione completa: EntraPowerPlatformCheck-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraPowerPlatformCheck-PS1.md | scripts/powershell/Invoke-EntraPowerPlatformCheck.ps1 |
Requisiti: PowerShell 7+, Microsoft.Graph modules```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
📖 **Documentazione completa:** [EntraAttackPathCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraAttackPathCheck-PS1.md)
**Caratteristiche principali:**
- **Analisi dell'escalation dei privilegi** - Identifica percorsi verso privilegi elevati tramite gruppi assegnabili a ruoli
- **Rilevamento della delega di reimpostazione password** - Trova utenti che possono reimpostare password per altri utenti
- **Analisi dell'appartenenza transitiva ai gruppi** - Identifica l'accesso indiretto a gruppi privilegiati
- **Rilevamento dell'accesso alla cassetta postale condivisa** - Identifica cassette postali condivise che potrebbero essere utilizzate per movimento laterale
- **Valutazione del rischio** - Classifica i percorsi di attacco per livello di rischio (CRITICAL/HIGH/MEDIUM) in base al tipo di percorso e alla postura di sicurezza dell'utente
- **Analisi della complessità del percorso** - Valuta la complessità del percorso di attacco (Bassa/Media/Alta)
- **Rilevamento dello stato MFA** - Identifica utenti senza autenticazione multifattore nei percorsi di attacco
- **Tracciamento dell'ultimo accesso** - Mostra data/ora di accesso e modelli di attività
- **Analisi delle attività** - Statistiche di accesso, account obsoleti, utenti inattivi
- **Vista matrice** - Formato tabella compatto per una rapida scansione visiva
- **Opzioni di filtro** - Mostra solo percorsi ad alto rischio o includi account disabilitati
- **Opzioni di esportazione** - CSV/JSON con dettagli completi del percorso di attacco
- **Modalità Stealth** - Ritardi e jitter configurabili per evitare il rilevamento
| Versione | Documentazione | File |
|---------|---------------|------|
| PowerShell | [EntraAttackPathCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraAttackPathCheck-PS1.md) | `scripts/powershell/Invoke-EntraAttackPathCheck.ps1` |
---
### Audit delle assegnazioni di ruolo Azure RBAC e rilevamento delle deviazioni (PowerShell)
**Requisiti:** moduli 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
📖 Documentazione completa: EntraAzureRBACCheck-PS1.md
Caratteristiche principali:
-SkipFailedTenants)-ShowAllUsersPermissions)-ExpandGroupMembers)-ExcludePIM)| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraAzureRBACCheck-PS1.md | scripts/powershell/Invoke-EntraAzureRBACCheck.ps1 |
Requisiti: PowerShell 7+, moduli 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
📖 **Documentazione completa:** [EntraOAuthConsentCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraOAuthConsentCheck-PS1.md)
**Caratteristiche principali:**
- **Enumerazione OAuth2PermissionGrant** - Enumera tutte le concessioni di permessi delegati nel tenant
- **Rilevamento consenso amministratore vs utente** - Distingue tra consenso amministrativo a livello di tenant e consenso individuale dell'utente
- **Rilevamento permessi pericolosi** - Identifica ambiti ad alto rischio (Mail.ReadWrite, Files.ReadWrite.All, User.ReadWrite.All, ecc.)
- **Rilevamento consenso obsoleto** - Trova concessioni di consenso non utilizzate (soglia configurabile, predefinita 90 giorni)
- **Identificazione app di terze parti** - Identifica automaticamente le applicazioni non Microsoft con permessi elevati
- **Correlazione attività di accesso** - Incrocia i dati con l'attività di accesso per rilevare app dormienti
- **Valutazione del rischio** - Classifica le concessioni di consenso per livello di rischio (CRITICAL/HIGH/MEDIUM/LOW) in base al tipo di consenso, ai permessi e all'origine dell'app
- **Analisi dell'editore** - Tiene traccia degli editori delle applicazioni e dello stato di editore verificato
- **Tracciamento delle risorse** - Identifica a quali API/risorse ogni app ha accesso
- **Vista a matrice** - Formato tabella compatto per una rapida scansione visiva
- **Opzioni di filtro** - Mostra solo concessioni di consenso ad alto rischio, di terze parti, obsolete o di tipo amministrativo
- **Opzioni di esportazione** - CSV/JSON con dettagli completi delle concessioni di consenso
- **Modalità stealth** - Ritardi e jitter configurabili per evitare il rilevamento
| Versione | Documentazione | File |
|----------|----------------|------|
| PowerShell | [EntraOAuthConsentCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraOAuthConsentCheck-PS1.md) | `scripts/powershell/Invoke-EntraOAuthConsentCheck.ps1` |
---
### Controllo del rischio di accesso (PowerShell)
**Requisiti:** PowerShell 7+, moduli 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
📖 Documentazione completa: EntraSignInRiskCheck-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraSignInRiskCheck-PS1.md | scripts/powershell/Invoke-EntraSignInRiskCheck.ps1 |
Requisiti: PowerShell 7+, moduli 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
📖 **Documentazione completa:** [EntraPIMCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraPIMCheck-PS1.md)
**Caratteristiche principali:**
- **Audit configurazione accesso JIT** - Analizza durata massima attivazione, requisiti di approvazione, applicazione MFA
- **Analisi flusso di approvazione** - Identifica ruoli senza approvazione o con approvatori mancanti
- **Requisiti di giustificazione** - Rileva ruoli senza giustificazione obbligatoria per l'attivazione
- **Applicazione MFA** - Identifica ruoli che non richiedono MFA per l'attivazione
- **Configurazione notifiche** - Analizza le impostazioni di notifica amministratore per le attivazioni dei ruoli
- **Rilevamento assegnazioni permanenti** - Trova accessi privilegiati permanenti che aggirano PIM
- **PIM per gruppi** - Analizza la gestione degli accessi privilegiati basata su gruppi
- **Revisioni di accesso** - Verifica la configurazione della certificazione periodica degli accessi
- **Valutazione del rischio** - Classifica i ruoli per livello di rischio (CRITICO/ALTO/MEDIO/BASSO) in base a lacune di configurazione
- **Analisi idoneo vs attivo** - Confronta assegnazioni idonee con assegnazioni attive/permanenti
- **Rilevamento account di emergenza** - Identifica assegnazioni permanenti che potrebbero essere account di emergenza
- **Vista matrice** - Formato tabella compatto per scansione visiva rapida
- **Opzioni di filtro** - Mostra solo ruoli critici, ruoli ad alto privilegio o configurazioni errate
- **Opzioni di esportazione** - CSV/JSON con dettagli completi della configurazione PIM
- **Modalità stealth** - Ritardi e jitter configurabili per evitare il rilevamento
| Versione | Documentazione | File |
|----------|----------------|------|
| PowerShell | [EntraPIMCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraPIMCheck-PS1.md) | `scripts/powershell/Invoke-EntraPIMCheck.ps1` |
---
### Controllo di sicurezza di Azure Key Vault (PowerShell)
**Requisiti:** moduli 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
📖 Documentazione completa: EntraKeyVaultCheck-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraKeyVaultCheck-PS1.md | scripts/powershell/Invoke-EntraKeyVaultCheck.ps1 |
Strumento completo di audit di sicurezza per Azure Storage Account che rileva account di archiviazione esposti e rischi di esfiltrazione dati. Identifica contenitori blob pubblici, configurazioni di rete errate e lacune nella protezione dei dati.```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
📖 **Documentazione completa:** [EntraStorageAccountCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraStorageAccountCheck-PS1.md)
**Caratteristiche principali:**
- **Rilevamento contenitori BLOB pubblici** - Identifica i contenitori con accesso anonimo (a livello BLOB/Contenitore)
- **Controllo imposizione HTTPS** - Rileva account di archiviazione che consentono traffico HTTP non crittografato
- **Analisi accesso chiave condivisa** - Identifica gli account che utilizzano chiavi di archiviazione rispetto all'autenticazione Azure AD
- **Audit sicurezza di rete** - Verifica accesso pubblico, regole firewall, integrazione VNet, endpoint privati
- **Analisi protezione dati** - Soft delete BLOB, soft delete contenitori, stato versioning
- **Tracciamento rotazione chiavi** - Identifica chiavi account di archiviazione che superano la soglia di rotazione
- **Replica cross-tenant** - Rileva replica dei dati verso altri tenant (rischio esfiltrazione)
- **Verifica versione TLS** - Garantisce l'imposizione di TLS 1.2 minimo
- **Crittografia infrastruttura** - Verifica configurazione doppia crittografia
- **Controllo logging diagnostico** - Verifica che il logging di audit sia abilitato
- **Valutazione del rischio** - Categorizza gli account di archiviazione per livello di rischio (CRITICO/ALTO/MEDIO/BASSO)
- **Vista matrice** - Formato tabella compatta per scansione visiva rapida
- **Opzioni di filtro** - Mostra solo contenitori critici, con accesso pubblico o anonimi
- **Opzioni di esportazione** - CSV/JSON con dettagli completi degli account di archiviazione
- **Modalità stealth** - Ritardi e jitter configurabili per evitare il rilevamento
| Versione | Documentazione | File |
|---------|---------------|------|
| PowerShell | [EntraStorageAccountCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraStorageAccountCheck-PS1.md) | `scripts/powershell/Invoke-EntraStorageAccountCheck.ps1` |
---
### Controllo sicurezza di rete (PowerShell)
**Requisiti:** PowerShell 7+, moduli 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
📖 Documentazione completa: EntraNetworkSecurityCheck-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraNetworkSecurityCheck-PS1.md | scripts/powershell/Invoke-EntraNetworkSecurityCheck.ps1 |
Strumento completo di audit di sicurezza delle identità gestite di Azure che identifica autorizzazioni eccessive e rischi per la sicurezza. Rileva identità gestite con privilegi elevati, accessi tra sottoscrizioni e identità inutilizzate.```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
📖 **Documentazione completa:** [EntraManagedIdentityCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraManagedIdentityCheck-PS1.md)
**Caratteristiche principali:**
- **Inventario delle identità** - Enumerazione delle identità gestite System-assigned e user-assigned
- **Analisi delle assegnazioni di ruolo** - Autorizzazioni Azure RBAC per ogni identità gestita
- **Rilevamento di privilegi elevati** - Identifica i ruoli Owner, Contributor, User Access Administrator
- **Rilevamento di ruoli critici** - Segnala le identità con ruoli Owner, UAA o RBAC Admin
- **Accesso tra sottoscrizioni** - Rileva identità con autorizzazioni oltre la sottoscrizione di origine
- **Rilevamento di identità inutilizzate** - Trova identità gestite senza assegnazioni di ruolo
- **Copertura delle risorse** - VM, Servizi App, App per le funzioni, Identità assegnate dall'utente
- **Analisi dell'ambito** - Autorizzazioni a livello di sottoscrizione, gruppo di risorse e risorsa
- **Valutazione del rischio** - Classificazione CRITICAL/HIGH/MEDIUM/LOW con risultati
- **Vista a matrice** - Formato tabellare compatto per una rapida revisione
- **Opzioni di esportazione** - CSV/JSON con dettagli completi dell'identità
- **Modalità Stealth** - Ritardi e jitter configurabili per evitare il rilevamento
| Versione | Documentazione | File |
|---------|---------------|------|
| PowerShell | [EntraManagedIdentityCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraManagedIdentityCheck-PS1.md) | `scripts/powershell/Invoke-EntraManagedIdentityCheck.ps1` |
---
### Audit di sicurezza di Exchange Online
Strumento completo di audit di sicurezza per Exchange Online che rileva vettori di attacco basati sulla posta elettronica e rischi di esfiltrazione dei dati. Identifica regole della posta in arrivo che inoltrano a indirizzi esterni, regole di trasporto sospette, deleghe delle cassette postali e lacune nel logging di audit.```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
📖 Documentazione completa: EntraExchangeCheck-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraExchangeCheck-PS1.md | scripts/powershell/Invoke-EntraExchangeCheck.ps1 |
Strumento completo di valutazione della sicurezza di SharePoint Online per identificare rischi di condivisione eccessiva e accesso esterno. Verifica le configurazioni di condivisione a livello di tenant e sito per rilevare potenziali esposizioni di dati.```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
📖 **Documentazione completa:** [EntraSharePointCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraSharePointCheck-PS1.md)
**Caratteristiche principali:**
- **Impostazioni di condivisione del tenant** - Analisi della policy di condivisione esterna a livello di organizzazione
- **Rilevamento link anonimi** - Identifica i siti che consentono link "Chiunque"
- **Override a livello di sito** - Rileva siti con condivisione più permissiva rispetto al tenant
- **Analisi accesso guest** - Accesso di utenti esterni a siti sensibili
- **Condivisione OneDrive** - Configurazione della condivisione esterna dello spazio personale
- **Copertura etichette di riservatezza** - Identifica i siti privi di classificazione dei dati
- **Analisi link predefiniti** - Configurazione del tipo di link predefinito e dei permessi
- **Policy di scadenza link** - Impostazioni di scadenza per link anonimi
- **Restrizioni di dominio** - Configurazione delle liste di consenso/blocco
- **Valutazione del rischio** - Classificazione CRITICA/ALTA/MEDIA/BASSA con risultati
- **Vista matrice** - Formato tabellare compatto per una rapida revisione
- **Opzioni di esportazione** - CSV/JSON con dettagli completi del sito
- **Modalità stealth** - Ritardi e jitter configurabili per evitare il rilevamento
| Versione | Documentazione | File |
|----------|----------------|------|
| PowerShell | [EntraSharePointCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraSharePointCheck-PS1.md) | `scripts/powershell/Invoke-EntraSharePointCheck.ps1` |
---
### Enumerazione di SharePoint Online
Strumento di ricerca e download di file autenticato per SharePoint Online tramite l'API REST di SharePoint. Consente agli operatori red-team di scoprire ed esfiltrare documenti sensibili durante test di penetrazione autorizzati. Porting PowerShell di [ElephantPoint](https://github.com/nettitude/ElephantPoint) (Nettitude).```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"
📖 Documentazione completa: SharePointEnum-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | SharePointEnum-PS1.md | scripts/powershell/Invoke-SharePointEnum.ps1 |
Strumento completo di valutazione della sicurezza di Microsoft Teams per controllare le impostazioni di sicurezza della collaborazione. Identifica rischi di accesso esterno, policy per gli ospiti, lacune nella sicurezza delle riunioni e problemi di autorizzazione delle app.```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
📖 **Documentazione completa:** [EntraTeamsCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraTeamsCheck-PS1.md)
**Caratteristiche principali:**
- **Accesso esterno (Federazione)** - Analizza chi può comunicare dall'esterno dell'organizzazione
- **Criteri di accesso ospite** - Capacità degli utenti ospiti e impostazioni delle autorizzazioni
- **Criteri per le riunioni** - Partecipazione anonima, bypass della lobby, impostazioni di registrazione
- **Criteri di autorizzazione delle app** - Controlli di accesso per app di terze parti e personalizzate
- **Criteri di messaggistica** - Impostazioni delle funzionalità di chat e messaggi
- **Inventario Teams** - Visibilità, appartenenza ospite e analisi di governance
- **Configurazione client** - Impostazioni di sicurezza del client Teams
- **Valutazione del rischio** - Classificazione CRITICA/ALTA/MEDIA/BASSA con risultati
- **Vista matrice** - Formato tabellare compatto per una rapida revisione
- **Opzioni di esportazione** - CSV/JSON con dettagli completi di configurazione
- **Modalità stealth** - Ritardi e jitter configurabili per evitare il rilevamento
| Versione | Documentazione | File |
|---------|---------------|------|
| PowerShell | [EntraTeamsCheck-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraTeamsCheck-PS1.md) | `scripts/powershell/Invoke-EntraTeamsCheck.ps1` |
---
### Analisi dei percorsi di attacco tra servizi Azure
Strumento completo per l'analisi dei percorsi di attacco tra servizi Azure che identifica percorsi di attacco a più salti attraverso più servizi Azure. Rivela come l'accesso a una risorsa può portare al compromesso di altre risorse nell'ambiente 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
📖 Documentazione completa: EntraAzureAttackPathCheck-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraAzureAttackPathCheck-PS1.md | scripts/powershell/Invoke-EntraAzureAttackPathCheck.ps1 |
Generatore unificato di report di sicurezza HTML che esegue molteplici controlli di sicurezza EvilMist e produce un dashboard esecutivo completo con valutazione del rischio, priorità di remediation e analisi delle tendenze.```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
📖 **Documentazione completa:** [EntraReport-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraReport-PS1.md)
**Caratteristiche principali:**
- **Report Consolidato** - Esegui più controlli di sicurezza con un singolo comando
- **Dashboard Esecutivo** - Report HTML professionale con punteggio di sicurezza (0-100)
- **Panoramica della Gravità del Rischio** - Conteggio dei riscontri CRITICI, ALTI, MEDI, BASSI
- **Matrice di Priorità di Remediation** - Azioni prioritarie (P1-P4) con tempistiche consigliate
- **Analisi delle Tendenze** - Confronta con i report di base per monitorare i miglioramenti della sicurezza
- **Modalità Scansione Rapida** - Controlli di sicurezza principali (MFA, Ruoli, CA, Percorsi di Attacco, OAuth, PIM)
- **Scansione Completa** - Tutti i controlli di sicurezza disponibili per una copertura totale
- **Esportazione JSON** - Esportazione automatica della baseline per confronti futuri
- **Modalità Stealth** - Ritardi e jitter configurabili per evitare il rilevamento
| Versione | Documentazione | File |
|---------|---------------|------|
| PowerShell | [EntraReport-PS1.md](https://github.com/logisek/evilmist/blob/HEAD/docs/EntraReport-PS1.md) | `scripts/powershell/Invoke-EntraReport.ps1` |
---
### Valutazione della Conformità (CIS/NIST/SOC2/ISO27001/GDPR)
Strumento completo di valutazione della conformità che valuta la configurazione di sicurezza di Azure Entra ID rispetto a framework standard del settore, tra cui CIS Microsoft Azure Foundations Benchmark, NIST 800-53, SOC 2, ISO 27001 e 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
📖 Documentazione completa: EntraComplianceCheck-PS1.md
Caratteristiche principali:
| Versione | Documentazione | File |
|---|---|---|
| PowerShell | EntraComplianceCheck-PS1.md | scripts/powershell/Invoke-EntraComplianceCheck.ps1 |
Entrambe le versioni offrono le stesse funzionalità principali:
|---------|---------------------|-------------------|---------------------------|----------------------------|----------------------|------------------------|--------------------------|--------------------------|------------------------|---------------------|-------------------|-------------|---------------------|-------------------|--------------|---------------------|-------------------|-------------------|-------------------|-------------------|-------------------| | Scopo | Enumerazione completa utenti | Audit di sicurezza MFA mirato | Governance accesso ospiti | Audit accesso amministrativo critico | Audit assegnazione ruoli privilegiati | Audit sicurezza account di servizio | Audit sicurezza registrazioni applicazioni | Analisi gap criteri di sicurezza | Audit accesso amministrativo ambito | Audit igiene account | Audit fiducia e conformità dispositivi | Audit configurazione SSPR | Audit sicurezza criteri password | Audit sicurezza autenticazione legacy | Analisi licenze e SKU | Audit stato e salute sincronizzazione directory | Enumerazione e audit sicurezza Power Platform | Analisi e governance sicurezza gruppi | Analisi percorsi di attacco - escalation privilegi e movimento laterale | Esportazione baseline Azure RBAC multi-tenant e rilevamento drift | Audit concessioni consenso OAuth - rilevamento consenso illecito | | Enumerazione Utenti | 15+ metodi | Metodo standard | Focalizzato sugli ospiti | Basato su assegnazione app | Basato su assegnazione ruolo | Focalizzato su service principal | | | | | | Focalizzato su autenticazione legacy | Focalizzato su sincronizzazione | ❌ | | Rilevamento MFA | Controllo base | Avanzato con tipi di metodo | Avanzato con tipi di metodo | Avanzato con tipi di metodo | Avanzato con tipi di metodo | Controllo MFA proprietario | | | | | | Avanzato con tipi di metodo | ❌ | ❌ | | Rilevamento Cassette Postali Condivise | ❌ | ✅ Automatico | ❌ (N/D per ospiti) | ❌ (N/D per accesso app) | ❌ (N/D per ruoli) | ❌ (N/D per SP) | | | | | | ❌ (N/D per autenticazione legacy) | ❌ | ❌ | | Estrazione Dominio Ospite | ❌ | ❌ | ✅ Automatico | ❌ | ❌ | ❌ | | | | | | ❌ | ❌ | ❌ | | Tracciamento Stato Invito | ❌ | ❌ | ✅ Con date di accettazione | ❌ | ❌ | ❌ | | | | | | ❌ | ❌ | ❌ | | Tracciamento Accesso App | ❌ | ❌ | ❌ | ✅ Copertura multi-app | ❌ | ❌ | | | | | | ❌ | ❌ | ❌ | | Tracciamento Assegnazione Ruoli | ❌ | ❌ | ❌ | ❌ | ✅ Tutti i ruoli directory | ❌ | | | | | | ❌ | ❌ | ✅ Tutti i ruoli Azure RBAC | | Tracciamento Assegnazione PIM | ❌ | ❌ | ❌ | ❌ | ✅ Idonei e Attivi | ❌ | | | | | | ❌ | ❌ | ❌ | | Enumerazione Credenziali | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Segreti e certificati | ✅ Segreti e certificati | | | | | | ❌ | ❌ | ❌ | | Tracciamento Scadenza Credenziali | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Scadute e in scadenza | ✅ Scadute e in scadenza | | | | | | ❌ | ❌ | ❌ | | Analisi Autorizzazioni | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Alto rischio e critiche | ✅ Alto rischio e critiche (autorizzazioni API) | | | | | | ❌ | ❌ | ✅ Autorizzazioni ruolo RBAC | | Analisi Proprietario | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Con stato MFA | ✅ Con stato MFA | ❌ | | | | | ❌ | ❌ | ✅ Proprietari gruppo con stato MFA | ❌ | | Enumerazione Registrazioni Applicazioni | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Completa | | | | | | ❌ | ❌ | ❌ | | Analisi Autorizzazioni API | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Delegata e applicazione | | | | | | ❌ | ❌ | ❌ | | Tracciamento Data Assegnazione | ❌ | ❌ | ✅ Date invito | ✅ Date assegnazione | ✅ Date assegnazione e durata | ❌ | ❌ | | | | | ❌ | ❌ | ✅ Date creazione assegnazione ruolo | | Rilevamento Esclusioni Criteri | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Utenti, gruppi, ruoli, app | | | | | ❌ | ❌ | ❌ | | Gap Applicazione MFA | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Analisi a livello di criterio | | | | | ❌ | ❌ | ❌ | | Copertura App Critiche | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 10 app critiche | | | | | ❌ | ❌ | ❌ | | Rilevamento Autenticazione Legacy | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Targeting criteri | | | | | ✅ 10 protocolli | ❌ | ❌ | | Rilevamento Protocolli Legacy | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | | | | ✅ IMAP/POP3/SMTP/EAS/ecc. | ❌ | ❌ | | Ultimo Utilizzo Autenticazione Legacy | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | | | | ✅ Tracciamento data/ora | ❌ | ❌ | | Statistiche Protocollo | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | | | | ✅ Conteggi successo/fallimento | ❌ | ❌ | | Rilevamento Conflitto Criteri | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Ridondanti/in conflitto | ❌ | ❌ | ❌ | | | ❌ | ❌ | ❌ | | Enumerazione Unità Amministrative | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Completa | ❌ | ❌ | ❌ | | | ❌ | ❌ | ❌ | | Analisi Assegnazione Ruolo Ambito | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Tutte le assegnazioni ambito | ❌ | ❌ | ❌ | | | ❌ | ❌ | ❌ | | Enumerazione Membri AU | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Membri e ruoli | ❌ | ❌ | ❌ | | | ❌ | ❌ | ❌ | | Rilevamento Account Stantii | Limitato | Limitato | Limitato | Limitato | Limitato | ❌ | ❌ | Limitato | ✅ >90 giorni inattivo | ❌ | | | Limitato | ❌ | ❌ | | Rilevamento Mai Accesso | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Analisi età account | ❌ | | | ❌ | ❌ | ❌ | | Rilevamento Spreco Licenze | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Disabilitati con licenze | ❌ | | | ❌ | ❌ | ❌ | | Tracciamento Scadenza Password | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Password scadute | ❌ | ❌ | ✅ Analisi scadenza | ❌ | ❌ | ❌ | | Rilevamento Stato SSPR | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Abilitato/Registrato/In grado | ❌ | ❌ | ❌ | ❌ | | Analisi Metodi SSPR | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Metodi di registrazione | ❌ | ❌ | ❌ | ❌ | | Rilevamento Metodo Backup | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Nessun metodo di backup | ❌ | ❌ | ❌ | ❌ | | Classificazione Metodi Forti | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Metodi forti vs deboli | ❌ | ❌ | ❌ | ❌ | | Enumerazione Dispositivi | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Completa | ❌ | ❌ | ❌ | ❌ | ❌ | | Rilevamento Stato Conformità | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | ✅ Conforme/Non conforme/Sconosciuto | | | ❌ | ❌ | ❌ | | Rilevamento BYOD | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | ✅ Automatico | | | ❌ | ❌ | ❌ | | Rilevamento Accesso Stantio | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | ✅ >90 giorni | ✅ >90 giorni | | | Limitato | ❌ | ❌ | | Criteri Conformità Intune | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Enumerazione completa | | | ❌ | ❌ | ❌ | | Analisi Fiducia Dispositivo | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Tipi di join | | | ❌ | ❌ | ❌ | | Stato Gestione | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Gestito/Non gestito | | | ❌ | ❌ | ❌ | | Tracciamento Ultimo Accesso | ✅ | ✅ Con analisi | ✅ Con analisi | ✅ Con analisi | ✅ Con analisi | Limitato (attività SP) | ❌ | ✅ Con analisi | ✅ Con analisi | ✅ Con analisi | ✅ Con analisi | ✅ Con analisi | ✅ Con analisi | ✅ Con analisi | ✅ Con analisi | ❌ | | Verifica Capacità di Accesso | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | Rilevamento Stato Sincronizzazione | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Sincronizzato vs Solo Cloud | ❌ | | Rilevamento Errori Sincronizzazione | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Tutti gli errori di provisioning | ❌ | | Rilevamento Sincronizzazione Stantia | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ >7 giorni dall'ultima sincronizzazione | ❌ | | Identificazione Conflitti Sincronizzazione | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Attributi duplicati | ❌ | | Analisi Ambito Sincronizzazione | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Configurazione base | ❌ | | Enumerazione SKU Tenant | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Enumerazione completa | ❌ | ❌ | | Tracciamento Assegnazione Licenze | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Tutte le assegnazioni | ❌ | ❌ | | Rilevamento Licenze Privilegiate | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ E5, P2, ecc. | ❌ | ❌ | | Rilevamento Licenze Non Utilizzate | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Disabilitati con licenze | ❌ | ❌ | ❌ | ❌ | ✅ Mai effettuato accesso | ❌ | ❌ | | Analisi Utilizzo Licenze | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Statistiche consumo | ❌ | ❌ | ❌ | | Enumerazione Power Apps | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Completa | ❌ | | Enumerazione Flussi Power Automate | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Completa | ❌ | | Rilevamento Connettori Sensibili | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ 30+ connettori | ❌ | | Rilevamento Azioni ad Alto Rischio | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Elimina/Crea/Modifica | ❌ | | Analisi Rischio Connettori | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ CRITICO/ALTO/MEDIO/BASSO | ❌ | ❌ | | Enumerazione Gruppi | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Completa (tutti i tipi) | ❌ | | Rilevamento Nessun Proprietario | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Gruppi orfani | ❌ | | Rilevamento Appartenenza Eccessiva | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ >100 o >500 membri | ❌ | | Rilevamento Gruppi Assegnabili a Ruoli | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Gruppi a rischio CRITICO | ❌ | | Analisi Tipo Gruppo | ✅ Base | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Sicurezza/M365/Distribuzione/Dinamico | ❌ | | Enumerazione Concessioni Consenso OAuth | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Tutti OAuth2PermissionGrants | | Rilevamento Consenso Amministratore vs Utente | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ A livello tenant vs individuale | | Rilevamento Autorizzazioni Pericolose | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Accesso a Posta/File/Directory | | Rilevamento Consenso Stantio | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Soglia configurabile | | Rilevamento App di Terze Parti | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Microsoft vs terze parti | | Verifica Editore | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Stato editore verificato | | Scansione Multi-Tenant | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Tutti i tenant accessibili | ❌ | | Salta Tenant Falliti | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Continua su fallimenti MFA/CA | ❌ | | Esportazione Baseline Azure RBAC | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Baseline JSON | ❌ | | Rilevamento Drift Azure RBAC | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Assegnazioni Nuove/Rimosse/Modificate | ❌ | | Supporto Multi-Sottoscrizione | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Tutte le sottoscrizioni tra tenant | ❌ | | Espansione Membri Gruppo | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Espandi gruppi per mostrare utenti | ❌ | | Matrice Autorizzazioni Tutti gli Utenti | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Vista autorizzazioni centrata sull'utente | ❌ | | Analisi Gerarchia Ambito | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Sub/RG/Risorsa | ❌ | | Esclusione PIM/JIT | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Escludi assegnazioni temporanee | ❌ | | Rilevamento Condizione ABAC | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Drift disallineamento condizione | ❌ | | Istruzioni di Remediation | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ Terraform/CLI/PowerShell | ❌ | | Valutazione Livello Rischio | Base | Avanzato (ALTO/MEDIO/BASSO) | Avanzato (ALTO/MEDIO/BASSO) | Avanzato (ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | Avanzato (CRITICO/ALTO/MEDIO) | Avanzato (CRITICO/ALTO/MEDIO/BASSO) | | Analisi Attività | Limitata | Dettagliata (stantio/recente/mai) | Dettagliata (stantio/recente/mai) | Dettagliata (stantio/recente/mai) | Dettagliata (stantio/recente/mai) | Base (basata su età) | Dettagliata (scadenza credenziali/analisi autorizzazioni) | Analisi gap criteri | Dettagliata (attività admin ambito) | Dettagliata (indicatori di stantio) | Dettagliata (stantio/recente/mai) | Dettagliata (stantio/recente/mai) | Dettagliata (età password/gap criteri) | Dettagliata (recenza utilizzo/statistiche protocollo) | Dettagliata (utilizzo licenze/tracciamento non utilizzate) | Dettagliata (stato sincronizzazione/statistiche errori) | Dettagliata (statistiche risorse/ambiente/proprietario) | Dettagliata (statistiche tipo gruppo/proprietario/appartenenza) | Dettagliata (statistiche tipo percorso attacco/complessità/rischio) | Dettagliata (statistiche tipo drift/ruolo/tenant/sottoscrizione) | Dettagliata (statistiche tipo consenso/autorizzazione/stantio) | | Vista Matrice | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | Analisi Reparto | ✅ | ✅ Con statistiche | ✅ Con statistiche | ✅ Con statistiche | ✅ Con statistiche | ❌ | ❌ | ✅ Con statistiche | ✅ Con statistiche | ❌ | ✅ Con statistiche | ✅ Con statistiche | ✅ Con statistiche | ✅ Con statistiche | ✅ Con statistiche | ❌ | ❌ | ❌ | ❌ | ❌ | | Esportazione BloodHound | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | Report HTML | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | Esportazione CSV/JSON | ✅ | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Campi avanzati | ✅ Report baseline/drift JSON | ✅ Campi avanzati | | Modalità Stealth | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | Ricognizione red team | Audit conformità MFA | Sicurezza utenti esterni | Audit accesso privilegiato | Governance ruoli privilegiati | Sicurezza account di servizio | Gestione sicurezza e credenziali registrazioni applicazioni | Analisi gap criteri di sicurezza | Governance accesso admin ambito | Igiene e pulizia account | Fiducia dispositivo e conformità | Sicurezza reimpostazione password | Conformità criteri password | Migrazione e sicurezza autenticazione legacy | Governance licenze e ottimizzazione costi | Stato sincronizzazione directory e tracciamento errori | Sicurezza Power Platform e governance connettori | Sicurezza e governance gruppi | Analisi percorsi di attacco e rilevamento escalation privilegi | Governance Azure RBAC multi-tenant e rilevamento accessi non autorizzati | Sicurezza consenso OAuth e rilevamento concessioni illecite |
pip install -r requirements.txt
Oppure installa manualmente:```bash
pip install msal requests
# Optional: Additional authentication methods
pip install azure-identity
Enumerate-EntraUsers: Lo script installerà automaticamente il modulo Microsoft.Graph.Users richiesto al primo avvio.
Controllo di sicurezza MFA, Enumerazione account guest, Controllo accesso amministratore critico, Controllo ruoli privilegiati, Controllo entità servizio, Controllo registrazione applicazioni, Controllo accesso condizionale, Controllo unità amministrative, Controllo account inattivi, Controllo fiducia dispositivi, Controllo SSPR, Controllo policy password, Controllo autenticazione legacy, Controllo licenze, Controllo sincronizzazione directory, Controllo Power Platform e Controllo sicurezza gruppi: Richiedono Microsoft Graph PowerShell SDK:
Controllo Azure RBAC: Richiede i moduli Azure PowerShell:```powershell Install-Module Az -Scope CurrentUser
Oppure installa i singoli moduli:```powershell
Install-Module Az.Accounts -Scope CurrentUser
Install-Module Az.Resources -Scope CurrentUser
Altri strumenti:```powershell Install-Module Microsoft.Graph -Scope CurrentUser
Oppure installa singoli moduli:```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
Entrambi gli script supportano molteplici metodi di autenticazione:
az login memorizzate nella cacheConnect-AzAccount memorizzate nella cacheGRAPH_ACCESS_TOKEN o AZURE_ACCESS_TOKENLa versione Python supporta inoltre:
Questa sezione fornisce una matrice completa dei metodi di autenticazione e dei permessi API richiesti da ciascuno script del toolkit.
Tutti gli script supportano gli stessi metodi di autenticazione principali, con leggere variazioni in base all'API di destinazione:
Script: EntraRecon, EntraMFACheck, EntraGuestCheck, EntraAppAccess, EntraRoleCheck, EntraServicePrincipalCheck, EntraConditionalAccessCheck, EntraAdminUnitCheck, EntraStaleAccountCheck, EntraDeviceCheck, EntraSSPRCheck, EntraPasswordPolicyCheck, EntraLegacyAuthCheck, EntraLicenseCheck, EntraDirectorySyncCheck, EntraPowerPlatformCheck, EntraGroupCheck, EntraApplicationCheck, EntraAttackPathCheck, EntraOAuthConsentCheck, EntraSignInRiskCheck, EntraPIMCheck, EntraComplianceCheck
Script: EntraAzureRBACCheck, EntraKeyVaultCheck, EntraStorageAccountCheck, EntraManagedIdentityCheck, EntraNetworkSecurityCheck, EntraAzureAttackPathCheck
La tabella seguente mostra gli ambiti richiesti e di fallback per ciascuno script basato su Microsoft Graph. Gli ambiti di fallback vengono utilizzati quando l'utente non dispone dei permessi per l'insieme completo di ambiti richiesti.
Questi script utilizzano Azure PowerShell (modulo Az) e richiedono permessi Azure RBAC anziché ambiti Microsoft Graph:
I seguenti ambiti Microsoft Graph sono più frequentemente richiesti nel toolkit:
Per eseguire tutti gli script con piena funzionalità, si consiglia il seguente insieme di permessi consolidato:
Microsoft Graph (Permessi Delegati):``` 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:**
- Ruolo Lettore a livello di sottoscrizione o gruppo di gestione (per script di risorse Azure)
- Key Vault Reader (per EntraKeyVaultCheck con enumerazione dei segreti)
- Storage Blob Data Reader (per EntraStorageAccountCheck con enumerazione dei contenitori)
**Ruoli Amministratore di Microsoft 365:**
- Exchange Administrator (per EntraExchangeCheck)
- SharePoint Administrator (per EntraSharePointCheck)
- Teams Administrator (per EntraTeamsCheck)
---
## Dichiarazione di non responsabilità legale
Questo toolkit è destinato esclusivamente a scopi di test di sicurezza e ricerca autorizzati. Gli utenti sono responsabili di assicurarsi di avere l'autorizzazione appropriata prima di utilizzare questi strumenti su qualsiasi sistema. Gli autori non si assumono alcuna responsabilità per l'uso improprio di questo software.
---
## Licenza
GNU General Public License v3.0 - Consulta il file [LICENSE](https://github.com/logisek/evilmist/blob/HEAD/LICENSE) per i dettagli.
**Copyright (C) 2025 Logisek**
---
## Contributi
I contributi sono benvenuti! Sentiti libero di inviare pull request o aprire issue per bug e richieste di funzionalità.
---
## Riconoscimenti
- [Microsoft Graph API](https://docs.microsoft.com/en-us/graph/) - Fonte primaria dei dati
- [BloodHound](https://github.com/BloodHoundAD/BloodHound) - Ispirazione per l'analisi dei percorsi di attacco
- [AzureHound](https://github.com/BloodHoundAD/AzureHound) - Formato di raccolta dati Azure
- [microsoft-info](https://github.com/merill/microsoft-info) - Nomi delle app di prima parte Microsoft e autorizzazioni Graph
---
scripts/python/entra_recon.py |
| Documento | Descrizione |
|---|
| EntraRecon-PS1.md | Documentazione completa dello script PowerShell che include tutti i parametri, le funzionalità e gli esempi di utilizzo |
| EntraRecon-PY.md | Documentazione completa dello script Python che include metodi di autenticazione, configurazione stealth ed esempi |
| EntraMFACheck-PS1.md | Documentazione del controllo di sicurezza MFA che include rilevamento cassette postali condivise, tracciamento accessi e valutazione del rischio |
| EntraGuestCheck-PS1.md | Documentazione dell'enumerazione account guest che include estrazione dominio guest, tracciamento inviti e analisi di sicurezza |
| EntraAppAccess-PS1.md | Documentazione del controllo accessi PowerShell e Graph CLI che include tracciamento accessi app, date di assegnazione e analisi accessi privilegiati |
| EntraRoleCheck-PS1.md | Documentazione del controllo ruoli privilegiati che include enumerazione ruoli, tracciamento assegnazioni PIM, valutazione del rischio e analisi di sicurezza |
| EntraServicePrincipalCheck-PS1.md | Documentazione del controllo di sicurezza Service Principal che include enumerazione credenziali, tracciamento scadenze, analisi permessi, sicurezza proprietario e valutazione del rischio |
| EntraConditionalAccessCheck-PS1.md | Documentazione del controllo di sicurezza criteri di accesso condizionato che include enumerazione criteri, rilevamento esclusioni, lacune nell'applicazione MFA, copertura app critiche e valutazione del rischio |
| EntraStaleAccountCheck-PS1.md | Documentazione del controllo account inattivi che include rilevamento account inattivi, rilevamento mai connessi, rilevamento spreco licenze, tracciamento scadenza password e analisi igiene account |
| EntraDeviceCheck-PS1.md | Documentazione del controllo conformità e attendibilità dispositivi che include enumerazione dispositivi, rilevamento stato conformità, rilevamento BYOD, tracciamento accessi inattivi, criteri conformità Intune e valutazione del rischio |
| EntraSSPRCheck-PS1.md | Documentazione del controllo reimpostazione password self-service che include rilevamento stato SSPR, analisi metodi registrazione, rilevamento metodo di backup, classificazione metodi forti, correlazione MFA e valutazione del rischio |
| EntraPasswordPolicyCheck-PS1.md | Documentazione del controllo di sicurezza criteri password che include analisi scadenza password, rilevamento mai scadute, verifica requisiti complessità, identificazione criteri deboli, tracciamento età password e valutazione del rischio |
| EntraLegacyAuthCheck-PS1.md | Documentazione del controllo autenticazione legacy che include rilevamento protocolli legacy, analisi log accessi, tracciamento ultimo utilizzo, statistiche protocolli, correlazione MFA e valutazione del rischio |
| EntraLicenseCheck-PS1.md | Documentazione dell'analisi licenze e SKU che include enumerazione SKU tenant, tracciamento assegnazione licenze utente, rilevamento licenze privilegiate, identificazione licenze inutilizzate e valutazione del rischio |
| EntraAdminUnitCheck-PS1.md | Documentazione del controllo di sicurezza unità amministrative che include enumerazione AU, analisi assegnazioni ruoli con ambito, enumerazione membri, rilevamento stato MFA, valutazione del rischio e analisi accessi amministrativi con ambito |
| EntraDirectorySyncCheck-PS1.md | Documentazione del controllo stato sincronizzazione directory che include analisi stato sincronizzazione, rilevamento errori sincronizzazione, rilevamento sincronizzazione inattiva, identificazione conflitti sincronizzazione, analisi ambito sincronizzazione e valutazione del rischio |
| EntraPowerPlatformCheck-PS1.md | Documentazione dell'enumerazione Power Platform che include enumerazione Power Apps, enumerazione flussi Power Automate, rilevamento connettori sensibili, identificazione azioni ad alto rischio, analisi connettori e valutazione del rischio |
| EntraGroupCheck-PS1.md | Documentazione dell'analisi di sicurezza gruppi che include enumerazione gruppi, analisi proprietari con stato MFA, rilevamento senza proprietario, rilevamento appartenenza eccessiva, rilevamento gruppi assegnabili a ruoli e valutazione del rischio |
| EntraApplicationCheck-PS1.md | Documentazione del controllo di sicurezza registrazioni applicazioni che include enumerazione applicazioni, analisi credenziali, tracciamento scadenze, analisi permessi API, valutazione sicurezza proprietario e valutazione del rischio |
| EntraAttackPathCheck-PS1.md | Documentazione dell'analisi percorsi di attacco che include percorsi escalation privilegi, deleghe reimpostazione password, appartenenze gruppi transitive, accesso cassette postali condivise, valutazione del rischio e analisi complessità percorsi |
| EntraAzureRBACCheck-PS1.md | Documentazione dell'audit assegnazioni ruoli RBAC Azure e rilevamento derive che include esportazione baseline, rilevamento derive, supporto multi-sottoscrizione, supporto multi-tenant, salta tenant con errori, espansione membri gruppo, matrice permessi tutti gli utenti, esclusione PIM/JIT, rilevamento discrepanze condizioni ABAC, istruzioni di correzione (Terraform/CLI/PowerShell), tracciamento assegnazioni ruoli, rilevamento modifiche non autorizzate e valutazione del rischio |
| EntraOAuthConsentCheck-PS1.md | Documentazione dell'audit concessioni consenso OAuth che include enumerazione OAuth2PermissionGrant, rilevamento consenso amministratore vs utente, identificazione permessi pericolosi, rilevamento consensi inattivi, analisi app di terze parti, correlazione attività di accesso e valutazione del rischio per rilevamento concessioni consenso illecite |
| EntraSignInRiskCheck-PS1.md | Documentazione dell'analisi protezione identità che include enumerazione utenti a rischio, tracciamento livello/stato rischio, analisi rilevamento rischi, rilevamento viaggio impossibile, rilevamento IP anonimi, rilevamento password spray, rilevamento credenziali compromesse, analisi pattern, analisi temporale e guida alla correzione |
| EntraPIMCheck-PS1.md | Documentazione dell'audit configurazione Privileged Identity Management (PIM) che include lacune configurazione accesso JIT, analisi flusso di lavoro approvazione, applicazione MFA, requisiti giustificazione, configurazione notifiche, rilevamento assegnazioni permanenti, PIM per gruppi, revisioni accesso e valutazione del rischio |
| EntraKeyVaultCheck-PS1.md | Documentazione dell'audit di sicurezza Azure Key Vault che include analisi modello accesso (RBAC vs criteri accesso), stato eliminazione soft e protezione eliminazione, audit sicurezza rete (accesso pubblico, firewall, VNet), rilevamento endpoint privato, rilevamento accesso eccessivamente permissivo, verifica registrazione diagnostica, tracciamento scadenza segreti/certificati/chiavi e valutazione del rischio |
| EntraStorageAccountCheck-PS1.md | Documentazione dell'audit di sicurezza account di archiviazione Azure che include rilevamento contenitori BLOB pubblici, verifica applicazione HTTPS, analisi accesso chiave condivisa, audit sicurezza rete (accesso pubblico, firewall, VNet, endpoint privati), analisi protezione dati (eliminazione soft, versioning), tracciamento rotazione chiavi, rilevamento replica cross-tenant, verifica versione TLS, controllo crittografia infrastruttura, verifica registrazione diagnostica e valutazione del rischio |
| EntraNetworkSecurityCheck-PS1.md | Documentazione dell'audit di sicurezza rete Azure che include analisi regole NSG, rilevamento regole eccessivamente permissive (0.0.0.0/0, Any-Any), rilevamento porte di gestione aperte (RDP, SSH, WinRM), analisi utilizzo Azure Bastion, stato protezione DDoS, sicurezza peering VNet, copertura NSG subnet, configurazione log flusso NSG, analisi gateway VPN/ExpressRoute, stato analisi traffico e valutazione del rischio |
| EntraManagedIdentityCheck-PS1.md | Documentazione dell'audit di sicurezza identità gestite Azure che include inventario identità assegnate dal sistema vs assegnate dall'utente, analisi assegnazioni ruoli, rilevamento identità ad alto privilegio (Proprietario, Collaboratore, UAA), rilevamento ruoli critici, rilevamento accesso cross-sottoscrizione, identificazione identità inutilizzate, copertura risorse (VM, Servizi App, App per funzioni), analisi ambito e valutazione del rischio |
| EntraExchangeCheck-PS1.md | Documentazione dell'audit di sicurezza Exchange Online che include analisi regole posta in arrivo, rilevamento inoltro esterno, audit regole trasporto, analisi deleghe cassette postali, stato registrazione audit, analisi criteri OWA, regole accesso client, rilevamento indicatori BEC, rilevamento regole sospette e valutazione del rischio |
| EntraSharePointCheck-PS1.md | Documentazione dell'audit di sicurezza SharePoint Online che include impostazioni condivisione tenant, rilevamento link anonimi, rilevamento override a livello di sito, analisi accesso guest, configurazione condivisione OneDrive, copertura etichette sensibilità, analisi link predefiniti, criteri scadenza link e valutazione del rischio |
| EntraTeamsCheck-PS1.md | Documentazione dell'audit di sicurezza Microsoft Teams che include impostazioni accesso esterno (federazione), criteri accesso guest, analisi criteri riunione (partecipazione anonima, bypass lobby), criteri permessi app, criteri messaggistica, analisi inventario Teams e valutazione del rischio |
| EntraAzureAttackPathCheck-PS1.md | Documentazione dell'analisi percorsi di attacco cross-servizio Azure che include percorsi da VM a Key Vault, escalation privilegi identità gestita, movimento laterale storage, vulnerabilità ruoli personalizzati, percorsi cross-sottoscrizione, ereditarietà gruppi di gestione, narrazioni attacco e valutazione del rischio |
| EntraReport-PS1.md | Documentazione del generatore di report di sicurezza consolidato che include esecuzione multi-controllo, dashboard esecutivo HTML, calcolo punteggio sicurezza, matrice priorità correzione, analisi tendenze con confronto baseline, modalità scansione rapida e completa ed esportazione baseline JSON |
| EntraComplianceCheck-PS1.md | Documentazione della valutazione conformità che include mappatura CIS Azure Benchmark, mappatura controlli NIST 800-53, criteri servizio fiduciario SOC 2, controlli ISO 27001, indicatori GDPR, punteggio conformità, filtraggio famiglie controlli e reporting esecutivo |
| SharePointEnum-PS1.md | Documentazione dell'enumerazione SharePoint Online che include ricerca API REST, query FQL, filtri di raffinamento, download file (disco e Base64), rilevamento automatico, fallback smart auth (validazione token sessione, fallback Azure CLI, flusso codice dispositivo MSAL), modalità stealth e opzioni di esportazione |
| Funzionalità | PowerShell | Python |
|---|
| Enumerazione utenti (15+ metodi) | ✅ | ✅ |
| Valutazione della sicurezza | ✅ | ✅ |
| Superficie di attacco credenziali | ✅ | ✅ |
| Analisi accesso condizionato | ✅ | ✅ |
| Enumerazione dispositivi/Intune | ✅ | ✅ |
| Analisi percorsi di attacco | ✅ | ✅ |
| Enumerazione Power Platform | ✅ | ✅ |
| Analisi movimento laterale | ✅ | ✅ |
| Esportazione BloodHound | ✅ | ✅ |
| Generazione report HTML | ✅ | ✅ |
| Modalità stealth | ✅ | ✅ |
| Menu interattivo | ✅ | ✅ |
| Token Azure CLI | ✅ | ✅ |
| Flusso codice dispositivo | ✅ | ✅ |
| Scambio token di aggiornamento | ❌ | ✅ |
| Database ID app esteso | ❌ | ✅ |
| Preimpostazioni stealth | ❌ | ✅ |
| Parametro | Metodo | Descrizione |
|---|
| (predefinito) | Interattivo | Connect-MgGraph con richiesta OAuth interattiva nel browser |
-UseAzCliToken | Token Interfaccia Riga di Comando Azure | Utilizza az account get-access-token --resource https://graph.microsoft.com |
-UseAzPowerShellToken | Token PowerShell di Azure | Utilizza Get-AzAccessToken -ResourceUrl "https://graph.microsoft.com" |
| Parametro | Metodo | Descrizione |
|---|
| (predefinito) | Interattivo | Connect-AzAccount con richiesta interattiva nel browser |
-UseAzCliToken | Token Interfaccia Riga di Comando Azure | Utilizza una sessione az login esistente |
-UseAzPowerShellToken | Token PowerShell di Azure | Utilizza una sessione Connect-AzAccount esistente |
-UseDeviceCode | Flusso Codice Dispositivo | Connect-AzAccount -UseDeviceAuthentication per terminali headless |
| Script | Modulo | Autenticazione |
|---|
| EntraExchangeCheck | ExchangeOnlineManagement | Connect-ExchangeOnline (richiede il ruolo di Amministratore Exchange) |
| EntraSharePointCheck | Microsoft.Online.SharePoint.PowerShell | Connect-SPOService all'URL di Amministrazione SharePoint (richiede il ruolo di Amministratore SharePoint) |
| SharePointEnum | Az.Accounts (opzionale) | Fallback intelligente: token sessione Azure → Interfaccia riga di comando Azure → flusso codice dispositivo MSAL (ID client Microsoft Office) |
| EntraTeamsCheck | MicrosoftTeams | Connect-MicrosoftTeams (richiede il ruolo di Amministratore Teams) |
| Script | Ambiti Richiesti | Ambiti di Fallback |
|---|
| 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 | (Permessi API Power Platform tramite contesto utente) |
| 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 |
| Script | Permessi Azure RBAC | Ambiti Graph Aggiuntivi |
|---|
| Invoke-EntraAzureRBACCheck | Ruolo Lettore nelle sottoscrizioni target | User.Read, Directory.Read.All, GroupMember.Read.All |
| Invoke-EntraKeyVaultCheck | Lettore sulle sottoscrizioni, Lettore Key Vault per enumerazione dei segreti | - |
| Invoke-EntraStorageAccountCheck | Lettore sulle sottoscrizioni, Lettore Dati BLOB di Archiviazione per enumerazione dei contenitori | - |
| Invoke-EntraManagedIdentityCheck | Lettore sulle sottoscrizioni | Directory.Read.All per query Graph |
| Invoke-EntraNetworkSecurityCheck | Lettore sulle sottoscrizioni per enumerazione NSG/VNet | - |
| Invoke-EntraAzureAttackPathCheck | Lettore sulle sottoscrizioni, Lettore Key Vault per enumerazione delle policy di accesso | - |
| Script | Modulo | Ruoli/Permessi Richiesti |
|---|
| Invoke-EntraExchangeCheck | ExchangeOnlineManagement | Amministratore Exchange o equivalente. Richiesto per: Get-InboxRule, Get-TransportRule, Get-MailboxPermission, Get-Mailbox |
| Invoke-EntraSharePointCheck | Microsoft.Online.SharePoint.PowerShell | Amministratore SharePoint o equivalente. Richiesto per: Get-SPOTenant, Get-SPOSite, cmdlet di configurazione condivisione |
| Invoke-SharePointEnum | Az.Accounts (opzionale) | Qualsiasi utente con accesso a SharePoint. Utilizza l'API REST di ricerca di SharePoint con autorizzazioni delegate tramite sessione Azure, Interfaccia riga di comando Azure o flusso codice dispositivo MSAL |
| Invoke-EntraTeamsCheck | MicrosoftTeams | Amministratore Teams o equivalente. Richiesto per: Get-CsTenantFederationConfiguration, Get-CsTeamsMeetingPolicy, Get-CsTeamsClientConfiguration, Get-Team |
| Ambito | Script che lo Utilizzano | Scopo |
|---|
Directory.Read.All | 21+ script | Leggere oggetti della directory (utenti, gruppi, ruoli, impostazioni) |
User.Read.All | 19+ script | Leggere tutte le proprietà degli utenti, inclusa l'attività di accesso |
AuditLog.Read.All | 16+ script | Leggere log di accesso, log di controllo, report attività |
UserAuthenticationMethod.Read.All | 13+ script | Verificare la registrazione MFA e i metodi di autenticazione |
Application.Read.All | 7 script | Leggere registrazioni di app e entità servizio |
Group.Read.All | 4 script | Leggere appartenenze e proprietà dei gruppi |
RoleManagement.Read.Directory | 5 script | Leggere assegnazioni di ruolo della directory e configurazione PIM |
Policy.Read.All | 3 script | Leggere policy di Accesso Condizionale e impostazioni di sicurezza predefinite |
Device.Read.All | 1 script | Leggere registrazioni di dispositivi |
AdministrativeUnit.Read.All | 1 script | Leggere Unità Amministrative |
PrivilegedAccess.Read.AzureAD | 1 script | Leggere impostazioni e assegnazioni del ruolo PIM |
IdentityRiskyUser.Read.All | 2 script | Leggere utenti a rischio di Identity Protection |
IdentityRiskySignIn.Read.All | 1 script | Leggere accessi a rischio di Identity Protection |
IdentityRiskEvent.Read.All | 2 script | Leggere eventi e rilevamenti di rischio di Identity Protection |
Reports.Read.All | 1 script | Leggere report di utilizzo (SSPR) |
DeviceManagementManagedDevices.Read.All | 1 script | Leggere dispositivi gestiti da Intune |
DeviceManagementConfiguration.Read.All | 1 script | Leggere policy di conformità di Intune |