
Una herramienta ligera de PowerShell para evaluar la postura de seguridad de entornos de Microsoft Entra ID. Ayuda a identificar objetos privilegiados, asignaciones arriesgadas y posibles configuraciones incorrectas.

EntraFalcon es una herramienta de evaluación basada en PowerShell para pentesters, analistas de seguridad y administradores de sistemas que permite evaluar la postura de seguridad de un entorno de Microsoft Entra ID.
Diseñada para ser fácil de usar, EntraFalcon se ejecuta en PowerShell 5.1 y 7, es compatible tanto con Windows como con Linux, y no requiere módulos adicionales de PowerShell, instalaciones extra ni consentimiento de la API de Microsoft Graph.
La herramienta ayuda a descubrir objetos privilegiados, asignaciones potencialmente riesgosas y configuraciones incorrectas de Acceso Condicional que a menudo pasan desapercibidas, tales como:
Los hallazgos se presentan en informes HTML interactivos para facilitar una exploración y análisis eficientes.
| Tipo | Permiso | Obligatorio | Impacto si falta |
|---|---|---|---|
| Rol de Entra ID | Lector Global | Sí | No es posible ejecutar los scripts |
| Rol de Azure | Lector: En cada Grupo de Administración o Suscripción | No | No se pueden evaluar las asignaciones de Azure IAM |
Además, debe poder autenticarse en la API de Microsoft Graph y, opcionalmente, en la API de Azure ARM desde el dispositivo donde ejecuta la herramienta. Asegúrese de que las Políticas de Acceso Condicional no bloqueen su autenticación.
Para comenzar, clone el repositorio y navegue hasta el directorio del proyecto:```powershell git clone https://github.com/CompassSecurity/EntraFalcon cd EntraFalcon
Nota: Es posible que necesites cambiar temporalmente la política de ejecución de PowerShell para ejecutar el script.
¡Hazlo solo para scripts de confianza!```
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
EntraFalcon incluye soporte integrado para la autenticación de Entra ID. Use -AuthFlow para seleccionar el flujo de autenticación.
Para evaluaciones normales, use uno de los flujos de cobertura completa:
| Flujo recomendado | Ideal para | Plataforma | Cobertura |
|---|---|---|---|
BroCi (predeterminado) | Ejecuciones interactivas en Windows | Windows | Completa |
BroCiManualCode | Autenticación en otro navegador | Windows, Linux, macOS | Completa |
BroCiToken | Token de actualización existente de Azure Portal | Windows, Linux, macOS | Completa |
ServicePrincipal | Automatización / CI | Windows, Linux, macOS | Completa |
BroCi usa un inicio de sesión interactivo. BroCiToken y ServicePrincipal no usan ninguno. Los flujos de usuario de respaldo pueden requerir múltiples inicios de sesión interactivos porque se solicitan tokens de recursos separados.
Debido a la falta de aplicaciones propias con consentimiento previo, los flujos de respaldo no pueden realizar la enumeración completa (PIM for Groups, Access Packages, Catalogs). Por lo tanto, actualmente siguen siendo solo opciones de respaldo.
| Flujo | Usar solo cuando | Plataforma | Limitaciones |
|---|---|---|---|
AuthCode | Se requiere compatibilidad heredada | Windows | Cobertura parcial. Sin informe independiente de PIM for Groups, Access Packages o Catalogs. |
DeviceCode | La autenticación basada en navegador no es posible | Windows, Linux, macOS | Cobertura parcial. Sin informe independiente de PIM for Groups, Access Packages o Catalogs. Algunas comprobaciones de Security Findings se ejecutan con profundidad reducida. |
ManualCode | La autenticación debe completarse mediante una sesión de navegador separada | Windows, Linux, macOS | Cobertura parcial. Sin informe independiente de PIM for Groups, Access Packages o Catalogs. |
BroCi usa aplicaciones propias alternativas y requiere solo un inicio de sesión interactivo.
Es útil cuando el cliente Azure Active Directory PowerShell requiere asignación y debe evitarse.```powershell
.\run_EntraFalcon.ps1
Selección explícita de BroCi:```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCi
.\run_EntraFalcon.ps1 -AuthFlow BroCiManualCode
1. El script copia la URL de autenticación al portapapeles.
2. Pegue la URL en un navegador (opcionalmente en otro dispositivo para compatibilidad con SSO).
3. Abra las herramientas de desarrollador del navegador y, en la pestaña Network, habilite `Preserve log`.
4. Complete la autenticación.
5. Busque en el registro de red `code=1.` y copie la URL de la solicitud que contiene el código al portapapeles.
6. Pulse Enter para continuar; el script lee el código del portapapeles y completa la adquisición del token.