
Uno strumento PowerShell leggero per valutare la postura di sicurezza degli ambienti Microsoft Entra ID. Aiuta a identificare oggetti privilegiati, assegnazioni rischiose e potenziali errori di configurazione.

EntraFalcon è uno strumento di assessment basato su PowerShell per pentester, analisti di sicurezza e amministratori di sistema per valutare la postura di sicurezza di un ambiente Microsoft Entra ID.
Progettato per essere facile da usare, EntraFalcon funziona su PowerShell 5.1 e 7, supporta sia Windows che Linux e non richiede moduli PowerShell aggiuntivi, installazioni extra o consenso all'API Microsoft Graph.
Lo strumento aiuta a scoprire oggetti privilegiati, assegnazioni potenzialmente rischiose e misconfigurazioni di Conditional Access che spesso vengono trascurate, come:
I risultati sono presentati in report HTML interattivi per supportare un'esplorazione e un'analisi efficienti.
| Tipo | Permesso | Obbligatorio | Impatto se mancante |
|---|---|---|---|
| Ruolo Entra ID | Global Reader | Sì | Impossibile eseguire gli script |
| Ruolo Azure | Reader: su ogni Management Group o Subscription | No | Non è possibile valutare le assegnazioni Azure IAM |
Inoltre, è necessario essere in grado di autenticarsi all'API Microsoft Graph e opzionalmente all'API Azure ARM dal dispositivo su cui si esegue lo strumento. Assicurarsi che le Conditional Access Policies non blocchino l'autenticazione.
Per iniziare, clonare il repository e navigare nella directory del progetto:```powershell git clone https://github.com/CompassSecurity/EntraFalcon cd EntraFalcon
Nota: potrebbe essere necessario modificare temporaneamente i criteri di esecuzione di PowerShell per eseguire lo script.
Fallo solo per script attendibili!```
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
EntraFalcon include il supporto integrato per l'autenticazione a Entra ID. Usa -AuthFlow per selezionare il flusso di autenticazione.
Per le valutazioni normali, usa uno dei flussi a copertura completa:
| Flusso consigliato | Ideale per | Piattaforma | Copertura |
|---|---|---|---|
BroCi (predefinito) | Esecuzioni interattive su Windows | Windows | Completa |
BroCiManualCode | Autenticazione in un altro browser | Windows, Linux, macOS | Completa |
BroCiToken | Token di aggiornamento esistente del portale Azure | Windows, Linux, macOS | Completa |
ServicePrincipal | Automazione / CI | Windows, Linux, macOS | Completa |
BroCi utilizza un accesso interattivo. BroCiToken e ServicePrincipal non ne utilizzano nessuno. I flussi utente di fallback possono richiedere più accessi interattivi perché vengono richiesti token per risorse separate.
A causa della mancanza di applicazioni first-party pre-autorizzate, i flussi di fallback non possono eseguire l'enumerazione completa (PIM for Groups, Access Packages, Catalogs). Pertanto, attualmente rimangono solo opzioni di fallback.
| Flusso | Usare solo quando | Piattaforma | Limitazioni |
|---|---|---|---|
AuthCode | È richiesta la compatibilità legacy | Windows | Copertura parziale. Nessun report autonomo per PIM for Groups, Access Packages o Catalogs. |
DeviceCode | L'autenticazione basata su browser non è possibile | Windows, Linux, macOS | Copertura parziale. Nessun report autonomo per PIM for Groups, Access Packages o Catalogs. Alcuni controlli dei Security Findings vengono eseguiti con profondità ridotta. |
ManualCode | L'autenticazione deve essere completata tramite una sessione browser separata | Windows, Linux, macOS | Copertura parziale. Nessun report autonomo per PIM for Groups, Access Packages o Catalogs. |
BroCi utilizza applicazioni first-party alternative e richiede un solo accesso interattivo.
È utile quando il client Azure Active Directory PowerShell richiede un'assegnazione e deve essere evitato.```powershell
.\run_EntraFalcon.ps1
Selezione esplicita di BroCi:```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCi
.\run_EntraFalcon.ps1 -AuthFlow BroCiManualCode
1. Lo script copia l'URL di autenticazione negli appunti.
2. Incolla l'URL in un browser (opzionalmente su un altro dispositivo per il supporto SSO).
3. Apri gli strumenti per sviluppatori del browser e, nella scheda Network, abilita `Preserve log`.
4. Completa l'autenticazione.
5. Cerca nel log di rete `code=1.` e copia negli appunti l'URL della richiesta contenente il code.
6. Premi Invio per continuare; lo script legge il code dagli appunti e completa l'acquisizione del token.
#### Consigliato: BroCi con Token
Se è già disponibile un refresh token valido di Azure Portal (client c44b4083-3bb0-49c1-b47d-974e53cbdf3c), può essere utilizzato direttamente.
Esempio: Ottenere il refresh token dal browser
1. Apri gli strumenti per sviluppatori del browser e, nella scheda Network, abilita Preserve log.
2. Autenticati su https://entra.microsoft.com.
3. Cerca nel log di rete `brk_client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c` ed estrai il refresh token dalla risposta.```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiToken -BroCiToken "1.XXXXXXXXXXX"
Esegue l'autenticazione come applicazione registrata utilizzando il grant delle credenziali client OAuth2 — non è richiesta l'interazione dell'utente.
Utile per esecuzioni automatizzate ripetute.
Richiede una registrazione personalizzata dell'app Entra con autorizzazioni API Graph di tipo Application (vedi sotto).