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, diseñada para evaluar la postura de seguridad de un entorno de Microsoft Entra ID.
Pensada para ser fácil de usar, EntraFalcon funciona con 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 Microsoft Graph API.
La herramienta ayuda a descubrir objetos privilegiados, asignaciones potencialmente riesgosas y configuraciones incorrectas de Conditional Access que a menudo se pasan por alto, como:
Usuarios con control sobre grupos o aplicaciones de alto privilegio
Aplicaciones empresariales externas o internas con permisos excesivos (por ejemplo, Microsoft Graph API, roles de Azure)
Usuarios con asignaciones de roles de Azure IAM directamente sobre recursos
Cuentas privilegiadas sincronizadas desde on-premises
Usuarios inactivos o usuarios sin capacidad de MFA
Grupos desprotegidos utilizados en asignaciones sensibles (por ejemplo, exclusiones de Conditional Access, Subscription Owner o miembros elegibles de un grupo privilegiado)
Los hallazgos se presentan en informes HTML interactivos para facilitar una exploración y análisis eficientes.
🚀 Características
Script de PowerShell simple compatible con PowerShell 5.1 y 7. Funciona en Windows y Linux
Autenticación integrada que admite múltiples métodos
Utiliza aplicaciones de Microsoft de primera parte con ámbitos pre-consentidos para evitar las solicitudes de consentimiento de Graph API
Genera informes HTML navegables que admiten filtrado, ordenación, exportación de datos, etc.
Realiza más de 90 comprobaciones automatizadas y resume los resultados en un Informe de Hallazgos de Seguridad
Incluye comprobaciones de configuraciones débiles del tenant y propiedades o permisos de objetos riesgosos
Proporciona clasificaciones de severidad, así como descripciones del problema, amenazas potenciales y orientación de remediación
Enumera los objetos afectados y enlaza directamente a sus informes detallados para una investigación adicional
Realiza una puntuación básica de impacto, probabilidad y riesgo para resaltar objetos de alto privilegio débilmente protegidos y ordenar los datos.
Muestra advertencias para configuraciones riesgosas y privilegios elevados
Enumera objetos de Entra ID, incluyendo:
Usuarios (incluidos Agent Users)
Grupos
Aplicaciones empresariales
Registros de aplicaciones
Identidades administradas
Identidades de agentes
Principales de blueprint de identidades de agentes
Blueprints de identidades de agentes
Asignaciones de PIM:
PIM para Entra Roles
PIM para Grupos
PIM para Azure Roles
Asignaciones de Entra Role
Asignaciones de Azure Role
Asignaciones de RBAC de Intune
Paquetes de acceso
Catálogos de Entitlement Management
RBAC de catálogo
Políticas de Conditional Access
Unidades administrativas
Configuraciones de PIM:
PIM para Entra Roles
PIM para Grupos (solo autenticación BroCi)
✅ Requisitos
Tipo
Permiso
Obligatorio
Impacto si falta
Entra ID Role
Global Reader
Sí
No es posible ejecutar los scripts
Azure Role
Reader: En cada Management Group o Subscription
No
No se pueden evaluar las asignaciones de Azure IAM
Además, debes poder autenticarte en Microsoft Graph API y, opcionalmente, en la API de Azure ARM desde el dispositivo donde ejecutas la herramienta.
Asegúrate de que las políticas de Conditional Access no bloqueen tu autenticación.
Nota: Es posible que necesites cambiar temporalmente la política de ejecución de PowerShell para ejecutar el script.
¡Hazlo solo con scripts de confianza!```
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
Ejecutar EntraFalcon
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
Mejor 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 único inicio de sesión interactivo. BroCiToken y ServicePrincipal no usan ninguno. Los flujos de usuario alternativos pueden requerir varios inicios de sesión interactivos porque se solicitan tokens de recursos separados.
Flujos de autenticación alternativos
Debido a la falta de aplicaciones de primera parte con consentimiento previo, los flujos alternativos no pueden realizar la enumeración completa (PIM for Groups, Access Packages, Catalogs). Por lo tanto, actualmente siguen siendo solo opciones alternativas.
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 menor profundidad.
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.
Recomendado: Flujo BroCi (predeterminado / solo Windows)
BroCi usa aplicaciones de primera parte 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
root@kitploit:~
Selección explícita de BroCi:```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCi
Recomendado: BroCi + Flujo de Código Manual```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiManualCode
root@kitploit:~
1. El script copia la URL de autenticación al portapapeles.
2. Pega la URL en un navegador (opcionalmente en otro dispositivo para soporte SSO).
3. Abre las herramientas de desarrollador del navegador y, en la pestaña Red, habilita `Preserve log`.
4. Completa la autenticación.
5. Busca en el registro de red `code=1.` y copia la URL de la solicitud que contiene el código al portapapeles.
6. Presiona Enter para continuar; el script lee el código del portapapeles y completa la obtención del token.
#### Recomendado: BroCi con Token
Si ya se dispone de un token de actualización válido de Azure Portal (cliente c44b4083-3bb0-49c1-b47d-974e53cbdf3c), se puede usar directamente.
Ejemplo: Obtención del token de actualización desde el navegador
1. Abre las herramientas de desarrollador del navegador y, en la pestaña Red, habilita Preserve log.
2. Autentícate en https://entra.microsoft.com.
3. Busca en el registro de red `brk_client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c` y extrae el token de actualización de la respuesta.```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiToken -BroCiToken "1.XXXXXXXXXXX"
Recomendado: Service Principal
Autentica como una aplicación registrada mediante la concesión de credenciales de cliente OAuth2 — no se requiere interacción del usuario.
Útil para ejecuciones automatizadas repetidas.
Requiere un registro de aplicación personalizado en Entra con permisos de Graph API de tipo Application (ver más abajo).
Con secreto de cliente:```powershell
.\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "" -SPClientSecret ""
Para una clave privada cifrada, añade `-SPPrivateKeyPemPassword (Read-Host -Prompt "Private key password" -AsSecureString)`.
##### Permisos requeridos del registro de la aplicación
Concede los siguientes permisos de **Aplicación** (no Delegados) en el registro de la aplicación y admin-consiente:
| Permiso | Tipo |
|---|---|
| `AdministrativeUnit.Read.All` | Application |
| `AgentIdentity.Read.All` | Application |
| `AgentIdentityBlueprint.Read.All` | Application |
| `AgentIdentityBlueprintPrincipal.Read.All` | Application |
| `Application.Read.All` | Application |
| `AuditLog.Read.All` | Application |
| `Device.Read.All` | Application |
| `EntitlementManagement.Read.All` | Application |
| `Group.Read.All` | Application |
| `Organization.Read.All` | Application |
| `Policy.Read.All` | Application |
| `PrivilegedAccess.Read.AzureADGroup` | Application |
| `RoleManagement.Read.Directory` | Application |
| `RoleManagementPolicy.Read.AzureADGroup` | Application |
| `User.Read.All` | Application |
| `DeviceManagementRBAC.Read.All` | Application |
Además, asigna el rol **Azure Reader** en el grupo de administración raíz (o en cada suscripción relevante) y, opcionalmente, el rol **Global Reader** a la entidad de servicio en Entra ID (requerido para el estado MFA por usuario).
#### Alternativa: Flujo de código de autorización (solo Windows)```powershell
.\run_EntraFalcon.ps1 -AuthFlow AuthCode
Fallback: Flujo de Código de Dispositivo
A menudo está restringido por el Acceso Condicional en entornos endurecidos.
Con DeviceCode, dos comprobaciones de Hallazgos de Seguridad se ejecutan con profundidad reducida (CAP-004 y CAP-005).```powershell
.\run_EntraFalcon.ps1 -AuthFlow DeviceCode
root@kitploit:~
#### Fallback: flujo de código de autenticación + código manual```powershell
.\run_EntraFalcon.ps1 -AuthFlow ManualCode
El script copia la URL de autenticación al portapapeles.
Pega la URL en un navegador (opcionalmente en otro dispositivo para soporte SSO).
Completa la autenticación.
Copia la URL de redirección final desde la barra de direcciones del navegador (que contiene el código de autorización) al portapapeles.
Presiona Enter para continuar; el script lee el código desde el portapapeles y completa la obtención del token.
Otros Parámetros
Incluir Aplicaciones Empresariales de Microsoft
De forma predeterminada, las aplicaciones empresariales oficiales de Microsoft se excluyen de la evaluación para reducir el ruido. Para incluirlas en la enumeración y el análisis, usa el modificador -IncludeMsApps:```powershell
.\run_EntraFalcon.ps1 -IncludeMsApps
root@kitploit:~
#### Omitir evaluación de PIM para Grupos
Use el modificador `-SkipPimForGroups` para omitir la recopilación previa y el enriquecimiento de PIM para Grupos.
Esto también omite el informe independiente de configuración de `PIM para Grupos`.```powershell
.\run_EntraFalcon.ps1 -SkipPimForGroups
Otros Parámetros Opcionales
Parámetro
Descripción
Valor Predeterminado
UserAgent
Agente de usuario utilizado para las solicitudes al endpoint de token y las llamadas a la API.
EntraFalcon
DisableCAE
Desactiva la solicitud de tokens de Evaluación de Acceso Continuo (CAE).
false
Tenant
Especifica el inquilino (ID o dominio) contra el que autenticarse. Útil al evaluar un inquilino distinto del inquilino principal de la cuenta.
Inquilino principal de la cuenta
OutputFolder
Carpeta de salida donde se almacenan los informes.
Results_%TenantName%_YYYYMMDD_HHMM
LimitResults
Limita el número de grupos y usuarios en el informe (después de ordenar por riesgo). Útil para inquilinos grandes.
-
LogLevel
Controla el nivel de detalle del registro CLI en tiempo de ejecución. Valores admitidos: Off (predeterminado), Verbose, Debug, Trace.
Off
ApiTop
Establece el número máximo de objetos devueltos por la API. Valores más bajos reducen el riesgo de tiempo de espera (HTTP 504), pero aumentan el número de solicitudes.
999 (Rango válido: 5–999)
AuthFlow
Selector de flujo de autenticación preferido. Valores: BroCi (predeterminado), AuthCode, DeviceCode, ManualCode, BroCiManualCode, BroCiToken, ServicePrincipal.
BroCi
BroCiToken
Token de actualización del Portal de Azure para AuthFlow BroCiToken.
-
SPClientId
ID de aplicación (cliente) de la entidad de servicio. Requerido para -AuthFlow ServicePrincipal.
-
SPClientSecret
Secreto de cliente para la entidad de servicio. Se usa con .
📊 Algunos Ejemplos de Informes
Informe de Hallazgos de Seguridad
Usuarios
Usuarios (Sección de Detalles)
Roles de Entra ID
Roles de Azure
Aplicación Empresarial (Sección de Detalles)
Políticas de Acceso Condicional
Políticas de Acceso Condicional (Sección de Detalles)
Configuración de Roles de PIM (Entra)
Identidades de Agente
Resumen de Enumeración
📑 Informe HTML
General
Haga clic en el botón ⚙️ Columnas para mostrar u ocultar columnas específicas.
Haga clic en 💾 Exportar para descargar CSV/JSON o copiar CSV/TSV/JSON de los datos actualmente visibles.
Haga clic en 👁 Compartir Vista para copiar filtros, ordenación y selección de columnas como un enlace compartible.
Haga clic en 🧰 Vistas Predefinidas para aplicar filtros y selecciones de columnas preconfigurados.
Haga clic en 🔄 Restablecer Vista para restablecer la vista a la predeterminada.
Haga clic en los nombres de los objetos para saltar a la información detallada, incluso en otros informes.
Al usar la navegación interna, presione el botón de retroceso del navegador para volver.
Algunos encabezados de campos de tabla muestran texto de ayuda al pasar el mouse.
Ordene los datos haciendo clic en un encabezado de tabla.
Alt+clic en un encabezado de columna principal de la tabla para ocultar rápidamente esa columna.
Alt+clic en una fila de contenido de la tabla principal para ocultarla temporalmente. Use el chip de filas ocultas o Restablecer Vista para mostrar las filas ocultas nuevamente.
Filtrado
Si no se especifica un operador, el filtrado se establece por defecto en contiene.
Use = para una coincidencia exacta.
Use ^ para comienza con (p. ej., ^Mallory).
Use $ para termina con (p. ej., $domain.ch).
Se admiten operadores de comparación como >, <, >=, <= (solo valores numéricos).
Los filtros se pueden negar comenzando con ! (excepto para comparaciones numéricas). Ejemplos: !Mallory, !=Mallory, !^Mallory o !$domain.ch.
Use =empty para coincidir con celdas vacías, o !=empty para coincidir con celdas no vacías.
Use || para coincidir con cualquiera de varios valores en la misma columna (p. ej., Admin || Guest).
Use && para requerir múltiples coincidencias en la misma columna (p. ej., !adm && !svc && !sql).
Para aplicar lógica OR entre columnas, use or_, group1_, group2_... directamente en un campo de filtro. Ejemplos: en la columna 1: or_>1, en la columna 2: or_!Mallory
Nota: La columna DisplayName también incluye el ID del objeto (invisible), por lo que también es posible filtrar por ID.
Controles mediante Parámetros GET
Filtrado: Aplique filtros usando los nombres de los campos como parámetros HTTP GET, p. ej., ?EntraRoles=>1&Enabled=true.
Para aplicar lógica OR entre columnas, use el prefijo or_ o group1_ (p. ej., ?or_EntraRoles=>0&or_GrpMem=>0).
Selección de Columnas: Elija qué columnas mostrar usando el parámetro columns. Ejemplo: ?columns=DisplayName,Owner.
Ordenación: Ordene los datos usando los parámetros sort y sortDir. Ejemplo: ?sort=Impact&sortDir=desc o ?sort=OwnerCount&sortDir=asc.
Detalles del Objeto: Salte directamente a un objeto específico en el informe usando un ancla (#) y el ID del objeto, p. ej., #%ObjectID%.
Clasificación
Impacto: Representa la cantidad o severidad de los permisos que tiene el objeto.
Probabilidad: Representa qué tan fácilmente puede ser influenciado el objeto o qué tan bien está protegido.
Esta puntuación está pensada como una evaluación básica para ayudar a ordenar y priorizar las entradas en la tabla.
Los puntajes de riesgo no son directamente comparables entre diferentes tipos de objetos o informes.
No está destinada a reemplazar una evaluación de riesgo completa.
🔧Bajo el Capó
Categorización de Roles
Los roles de Entra ID y Azure se categorizan aproximadamente en diferentes niveles de nivel. Esta categorización influye en los puntajes de impacto de los objetos asignados a esos roles.
El objetivo es asignar un puntaje de impacto más alto a los usuarios con roles más potentes (p. ej., Administrador Global) en comparación con los usuarios con roles menos críticos (p. ej., Lector Global), incluso si ambos son considerados roles privilegiados por Microsoft.
Nota:
Para los roles de Azure, esta categorización es menos precisa, ya que el impacto real depende en gran medida del alcance de la asignación del rol. Por ejemplo, un rol de Propietario en una sola máquina virtual tiene significativamente menos impacto que cuando el mismo rol se aplica a una suscripción completa. También podría ser una suscripción de prueba sin recursos en absoluto.
Roles de Entra ID
Nombre del Rol
Nivel
GUID
Administrador Global
0
62e90394-69f5-4237-9190-012177145e10
Soporte Nivel 2 de Partner
0
e00e864a-17c5-4a4b-9c06-f5b95a8d5bd8
Administrador de Autenticación Privilegiada
0
7be44c8a-adaf-4e2a-84d6-ab2649e08a13
Administrador de Roles Privilegiados
0
e8611ab8-c189-46e8-94e1-60213ab1f814
Administrador de Nombres de Dominio
0
8329153b-31d0-4727-b945-745eb3bc5f31
Administrador de Proveedor de Identidad Externo
0
be2f45a1-457d-42af-a067-6ec1fa63bc45
Administrador de Identidad Híbrida
0
8ac3fc64-6eca-42ea-9e69-59f4c7b60eb2
Administrador de Aplicaciones
0
9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3
Administrador de Aplicaciones en la Nube
0
158c047a-c907-4556-b7ef-446551a6b5f7
Administrador de Seguridad
0
194ae4cb-b126-40b2-bd5b-6091b380977d
Administrador de ID de Agente
1
db506228-d27e-4b7d-95e5-295956d6615f
Administrador de IA
1
d2562ede-74db-457e-a7b6-544e236ebb61
Administrador de Acceso Condicional
1
b1be1c3e-b65d-4f19-8427-f6fa0d97feb9
Administrador de Autenticación
1
c4e39bd9-1100-46d3-8c65-fb160da0071f
Administrador de Azure DevOps
1
e3973bdf-4987-49ae-837a-ba8e231c7286
Escritores de Directorio
1
9360feb5-f418-4baa-8175-e2a00bac4301
Respondedor de Identidad SOC de Entra
1
58f930cc-fcf4-4152-852c-1d7dbf502139
Administrador de Exchange
1
29232cdf-9323-42fd-ade2-1d097af3e4de
Administrador de Grupos
1
fdd7a751-b60b-444a-984c-02652fe8fa1c
Administrador de Helpdesk
1
729827e3-9c14-49f7-bb1b-9608f156bbb8
Administrador de Gobernanza de Identidad
1
45d8d3c5-c802-45c6-b32a-1d70b5e1e86e
Administrador de Intune
1
3a2c62db-5318-420d-8d74-23affee5d9d5
Roles de Azure
Nombre del Rol
Nivel
GUID
Propietario
0
8e3af657-a8ff-443c-a75c-2fe8c4bcb635
Administrador de Acceso de Usuario
0
18d7d88d-d35e-4fb5-a5c3-7773c20a72d9
Colaborador
0
b24988ac-6180-42a0-ab88-20f7382dd24c
Administrador de Control de Acceso Basado en Roles
0
f58310d9-a9f6-439a-9e8d-f62e7b41a168
Administrador de Reservas
0
a8889054-8d42-49c9-bc1c-52486c10e7cd
Administrador de Seguridad
1
fb1c8493-542b-48eb-b624-b4c8fea62acd
Colaborador de Máquina Virtual
1
9980e02c-c2be-4d73-94e8-173b1dc7cf3c
Administrador de Acceso a Datos de Máquina Virtual
1
66f75aeb-eabe-4b70-9f1e-c350c4c9ad04
Inicio de Sesión de Administrador de Máquina Virtual
1
1c0163c0-47e6-4577-8991-ea5c82e286e4
Inicio de Sesión de Administrador de Windows Admin Center
1
a6333a3e-0164-44c3-b281-7a577aff287f
Colaborador de Registro de Contenedores y Administrador de Configuración de Acceso a Datos
1
3bc748fc-213d-45c1-8d91-9da5725539b9
Administrador de Key Vault
1
00482a5a-887f-4fb3-b363-3b7fe8e74483
Administrador de Acceso a Datos de Key Vault
1
8b54135c-b56d-4d72-a534-26097cfdc8d8
Oficial de Secretos de Key Vault
1
b86a8fe4-44ce-4948-aee5-eccb2c155cd7
Usuario de Secretos de Key Vault
1
4633458b-17de-408a-b874-0445c86b69e6
Administrador RBAC de Azure Kubernetes Service
1
3498e952-d568-435e-9b2c-8d77e338d7f7
Administrador de Clúster RBAC de Azure Kubernetes Service
1
b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b
Administrador de Azure Arc Kubernetes
1
dffb1e0c-446f-4dde-a09f-99eb5cc68b96
Administrador de Clúster de Azure Arc Kubernetes
1
8393591c-06b9-48a2-a542-1bd6b377f6a2
Colaborador de VM de Azure Arc VMware
1
b748a06d-6150-4f8a-aaa9-ce3940cd96cb
Colaborador de Cuenta de Almacenamiento
1
17d1049b-9a84-46fb-8f53-869881c3d3ab
Categorización de Permisos de API
Ciertos permisos de API permiten que una aplicación escale directamente a privilegios de Administrador Global. Por lo tanto, varios permisos de API se categorizan en diferentes niveles de severidad. Esta categorización influye en el puntaje de impacto de las aplicaciones que tienen estos permisos asignados — ya sea como permisos de aplicación o permisos delegados para usuarios.
Aplicaciones empresariales de Microsoft de primera parte
De forma predeterminada, las aplicaciones de Microsoft se filtran para simplificar la revisión de las aplicaciones empresariales. Use el modificador -IncludeMsApps para incluirlas. Las aplicaciones de los siguientes inquilinos se tratan como propiedad de Microsoft:
f8cdef31-a31e-4b4a-93e4-5f571e91255a
72f988bf-86f1-41af-91ab-2d7cd011db47
33e01921-4d64-4f8c-a055-5bdaffd5e33d
cdc5aeea-15c5-4db6-b079-fcadd2505dc2
Comprobaciones realizadas
La siguiente tabla resume de forma aproximada las comprobaciones realizadas, junto con su impacto en la puntuación y si se muestra una advertencia.
Comprobaciones realizadas|Área|Comprobación|Impacta en la puntuación|Advertencia mostrada|
|-|-|-|-|
|Grupos|Es un grupo público de M365|Sí|Sí|
|Grupos|Es dinámico / Es dinámico y consulta potencialmente peligrosa|Sí|Sí|
|Grupos|Roles de Entra (Activos y Elegibles)|Sí|Sí|
|Grupos|Roles de Azure (Activos y Elegibles)|Sí|Sí|
|Grupos|Usado para AppRole|Sí|Sí|
|Grupos|SP interno/externo como propietario|Sí|Sí|
|Grupos|En AU restringido|Sí|Sí|
|Grupos|Anidado en grupo privilegiado|Sí|Sí|
|Grupos|Usado en CAP|Sí|Sí|
|Grupos|Tipo de grupo|Sí|No|
|Grupos|Seguridad habilitada|Sí|No|
|Grupos|Miembro anidado activo|Sí|No|
|Grupos|Propietarios|Sí|No|
|Grupos|Propietarios anidados|Sí|No|
|Grupos|Invitado como propietario|Sí|Sí|
|Grupos|Sincronización local|Sí|No|
|Grupos|Miembros (transitivos)|Sí|No|
|Grupos|Asignable a roles|Sí|No|
|Grupos|PIM para Grupos: Incorporado|No|No|
|Grupos|PIM para Grupos: Miembro elegible de grupo privilegiado|Sí|Sí|
|Grupos|PIM para Grupos: Propietario elegible de grupo privilegiado|Sí|Sí|
|Grupos|PIM para Grupos: Grupo no protegido anidado en grupo protegido|No|Sí|
|EnterpriseApp|Rol de Entra|Sí|Sí|
|EnterpriseApp|Rol de Azure|Sí|Sí|
|EnterpriseApp|Externo|Sí|No|
|EnterpriseApp|Deshabilitado por Microsoft|No|Sí|
|EnterpriseApp|Nombre sospechoso (caracteres similares)|Sí|Sí|
|EnterpriseApp|Permiso de API (Aplicación)|Sí|Sí|
|EnterpriseApp|Permiso de API (Delegado)|Sí|Sí|
|EnterpriseApp|Credenciales|Sí|Sí|
|EnterpriseApp|Propietarios|Sí|Sí|
|EnterpriseApp|Propiedad sobre registros de aplicaciones|Sí|Sí|
|EnterpriseApp|Propiedad de otras entidades de servicio|Sí|Sí|
|EnterpriseApp|AppLock|(Sí)|No|
|EnterpriseApp|La aplicación posee un AppRegistration|Sí|Sí|
|EnterpriseApp|Miembro / propietario de grupos|Sí|(Sí)|
|EnterpriseApp|AppRoles|Sí|No|
|EnterpriseApp|Requisitos de AppRole|Sí|No|
|EnterpriseApp|Inactiva|No|No|
|EnterpriseApp|Último inicio de sesión correcto (días)|No|No|
|AppRegistrations|Credenciales|Sí|Sí|
|AppRegistrations|Aplicación de Entra Connect con credenciales|Sí|Sí|
|AppRegistrations|Aplicación de Entra Connect con múltiples certificados|Sí|Sí|
|AppRegistrations|AppRoles|Sí|No|
|AppRegistrations|AppRedirectURL|No|No|
|AppRegistrations|AppLock|Sí|No|
|AppRegistrations|Propietarios|Sí|Sí|
|AppRegistrations|Administradores de aplicaciones (nube) con ámbito|No|No|
|AppRegistrations|Privilegios de la SP correspondiente|Sí|No|
|AppRegistrations|Audiencia de inicio de sesión|No|No|
|ManagedIdentity|Propietarios|Sí|Sí|
|ManagedIdentity|Rol de Entra|Sí|Sí|
|ManagedIdentity|Rol de Azure|Sí|Sí|
|ManagedIdentity|API (App)|Sí|Sí|
|ManagedIdentity|Propiedad sobre registros de aplicaciones|Sí|Sí|
|ManagedIdentity|Propiedad de otras entidades de servicio|Sí|Sí|
|ManagedIdentity|Miembro / propietario de grupos|Sí|(Sí)|
|Usuario|Roles de Entra (Activos y Elegibles)|Sí|Sí|
|Usuario|Roles de Azure (Activos y Elegibles)|Sí|Sí|
|Usuario|Membresía de grupo privilegiado (Activa y Elegible)|Sí|Sí|
|Usuario|Propiedad de grupo privilegiado (Activa y Elegible)|Sí|Sí|
|Usuario|Usuario sincronizado con Entra Connect|Sí|Sí|
|Usuario|Usuario sincronizado con Entra Connect Cloud Sync|Sí|Sí|
|Usuario|Propiedad de AppRegistration|Sí|Sí|
|Usuario|Propiedad de EnterpriseApplication|Sí|Sí|
|Usuario|Sin factor MFA registrado|Sí|Sí|
|Usuario|Está protegido|Sí|No|
|Usuario|Inactivo|No|No|
|Usuario|Miembro / propietario de grupos|Sí|(Sí)|
|Usuario|Sincronizado desde local|Sí|No|
|AgentIdentity|Usuarios de agente vinculados|Sí|No|
|AgentIdentity|Origen de principal de blueprint externo|Sí|Sí|
|AgentIdentity|Permiso de API efectivo (Aplicación)|Sí|Sí|
|AgentIdentity|Permiso de API efectivo (Delegado)|Sí|Sí|
|AgentIdentity|Rol de Entra|Sí|Sí|
|AgentIdentity|Rol de Azure|Sí|Sí|
|AgentIdentity|Propiedad sobre registros de aplicaciones|Sí|Sí|
|AgentIdentity|Propiedad de otras entidades de servicio|Sí|Sí|
|AgentIdentity|Miembro / propietario de grupos|Sí|(Sí)|
|AgentIdentityBlueprintPrincipal|Identidades de agente vinculadas|Sí|No|
|AgentIdentityBlueprintPrincipal|Usuarios de agente vinculados|Sí|No|
|AgentIdentityBlueprintPrincipal|Permiso de API configurado (Aplicación)|No|No|
|AgentIdentityBlueprintPrincipal|Permiso de API configurado (Delegado)|No|No|
|AgentIdentityBlueprintPrincipal|Origen de blueprint principal externo|Sí|No|
|AgentIdentityBlueprintPrincipal|Rol de Entra|No|No|
|AgentIdentityBlueprintPrincipal|Rol de Azure|No|No|
|AgentIdentityBlueprintPrincipal|Nombre sospechoso (caracteres similares)|Sí|Sí|
|AgentIdentityBlueprint|Principales de blueprint|Sí|No|
|AgentIdentityBlueprint|Identidades de agente vinculadas|Sí|No|
|AgentIdentityBlueprint|Usuarios de agente vinculados|Sí|No|
|AgentIdentityBlueprint|Permisos de API heredables|Sí|No|
|AgentIdentityBlueprint|Credenciales federadas|Sí|No|
|AgentIdentityBlueprint|Secretos / certificados|Sí|Sí|
|AgentIdentityBlueprint|Propietarios / patrocinadores|Sí|(Sí)|
|AccessPackages|Roles de Entra concedidos|Sí|No|
|AccessPackages|Roles de Azure concedidos|Sí|No|
|AccessPackages|Grupos concedidos|Sí|No|
|AccessPackages|Roles de aplicación concedidos|Sí|No|
|AccessPackages|Permisos de API concedidos (Aplicación)|Sí|No|
|AccessPackages|Permisos de API concedidos (Delegado)|Sí|No|
|AccessPackages|Acceso a SharePoint concedido|Sí|No|
|AccessPackages|Autosolicitud amplia sin aprobación|Sí|Sí|
|AccessPackages|Acceso persistente sin expiración ni revisión de acceso|No|No|
|AccessPackages|Reglas de asignación automática peligrosas|Sí|Sí|
|AccessPackages|Autosolicitud mediante objetivos de grupo no protegidos|Sí|Sí|
|AccessPackages|Asignación amplia en nombre de no usuarios sin aprobación|Sí|No|
|AccessPackages|Asignaciones de entidades de servicio|Sí|No|
|Catálogos|Metadatos, estado y visibilidad externa del catálogo|No|No|
|Catálogos|Recursos del catálogo|No|No|
|Catálogos|Recursos configurables en nuevos Access Packages|Sí|No|
|Catálogos|Recursos y roles configurados en Access Packages existentes|Sí|No|
|Catálogos|Recursos de catálogo no configurados|Sí|No|
|Catálogos|Asignaciones RBAC del catálogo|Sí|Sí|
|CAP|Sin política o política mal configurada para autenticación heredada|-|Sí|
|CAP|Sin política o política mal configurada para bloquear el flujo de código de dispositivo|-|Sí|
|CAP|Sin política o política mal configurada para limitar los registros de información de seguridad|-|Sí|
|CAP|Sin política o política mal configurada para dirigir inicios de sesión de riesgo|-|Sí|
|CAP|Sin política o política mal configurada para dirigir riesgo de usuario|-|Sí|
|CAP|Sin política o política mal configurada que exija MFA|-|Sí|
|CAP|Sin política que exija Authentication Strength|-|Sí|
|CAP|Inclusión de roles que tienen asignaciones con ámbito|-|Sí|
|PIMSettings|AuthContext|-|Sí|
|PIMSettings|CAP vinculado a AuthContext: Frecuencia de inicio de sesión|-|Sí|
|PIMSettings|CAP vinculado a AuthContext: MFA o AuthStrength|-|Sí|
|PIMSettings|CAP vinculado a AuthContext: Habilitado|-|Sí|
|PIMSettings|CAP vinculado a AuthContext: Usuarios/grupos/redes incluidos/excluidos|-|Sí|
|PIMSettings|CAP vinculado a AuthContext: Condiciones|-|Sí|
|PIMSettings|MFA de activación|-|No|
|PIMSettings|Justificación o ticket de activación|-|Sí|
|PIMSettings|Duración de activación|-|Sí|
|PIMSettings|Aprobación de activación|-|Sí|
|PIMSettings|Expiración de asignación elegible|-|No|
|PIMSettings|Expiración de asignación activa|-|Sí|
|PIMSettings|MFA de asignaciones activas|-|No|
|PIMSettings|Notificación de activación de rol|-|No|
|PIMSettings|Notificación de asignación de rol (activa)|-|No|
|PIMSettings|Notificación de asignación de rol (elegible)|-|No|
🛡️ Detección
EntraFalcon no es sigiloso y puede ser detectado en entornos donde se registran y supervisan la actividad de Microsoft Graph API y los inicios de sesión de Azure.
Autenticación predeterminada utilizada
Cuando se realiza una enumeración completa con flujos no BroCi, la herramienta normalmente inicia cuatro inicios de sesión interactivos y uno no interactivo. Dependiendo del flujo y la compatibilidad del punto de conexión, puede ocurrir un inicio de sesión interactivo adicional para los puntos de conexión de políticas de Security Findings.
ID de aplicación
Tipo
ID de recurso
Propósito
1b730954-1685-4b74-9bfd-dac224a7b894
Interactivo
00000003-0000-0000-c000-000000000000
Recuperar datos de PIM para Grupos
04b07795-8ddb-461a-bbee-02f9e1bf7b46
Interactivo
00000003-0000-0000-c000-000000000000
Recuperar datos generales de objetos del inquilino
51f81489-12ee-4a9e-aaae-a2591f45987d
Interactivo
00000003-0000-0000-c000-000000000000
Recuperar PIM para roles de Entra / Azure
80ccca67-54bd-44ab-8625-4b79c4dc7775
Interactivo
00000003-0000-0000-c000-000000000000
Recuperar contexto de políticas de Security Findings
04b07795-8ddb-461a-bbee-02f9e1bf7b46
No interactivo
797f4846-ba00-4fd7-ba43-dac1f8f63013
Recuperar datos de asignaciones de roles IAM de Azure
Autenticación BroCi utilizada
Cuando se utiliza la autenticación BroCi, solo ocurre un inicio de sesión interactivo.
ID de aplicación
Tipo
ID de recurso
Propósito
c44b4083-3bb0-49c1-b47d-974e53cbdf3c
Interactivo
00000003-0000-0000-c000-000000000000
Autenticación inicial para usar el token de actualización para BroCi
50aaa389-5a33-4f1a-91d7-2c45ecd8dac8
No interactivo
00000003-0000-0000-c000-000000000000
Recuperar datos de PIM para Grupos
50aaa389-5a33-4f1a-91d7-2c45ecd8dac8
No interactivo
01fc33a7-78ba-4d2f-a4b7-768e336e890e
Recuperar datos de PIM para Grupos
74658136-14ec-4630-ad9b-26e160ff0fc6
No interactivo
00000003-0000-0000-c000-000000000000
Recuperar datos generales de objetos del inquilino
74658136-14ec-4630-ad9b-26e160ff0fc6
No interactivo
797f4846-ba00-4fd7-ba43-dac1f8f63013
Recuperar datos de asignaciones de roles IAM de Azure
Cuando BroCi está habilitado, EntraFalcon también consulta api.azrbac.mspim.azure.com para PIM para Grupos.
Detalles
Para la recopilación de datos, la herramienta envía múltiples solicitudes a Microsoft Graph API y, opcionalmente, a Azure ARM API—una o más por objeto. Cuando es posible, aprovecha el punto de conexión Graph Batch para reducir el número de solicitudes individuales y mejorar la eficiencia.
Los inicios de sesión interactivos utilizan el User-Agent del navegador. Todos los inicios de sesión no interactivos y las solicitudes de API (Graph y ARM) utilizan EntraFalcon como User-Agent, a menos que se cambie con el parámetro -UserAgent.
Para detectar el uso de EntraFalcon, los equipos azules pueden monitorear los ID de aplicación enumerados en los registros de inicio de sesión, buscar volúmenes inusuales de tráfico de Graph API, o analizar el comportamiento de actualización de tokens y solicitudes por lotes.
🕳️ Limitaciones conocidas
RBAC de M365: No evaluado
RBAC de Defender for Endpoint: No evaluado
Cobertura de usuarios de Conditional Access: La cobertura efectiva de usuarios y -ExportCapUncoveredUsers son cálculos de mejor esfuerzo basados en usuarios enumerados, miembros de grupos, asignaciones de roles y categorías de usuarios externos resolubles. Los selectores de usuarios externos solo se resuelven para usuarios invitados del inquilino que coinciden con b2bCollaborationGuest. Otros tipos de usuarios externos o usuarios externos con inquilinos externos especificados pueden hacer que los valores de cobertura sean aproximados. Las rutas elegibles de PIM se informan como cobertura potencial y no se cuentan como cubiertas actualmente. La exportación CSV se limita a políticas habilitadas y usuarios habilitados.
Entorno en la nube: Las plataformas en la nube evolucionan rápidamente. Como resultado, algunas evaluaciones o detecciones pueden volverse obsoletas o inexactas con el tiempo. Además, los inquilinos son cada vez más complejos, y configuraciones específicas o combinaciones de ajustes pueden llevar a resultados inexactos. Si bien nos esforzamos por mantener EntraFalcon actualizado, siempre se recomienda validar los hallazgos de forma independiente y no confiar únicamente en la herramienta para decisiones críticas.
Informes HTML: Los informes HTML generados no implementan mecanismos de protección contra cross-site scripting (XSS).
📦 Herramientas externas integradas
Los siguientes submódulos han sido bifurcados e integrados en EntraFalcon para soportar la autenticación, la interacción con Microsoft Graph y los gráficos de informes:
Ruta a un archivo de certificado PFX/P12 para la autenticación de la entidad de servicio.
-
SPCertificatePassword
Contraseña (SecureString) para el certificado PFX especificado por -SPCertificatePath.
-
SPCertificatePemPath
Ruta a un archivo de certificado PEM. Se usa junto con -SPPrivateKeyPemPath.
-
SPPrivateKeyPemPath
Ruta al archivo de clave privada PEM que coincide con -SPCertificatePemPath.
-
SPPrivateKeyPemPassword
Contraseña (SecureString) para la clave privada PEM especificada por -SPPrivateKeyPemPath.
-
Csv
Habilita la escritura de archivos de informe CSV además de los archivos de informe TXT/HTML.
false
ExportCapUncoveredUsers
Para cada política de Acceso Condicional habilitada con destino a usuarios, exporta un CSV que lista los usuarios no cubiertos por esa política. Los archivos se escriben en una subcarpeta ConditionalAccessPolicies_UncoveredUsers en el directorio de salida.
false
ExportFindingsJson
Exporta todos los Hallazgos de Seguridad como JSON al final de la ejecución.
false
ExportDataJson
Exporta el informe enriquecido y los conjuntos de datos de soporte como archivos JSON sin procesar en Data_Json; los metadatos de la ejecución están disponibles en Summary.json.
false
DebugObjectDump
Exporta los objetos de informe finales en memoria como CLIXML a Debug_ObjectDump para solución de problemas y pruebas.
false
Administrador de Conocimiento
1
b5a8dcf3-09d5-43a9-a639-8e29ef291470
Administrador de Conocimiento
1
744ec460-397e-42ad-a462-8b3f9747a02c
Administrador de Flujos de Trabajo de Ciclo de Vida
1
59d46f88-662b-457b-bceb-5c3809e5908f
Cuentas de Sincronización de Directorio
1
d29b2b05-8046-44ba-8758-1e26182fcf32
Cuenta de Sincronización de Directorio Local
1
a92aed5d-d78a-4d16-b381-09adb37eb3b0
Soporte Nivel 1 de Partner
1
4ba39ca4-527c-499a-b93d-d9b492c50246
Administrador de Contraseñas
1
966707d0-3269-4727-9be2-8c3a10f19b9d
Administrador de SharePoint
1
f28a1f50-f6e7-4571-818b-6a12f2af6b6c
Administrador de Teams
1
69091246-20e8-4a56-aa4d-066075b2a7a8
Administrador de Usuarios
1
fe930be7-5e62-47db-91af-98c3a49a38b1
Administrador de Windows 365
1
11451d60-acb2-45eb-a7d6-43d0f0125c13
Administrador de Yammer
1
810a2642-a034-447f-a5e8-41beaa378541
Administrador de Políticas de Autenticación
2
0526716b-113d-4c15-b2c8-68e3c22b9f80
Administrador Local de Dispositivos Unido a Azure AD