在项目中评估EntraFalcon,可以先看清用途边界:用于评估 Microsoft Entra ID 环境的安全状况的轻量级 PowerShell 工具,它有助于识别特权对象、有风险的分配和潜在的错误配置。这类安全分析工具真正难在授权边界、证据完整性和误报需要同时控制,仓库说明只能作为第一层证据。我建议在明确授权的样例或离线靶场中验证,重点记录输入边界、证据链、误报率和安全中止机制,再与现有方案比较。对具备授权环境和复核能力的安全人员来说,这个仓库值得继续验证;只求即装即用的人则要先看维护成本。

EntraFalcon
EntraFalcon 是一款 PowerShell-based 评估工具,供渗透测试人员、安全分析师和系统管理员评估 Microsoft Entra ID 环境的安全态势。
EntraFalcon 专为易用性而设计,在 PowerShell 5.1 和 7 上运行,支持 Windows 和 Linux,并且不需要额外的 PowerShell 模块、额外安装或 Microsoft Graph API 同意。
该工具有助于发现经常被忽视的特权对象、潜在风险分配和条件访问错误配置,例如:
结果以交互式 HTML 报告的形式呈现,以支持高效的探索和分析。
特点
✅ 要求
| 类型 | 许可 | 强制 | 缺失影响 |
|---|---|---|---|
| Entra ID 角色 | 全球读者 | 是的 | 无法运行脚本 |
| Azure 角色 | 读者:在每个管理组或订阅上 | 否 | 无法评估 Azure IAM 分配 |
此外,您必须能够从运行该工具的设备向 Microsoft Graph API 和 Azure ARM API 进行身份验证。 确保条件访问策略不会阻止您的身份验证。
▶ 使用方法
下载EntraFalcon
首先,克隆存储库并导航到项目目录:
git clone https://github.com/CompassSecurity/EntraFalcon
cd EntraFalcon
注意:您可能需要临时更改 PowerShell 执行策略才能运行脚本。 仅对受信任的脚本执行此操作!
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
运行EntraFalcon
EntraFalcon 包括对 Entra ID 身份验证的内置支持。
多个身份验证流程可用于支持不同的环境和限制。
根据所选流程,这需要多次交互式身份验证。
使用-AuthFlow选择认证流程。
| 认证流程 | 窗户 | Linux/macOS | 互动登录 | 方便 | 参数 | 注释 |
|---|---|---|---|---|---|---|
| BroCi | 是的 | 否 | 1 | 高 | -AuthFlow BroCi (默认) |
避免依赖旧版客户端,例如 Azure Active Directory PowerShell。支持所有枚举。 |
| 授权码流程 | 是的 | 否 | 4 | 正常 | -AuthFlow AuthCode |
标准非 BroCi 身份验证代码流程。不生成独立的 PIM (Groups) 设置报告。 |
| 设备代码流程 | 是的 | 是的 | 3 | 正常 | -AuthFlow DeviceCode |
身份验证可以在另一台设备上完成,但两次安全调查结果检查的运行深度会降低。不生成独立的 PIM (Groups) 设置报告。 |
| 授权码+手动码流程 | 是的 | 是的 | 4 | 低-正常 | -AuthFlow ManualCode |
身份验证可以在不同的设备或浏览器会话上完成。不生成独立的 PIM (Groups) 设置报告。 |
| BroCi + 手动代码流程 | 是的 | 是的 | 1 | 低 | -AuthFlow BroCiManualCode |
授权码必须从浏览器开发者工具中手动提取。支持所有枚举。 |
| BroCi 带令牌 | 是的 | 是的 | 0 | 低 | -AuthFlow BroCiToken -BroCiToken "<refresh_token>" |
刷新令牌必须手动获取(e.g.,从浏览器开发工具或其他身份验证工具)。支持所有枚举。 |
| 服务负责人 | 是的 | 是的 | 0 | 低 | -AuthFlow ServicePrincipal -SPClientId "<appId>" -Tenant "<tenantId>" ... |
仅应用程序 OAuth2 客户端凭据流程。需要具有足够的 Graph API 权限的自定义应用程序注册。支持所有枚举。 |
使用 BroCi 流(默认/仅限 Windows)
BroCi 使用备用第一方应用程序,仅需要一次交互式登录。
当 Azure Active Directory PowerShell 客户端需要分配并且必须避免时,它会更加有用。
.run_EntraFalcon.ps1
显式 BroCi 选择:
.run_EntraFalcon.ps1 -AuthFlow BroCi
验证码流程(仅限 Windows)
.run_EntraFalcon.ps1 -AuthFlow AuthCode
设备代码流程
在强化环境中,它通常受到条件访问的限制。
使用 DeviceCode,两个安全结果检查会以降低的深度运行(CAP-004 和 CAP-005)。
.run_EntraFalcon.ps1 -AuthFlow DeviceCode
使用Auth Code+手动代码流认证
.run_EntraFalcon.ps1 -AuthFlow ManualCode
BroCi + 手动代码流程
.run_EntraFalcon.ps1 -AuthFlow BroCiManualCode
Preserve log。code=1. 并将包含代码的请求 URL 复制到剪贴板。BroCi 带令牌
如果有效的 Azure 门户刷新令牌已可用(客户端 c44b4083-3bb0-49c1-b47d-974e53cbdf3c),则可以直接使用它。 示例:从浏览器获取刷新令牌
.run_EntraFalcon.ps1 -AuthFlow BroCiToken -BroCiToken "1.XXXXXXXXXXX"
服务负责人
使用 OAuth2 客户端凭据授予作为注册应用程序进行身份验证 - 无需用户交互。
对于自动执行很有用。
需要使用 Application-type Graph API 权限注册自定义 Entra 应用程序(见下文)。
带有客户端秘密:
.run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "<AppId>" -SPClientSecret "<Secret>"
拥有PFX证书:
.run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "<AppId>" -SPCertificatePath "C:certsapp.pfx"
对于受密码保护的 PFX,请添加 -SPCertificatePassword (Read-Host -Prompt "Certificate password" -AsSecureString)。
使用 PEM 证书 + 私钥(仅限 PowerShell 7+):
.run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "<AppId>" -SPCertificatePemPath "C:certscert.pem" -SPPrivateKeyPemPath "C:certskey.pem"
对于加密私钥,请添加 -SPPrivateKeyPemPassword (Read-Host -Prompt "Private key password" -AsSecureString)。
所需的应用程序注册权限
在应用程序注册上授予以下 应用程序 权限(非委派)并获得管理员同意:
| 许可 | 类型 |
|---|---|
AdministrativeUnit.Read.All |
应用 |
AgentIdentity.Read.All |
应用 |
AgentIdentityBlueprint.Read.All |
应用 |
AgentIdentityBlueprintPrincipal.Read.All |
应用 |
Application.Read.All |
应用 |
AuditLog.Read.All |
应用 |
Device.Read.All |
应用 |
Group.Read.All |
应用 |
Organization.Read.All |
应用 |
Policy.Read.All |
应用 |
PrivilegedAccess.Read.AzureADGroup |
应用 |
RoleManagement.Read.Directory |
应用 |
RoleManagementPolicy.Read.AzureADGroup |
应用 |
User.Read.All |
应用 |
此外,将根管理组(或每个相关订阅)上的 Azure Reader 角色以及可选的 Global Reader 角色分配给 Entra ID 中的服务主体(每用户 MFA 状态需要)。
其他参数
包括 Microsoft 拥有的企业应用程序
默认情况下,微软官方企业应用程序被排除在评估之外,以减少噪音。要将它们包含在枚举和分析中,请使用 -IncludeMsApps 开关:
.run_EntraFalcon.ps1 -IncludeMsApps
跳过 PIM 进行团体评估
使用 -SkipPimForGroups 开关跳过 PIM-for-Groups 预收集和丰富。
这还会跳过独立的 PIM (Groups) 设置报告。
.run_EntraFalcon.ps1 -SkipPimForGroups
其他可选参数
| 参数 | 描述 | 默认值 |
|---|---|---|
| UserAgent | 用于向令牌端点发出请求和 API 调用的用户代理。 | EntraFalcon |
| DisableCAE | 禁用请求连续访问评估 (CAE) 令牌。 | false |
| 租户 | 指定要进行身份验证的租户(ID 或域)。在评估账户主租户以外的租户时很有用。 | Account's home tenant |
| OutputFolder | 存储报告的输出文件夹。 | Results_%TenantName%_YYYYMMDD_HHMM |
| LimitResults | 限制报告中组和用户的数量(按风险排序后)。对于大租户有用。 | - |
| LogLevel | 控制运行时 cli 日志记录的详细程度。支持的值:Off(默认)、Verbose、Debug、Trace。 |
Off |
| ApiTop | 设置从 API 返回的对象的最大数量。较低的值会降低超时风险 (HTTP 504),但会增加请求计数。 | 999(有效范围:5–999) |
| AuthFlow | 首选的身份验证流程选择器。值:BroCi(默认)、AuthCode、DeviceCode、ManualCode、BroCiManualCode、BroCiToken、ServicePrincipal。 |
BroCi |
| BroCiToken | Azure 门户 AuthFlow BroCiToken 的刷新令牌。 |
- |
| SPClientId | 服务主体的应用程序(客户端)ID。对于 -AuthFlow ServicePrincipal 是必需的。 |
- |
| SPClientSecret | 服务主体的客户端密钥。与 -AuthFlow ServicePrincipal 一起使用。 |
- |
| SPCertificatePath | 用于服务主体身份验证的 PFX/P12 证书文件的路径。 | - |
| SPCertificatePassword | -SPCertificatePath指定的PFX证书的密码(SecureString)。 |
- |
| SPCertificatePemPath | PEM 证书文件的路径。与-SPPrivateKeyPemPath一起使用。 |
- |
| SPPrivateKeyPemPath | 与 -SPCertificatePemPath 匹配的 PEM 私钥文件的路径。 |
- |
| SPPrivateKeyPemPassword | -SPPrivateKeyPemPath指定的PEM私钥的密码(SecureString)。 |
- |
| CSV | 除了 TXT/HTML 报告文件之外,还允许写入 CSV 报告文件。 | false |
| ExportCapUncoveredUsers | 对于每个已启用的具有用户定位的条件访问策略,导出 CSV 列出该策略未覆盖的用户。文件将写入输出目录中的 ConditionalAccessPolicies_UncoveredUsers 子文件夹。 |
false |
| ExportFindingsJson | 运行结束时将所有安全结果导出为 JSON。 | false |
| DebugObjectDump | 将最终内存中报告对象作为 CLIXML 导出到 Debug_ObjectDump 以进行故障排除和测试。 |
false |
一些示例报告
安全调查报告
用户
用户(详细信息部分)
Entra ID 角色
Azure 角色
企业申请(详情部分)
条件访问策略
条件访问策略(详细信息部分)
PIM 角色设置(Entra)
特工身份
枚举摘要
HTML 报告
一般
过滤
= 进行精确匹配。^ 表示开头为(e.g.、^Mallory)。$ 表示结尾为(e.g.、$domain.ch)。>、<、>=、<= 等比较运算符(仅限数字值)。! 开头来否定过滤器(数字比较除外)。示例:!Mallory、!=Mallory、!^Mallory 或 !$domain.ch。=empty 匹配空单元格,或使用 !=empty 匹配非空单元格。|| to match any of multiple values in the same column (e.g., Admin || 客人)。&& 要求同一列中有多个匹配项(e.g.、!adm && !svc && !sql)。or_、group1_、group2_...。示例:第 1 列:or_>1,第 2 列:or_!Mallory使用 GET 参数进行控制
?EntraRoles=>1&Enabled=true 来应用过滤器。?or_EntraRoles=>0&or_GrpMem=>0) 中使用 or_ 或 group1_ 前缀。columns 参数选择要显示的列。示例:?columns=DisplayName,Owner。sort和sortDir参数对数据进行排序。示例:?sort=Impact&sortDir=desc 或 ?sort=OwnerCount&sortDir=asc。#) 和对象 ID e.g 直接跳转到报告中的特定对象。 #%ObjectID%。评级
引擎盖下
角色分类
Entra ID 和 Azure 角色大致分为不同的层级。此分类会影响分配给这些角色的对象的影响分数。 目标是为具有更强大角色的用户(e.g.,全局管理员)分配比具有不太关键角色的用户(e.g.,全局读者)更高的影响分数,即使两者都被 Microsoft 视为特权角色。
注意: 对于 Azure 角色,这种分类不太精确,因为实际影响在很大程度上取决于角色分配的范围。例如,与将同一角色应用于整个订阅时相比,单个虚拟机上的所有者角色的影响要小得多。它也可能是根本没有资源的测试订阅。
Entra ID Roles
| 角色名称 | 层级 | GUID |
|---|---|---|
| 全局管理员 | 0 | 62e90394-69f5-4237-9190-012177145e10 |
| 合作伙伴二级支持 | 0 | e00e864a-17c5-4a4b-9c06-f5b95a8d5bd8 |
| 特权身份验证管理员 | 0 | 7be44c8a-adaf-4e2a-84d6-ab2649e08a13 |
| 特权角色管理员 | 0 | e8611ab8-c189-46e8-94e1-60213ab1f814 |
| 域名管理员 | 0 | 8329153b-31d0-4727-b945-745eb3bc5f31 |
| 外部身份提供商管理员 | 0 | be2f45a1-457d-42af-a067-6ec1fa63bc45 |
| 混合身份管理员 | 0 | 8ac3fc64-6eca-42ea-9e69-59f4c7b60eb2 |
| 应用程序管理员 | 0 | 9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3 |
| 云应用管理员 | 0 | 158c047a-c907-4556-b7ef-446551a6b5f7 |
| 安全管理员 | 0 | 194ae4cb-b126-40b2-bd5b-6091b380977d |
| 代理 ID 管理员 | 1 | db506228-d27e-4b7d-95e5-295956d6615f |
| AI 管理员 | 1 | d2562ede-74db-457e-a7b6-544e236ebb61 |
| 条件访问管理员 | 1 | b1be1c3e-b65d-4f19-8427-f6fa0d97feb9 |
| 认证管理员 | 1 | c4e39bd9-1100-46d3-8c65-fb160da0071f |
| Azure DevOps 管理员 | 1 | e3973bdf-4987-49ae-837a-ba8e231c7286 |
| 目录作者 | 1 | 9360feb5-f418-4baa-8175-e2a00bac4301 |
| 交换管理员 | 1 | 29232cdf-9323-42fd-ade2-1d097af3e4de |
| 群组管理员 | 1 | fdd7a751-b60b-444a-984c-02652fe8fa1c |
| 服务台管理员 | 1 | 729827e3-9c14-49f7-bb1b-9608f156bbb8 |
| 身份治理管理员 | 1 | 45d8d3c5-c802-45c6-b32a-1d70b5e1e86e |
| Intune 管理员 | 1 | 3a2c62db-5318-420d-8d74-23affee5d9d5 |
| 知识管理员 | 1 | b5a8dcf3-09d5-43a9-a639-8e29ef291470 |
| 知识经理 | 1 | 744ec460-397e-42ad-a462-8b3f9747a02c |
| 生命周期工作流程管理员 | 1 | 59d46f88-662b-457b-bceb-5c3809e5908f |
| 目录同步帐户 | 1 | d29b2b05-8046-44ba-8758-1e26182fcf32 |
| 本地目录同步帐户 | 1 | a92aed5d-d78a-4d16-b381-09adb37eb3b0 |
| 合作伙伴一级支持 | 1 | 4ba39ca4-527c-499a-b93d-d9b492c50246 |
| 密码管理员 | 1 | 966707d0-3269-4727-9be2-8c3a10f19b9d |
| SharePoint 管理员 | 1 | f28a1f50-f6e7-4571-818b-6a12f2af6b6c |
| 团队管理员 | 1 | 69091246-20e8-4a56-aa4d-066075b2a7a8 |
| 用户管理员 | 1 | fe930be7-5e62-47db-91af-98c3a49a38b1 |
| Windows 365 管理员 | 1 | 11451d60-acb2-45eb-a7d6-43d0f0125c13 |
| Yammer 管理员 | 1 | 810a2642-a034-447f-a5e8-41beaa378541 |
| 身份验证策略管理员 | 2 | 0526716b-113d-4c15-b2c8-68e3c22b9f80 |
| Azure AD 已加入设备本地管理员 | 2 | 9f06204d-73c1-4d4c-880a-6edb90606fd8 |
| 云设备管理员 | 2 | 7698a772-787b-4ac8-901f-60d6b08affd2 |
| 全球读者 | 2 | f2ef992c-3afb-46b9-b7cf-a126ee74c451 |
| 嘉宾邀请者 | 2 | 95e79109-95c0-4d8e-aee3-d01accf2d47b |
API 权限分类
某些 API 权限允许应用程序直接升级到全局管理员权限。因此,多个 API 权限被分为不同的严重级别。此分类会影响分配了这些权限(作为应用程序权限或用户委派权限)的应用程序的影响分数。
Application Permission
| 许可 | 严重性 | GUID |
|---|---|---|
| RoleManagement.ReadWrite.目录 | 危险 | 9e3f62cf-ca93-4989-b6ce-bf83c28f9fe8 |
| AppRoleAssignment.ReadWrite.全部 | 危险 | 06b708a9-e830-4db3-a914-8e69da51d44f |
| Application.ReadWrite.全部 | 危险 | 1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9 |
| RoleAssignmentSchedule.ReadWrite.目录 | 危险 | dd199f4a-f148-40a4-a2ec-f0069cc799ec |
| PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup | 危险 | 41202f2c-f7ab-45be-b001-85c9728b9d69 |
| PrivilegedAccess.ReadWrite.AzureADGroup | 危险 | 2f6817f8-7b12-4f0f-bc18-eeaf60705a9e |
| RoleEligibilitySchedule.ReadWrite.目录 | 危险 | 费用28b28-e1f3-4841-818e-2704dc62245f |
| PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup | 危险 | 618b6020-bca8-4de6-99f6-ef445fa4d857 |
| Domain.ReadWrite.全部 | 危险 | 7e05723c-0bb0-42da-be95-ae9f08a6e53c |
| Application.ReadUpdate.全部 | 危险 | FC023787-fd04-4e44-9bc7-d454f00c0f0a |
| AgentIdentityBlueprint.ReadWrite.全部 | 高 | 7fddd33b-d884-4ec0-8696-72cff90ff825 |
| AgentIdentityBlueprint.AddRemoveCreds.全部 | 高 | 0510736e-bdfb-4b37-9a1f-89b4a074763a |
| ADSynchronization.ReadWrite.全部 | 高 | ab43b826-2c7a-4aff-9ecd-d0629d0ca6a9 |
| EntitlementManagement.ReadWrite.全部 | 高 | 9acd699f-1e81-4958-b001-93b1d2506e19 |
| Organization.ReadWrite.全部 | 高 | 292d869f-3427-49a8-9dab-8c70152b74e9 |
| Policy.ReadWrite.PermissionGrant | 高 | a402ca1c-2696-4531-972d-6e5ee4aa11ea |
| RoleManagementPolicy.ReadWrite.AzureADGroup | 高 | b38dcc4d-a239-4ed6-aa84-6c65b284f97c |
| RoleManagementPolicy.ReadWrite.目录 | 高 | 31e08e0a-d3f7-4ca2-ac39-7343fb83e8ad |
| Policy.ReadWrite.AuthenticationMethod | 高 | 29c18626-4985-4dcd-85c0-193eef327366 |
| User.DeleteRestore.全部 | 高 | eccc023d-eccf-4e7b-9683-8813ab36cecc |
| User.EnableDisableAccount.全部 | 高 | 3011c876-62b7-4ada-afa2-506cbbecc68c |
| DelegatedPermissionGrant.ReadWrite.全部 | 高 | 8e8e4742-1d95-4f68-9d56-6ee75648c72a |
| Policy.ReadWrite.ConditionalAccess | 高 | 01c0a623-fc9b-48e9-b794-0756f8e8f067 |
| DeviceManagementConfiguration.ReadWrite.全部 | 高 | 9241abd9-d0e6-425a-bd4f-47ba86e767a4 |
| DeviceManagementRBAC.ReadWrite.全部 | 高 | e330c4f0-4170-414e-a55a-2f022ec2b57b |
| Directory.ReadWrite.全部 | 高 | 19dbc75e-c2e2-444c-a770-ec69d8559fc7 |
| Group.ReadWrite.全部 | 高 | 62a82d76-70ea-41e2-9197-370581804d09 |
| GroupMember.ReadWrite.全部 | 高 | dbaae8cf-10b5-4b86-a4a1-f871c94c6695 |
| UserAuthenticationMethod.ReadWrite.全部 | 高 | 50483e42-d915-4231-9639-7fdb7fd190e5 |
| 用户-PasswordProfile.ReadWrite.All | 高 | 56760768-b641-451f-8906-e1b8ab31bca7 |
| Sites.FullControl.全部 | 高 | a82116e5-55eb-4c41-a434-62fe8a61c773 |
| Sites.FullControl.全部 SharePointAPI | 高 | 678536fe-1083-478a-9c59-b99265e6b0d3 |
| Sites.Manage.全部 SharePointAPI | 高 | 9bff6588-13f2-4c48-bbf2-ddab62256b36 |
| Sites.Read.全部 SharePointAPI | 高 | d13f72ca-a275-4b96-b789-48ebcc4da984 |
| Sites.ReadWrite.全部 SharePointAPI | 高 | fbcd29d2-fcca-4405-aded-518d457caae4 |
| Sites.Manage.全部 | 高 | 0c0bf378-bf22-4481-8f81-9e89a9b4960a |
| Sites.Read.全部 | 高 | 332a536c-c7ef-4017-ab91-336970924f0d |
| Sites.ReadWrite.全部 | 高 | 9492366f-7969-46a4-8d15-ed1a20078fff |
| Files.Read.全部 | 高 | 01d4889c-1287-42c6-ac1f-5d1e02578ef6 |
| Files.ReadWrite.全部 | 高 | 75359482-378d-4052-8f01-80520e7db3cd |
| DeviceLocalCredential.Read.全部 | 高 | db51be59-e728-414b-b800-e0f010df1a79 |
| AdministrativeUnit.ReadWrite.全部 | 高 | 5eb59dd3-1da2-4329-8733-9dabdc435916 |
| UserAuthMethod-HardwareOATH.ReadWrite.All | 高 | 7e9ebcc1-90aa-4471-8051-e68d6b4e9c89 |
| UserAuthMethod-Phone.ReadWrite.All | 高 | 6e85d483-7092-4375-宝贝-0a94a8213a58 |
| UserAuthMethod-QR.ReadWrite.All | 高 | 4869299f-18c3-40c8-98f2-222657e67db1 |
| UserAuthMethod-TAP.ReadWrite.All | 高 | 627169a8-8c15-451c-861a-5b80e383de5c |
| User.ReadWrite.全部 | 中等 | 741f803b-c850-494e-b5df-cde7c675a1ca |
| Chat.Read.全部 | 中等 | 6b7d71aa-70aa-4810-a8d9-5d9fb2830017 |
| Chat.ReadWrite.全部 | 中等 | 294ce7c9-31ba-490a-ad7d-97a7d075e4ed |
| Calendars.Read | 中等 | 798ee544-9d2d-430c-a058-570e29e34338 |
| Calendars.ReadWrite | 中等 | ef54d2bf-783f-4e0f-bca1-3210c0444d99 |
| Mail.Read | 中等 | 810c84a8-4a9e-49e6-bf7d-12d183f40d01 |
| Mail.ReadWrite | 中等 | e2a3a72e-5f79-4c64-b1b1-878b674786c9 |
| BitlockerKey.Read.全部 | 中等 | 57f1cf28-c0c4-4ec3-9a30-19a2eaaf2f6e |
| Mail.Send | 中等 | b633e1c5-b582-4048-a93e-9f11b44c7e96 |
| OnlineMeetings.ReadWrite.全部 | 中等 | b8bb2037-6e08-44ac-a4ea-4674e010e2a4 |
| CustomSecAttributeAssignment.ReadWrite.全部 | 中等 | de89b5e4-5b8f-48eb-8925-29c2b33bd8bd |
| ServicePrincipalEndpoint.ReadWrite.全部 | 中等 | 89c8469c-83ad-45f7-8ff2-6e3d4285709e |
| AgentIdentity.CreateAsManager | 低 | 4c390976-b2b7-42e0-9187-c6be3bead001 |
Delegated Permission
| 许可 | 严重性 | GUID |
|---|---|---|
| RoleManagement.ReadWrite.目录 | 危险 | d01b97e9-cbc0-49fe-810a-750afd5527a3 |
| AppRoleAssignment.ReadWrite.全部 | 危险 | 84bccea3-f856-4a8a-967b-dbe0a3d53a64 |
| Application.ReadWrite.全部 | 危险 | bdfbf15f-ee85-4955-8675-146e8e5296b5 |
| RoleAssignmentSchedule.ReadWrite.目录 | 危险 | 8c026be3-8e26-4774-9372-8d5d6f21daff |
| PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup | 危险 | 06dbc45d-6708-4ef0-a797-f797ee68bf4b |
| PrivilegedAccess.ReadWrite.AzureADGroup | 危险 | 32531c59-1f32-461f-b8df-6f8a3b89f73b |
| RoleEligibilitySchedule.ReadWrite.目录 | 危险 | 62ade113-f8e0-4bf9-a6ba-5acb31db32fd |
| PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup | 危险 | ba974594-d163-484e-ba39-c330d5897667 |
| Domain.ReadWrite.全部 | 危险 | 0b5d694c-a244-4bde-86e6-eb5cd07730fe |
| Application.ReadUpdate.全部 | 危险 | 0586a906-4d89-4de8-b3c8-1aacdcc0c679 |
| AgentIdentityBlueprint.AddRemoveCreds.全部 | 高 | 75b5feb2-bfe7-423f-907d-cc505186f246 |
| AgentIdentityBlueprint.ReadWrite.全部 | 高 | 4fd490fc-1467-48eb-8a4c-421597ab0402 |
| EntitlementManagement.ReadWrite.全部 | 高 | ae7a573d-81d7-432b-ad44-4ed5c9d89038 |
| Organization.ReadWrite.全部 | 高 | 46ca0847-7e6b-426e-9775-ea810a948356 |
| Policy.ReadWrite.PermissionGrant | 高 | 2672f8bb-fd5e-42e0-85e1-ec764dd2614e |
| RoleManagementPolicy.ReadWrite.AzureADGroup | 高 | 0da165c7-3f15-4236-b733-c0b0f6abe41d |
| RoleManagementPolicy.ReadWrite.目录 | 高 | 1ff1be21-34eb-448c-9ac9-ce1f506b2a68 |
| Policy.ReadWrite.AuthenticationMethod | 高 | 7e823077-d88e-468f-a337-e18f1f0e6c7c |
| User.DeleteRestore.全部 | 高 | 4bb440cd-2cf2-4f90-8004-aa2acd2537c5 |
| User.EnableDisableAccount.全部 | 高 | f92e74e7-2563-467f-9dd0-902688cb5863 |
| DelegatedPermissionGrant.ReadWrite.全部 | 高 | 41ce6ca6-6826-4807-84f1-1c82854f7ee5 |
| Policy.ReadWrite.ConditionalAccess | 高 | ad902697-1014-4ef5-81ef-2b4301988e8c |
| DeviceManagementConfiguration.ReadWrite.全部 | 高 | 0883f392-0a7a-443d-8c76-16a6d39c7b63 |
| DeviceManagementRBAC.ReadWrite.全部 | 高 | 0c5e8a55-87a6-4556-93ab-adc52c4d862d |
| Directory.ReadWrite.全部 | 高 | c5366453-9fb0-48a5-a156-24f0c49a4b84 |
| Group.ReadWrite.全部 | 高 | 4e46008b-f24c-477d-8fff-7bb4ec7aafe0 |
| GroupMember.ReadWrite.全部 | 高 | f81125ac-d3b7-4573-a3b2-7099cc39df9e |
| UserAuthenticationMethod.ReadWrite.全部 | 高 | b7887744-6746-4312-813d-72daeaee7e2d |
| Sites.FullControl.全部 | 高 | 5a54b8b3-347c-476d-8f8e-42d5c7424d29 |
| Sites.Manage.全部 | 高 | 65e50fdc-43b7-4915-933e-e8138f11f40a |
| 用户-PasswordProfile.ReadWrite.All | 高 | 56760768-b641-451f-8906-e1b8ab31bca7 |
| Sites.Read.全部 | 高 | 205e70e5-aba6-4c52-a976-6d2d46c48043 |
| Sites.ReadWrite.全部 | 高 | 89fe6a52-be36-487e-b7d8-d061c450a026 |
| Files.Read.全部 | 高 | df85f4d6-205c-4ac5-a5ea-6bf408dba283 |
| Files.ReadWrite.全部 | 高 | 863451e7-0667-486c-a5d6-d135439485f0 |
| DeviceLocalCredential.Read.全部 | 高 | 9917900e-410b-4d15-846e-42a357488545 |
| AdministrativeUnit.ReadWrite.全部 | 高 | 7b8a2d34-6b3f-4542-a343-54651608ad81 |
| User.ReadWrite.全部 | 中等 | 204e0828-b5ca-4ad8-b9f3-f32a958e7cc4 |
| Chat.ReadWrite.全部 | 中等 | 7e9a077b-3711-42b9-b7cb-5fa5f3f7fea7 |
| Mail.Read | 中等 | 570282fd-fa5c-430d-a7fd-fc8dc98a9dca |
| Mail.ReadWrite | 中等 | 024d486e-b451-40bb-833d-3e66d98c5c73 |
| Mail.Send | 中等 | e383f46e-2787-4529-855e-0e479a3ffac0 |
| CustomSecAttributeAssignment.ReadWrite.全部 | 中等 | ca46335e-8453-47cd-a001-8459884efeae |
| ServicePrincipalEndpoint.ReadWrite.全部 | 中等 | 7297d82c-9546-4aed-91df-3d4f0a9b3ff0 |
| BitlockerKey.Read.全部 | 中等 | b27a61ec-b99c-4d6a-b126-c4375d08ae30 |
| AiEnterpriseInteraction.Read | 中等 | 859cceb9-2ec2-4e48-bcd7-b8490b5248a5 |
| Calendars.Read | 中等 | 465a38f9-76ea-45b9-9f34-9e8b0d4b0b42 |
| Calendars.Read.共享 | 中等 | 2b9c4092-424d-4249-948d-b43879977640 |
| Calendars.ReadWrite | 中等 | 1ec239c2-d7c9-4623-a91a-a9775856bb36 |
| Calendars.ReadWrite.共享 | 中等 | 12466101-c9b8-439a-8589-dd09ee67e8e9 |
| ChannelMessage.Edit | 中等 | 2b61aa8a-6d36-4b2f-ac7b-f29867937c53 |
| ChannelMessage.ReadWrite | 中等 | 5922d31f-46c8-4404-9eaf-2117e390a8a4 |
| ChannelMessage.Send | 中等 | ebf0f66e-9fb1-49e4-a278-222f76911cf4 |
| ChatMessage.Send | 中等 | 116b7235-7cc6-461e-b163-8e55691d839e |
| Chat.ReadWrite | 中等 | 9ff7295e-131b-4d94-90e1-69fde507ac11 |
| Contacts.ReadWrite | 中等 | d56682ec-c09e-4743-aaf4-1a3aac4caa21 |
| Directory.AccessAsUser.全部 | 中等 | 0e263e50-5827-48a4-b97c-d940288653c7 |
| Directory.Read.全部 | 中等 | 06da0dbc-49e2-44d2-8312-53f166ab848a |
| EAS.AccessAsUser.全部 | 中等 | ff91d191-45a0-43fd-b837-bd682c4a0b0f |
| EntitlementMgmt-SubjectAccess.ReadWrite | 中等 | e9fdcbbb-8807-410f-b9ec-8d5468c7c2ac |
| EWS.AccessAsUser.全部 | 中等 | 9769c687-087d-48ac-9cb3-c37dde652038 |
| Files.ReadWrite | 中等 | 5c28f0bf-8a70-41f1-8ab2-9032436ddb65 |
| IMAP.AccessAsUser.全部 | 中等 | 652390e4-393a-48de-9484-05f9b1212954 |
| MailboxItem.ImportExport | 中等 | df96e8a0-f4e1-4ecf-8d83-a429f822cbd6 |
| MailboxFolder.Read | 中等 | 52dc2051-4958-4636-8f2a-281d39c6981c |
| MailboxFolder.ReadWrite | 中等 | 077fde41-7e0b-4c5b-bcd1-e9d743a30c80 |
| MailboxItem.Read | 中等 | 82305458-296d-4edd-8b0b-74dd74c34526 |
| MailboxSettings.ReadWrite | 中等 | 818c620a-27a9-40bd-a6a5-d96f7d610b4b |
| Notes.Read | 中等 | 371361e4-b9e2-4a3f-8315-2a301a3b0a3d |
| Notes.Read.全部 | 中等 | dfabfca6-ee36-4db2-8208-7a28381419b3 |
| Notes.ReadWrite | 中等 | 615e26af-c38a-4150-ae3e-c3b0d4cb1d6a |
| Notes.ReadWrite.全部 | 中等 | 64ac0503-b4fa-45d9-b544-71a463f05da0 |
| POP.AccessAsUser.全部 | 中等 | d7b7f2d9-0f45-4ea1-9d42-e50810c06991 |
| 离线访问 | 低 | 7427e0e9-2fba-42fe-b0c0-848c9e6a8182 |
| 开放ID | 低 | 37f7f235-527c-4136-accd-4a02d197296e |
| 电子邮件 | 低 | 64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0 |
| 简介 | 低 | 14dad69e-099b-42c9-810b-d002981feec1 |
| User.Read | 低 | 14dad69e-099b-42c9-810b-d002981feec1 |
Microsoft 第一方企业应用程序
默认情况下,会过滤掉 Microsoft 应用程序以简化企业应用程序的审查。使用 -IncludeMsApps 开关将它们包括在内。来自以下租户的应用程序被视为 Microsoft 所有:
已执行的检查
下表粗略总结了所执行的检查及其对评分的影响以及是否显示警告。
检测
EntraFalcon 不是隐秘的,可以在记录和监视 Microsoft Graph API 和 Azure 登录活动的环境中检测到。
使用的默认身份验证
当对非 BroCi 流执行完整枚举时,该工具通常会启动 4 次交互式登录和 1 次非交互式登录。根据流程和端点支持,安全结果策略端点可能会发生一次额外的交互式登录。
| 应用 ID | 类型 | 资源 ID | 目的 |
|---|---|---|---|
| 1b730954-1685-4b74-9bfd-dac224a7b894 | 互动 | 00000003-0000-0000-c000-000000000000 | 检索 PIM 的组数据 |
| 04b07795-8ddb-461a-bbee-02f9e1bf7b46 | 互动 | 00000003-0000-0000-c000-000000000000 | 检索一般租户对象数据 |
| 51f81489-12ee-4a9e-aaae-a2591f45987d | 互动 | 00000003-0000-0000-c000-000000000000 | 检索 Entra / Azure 角色的 PIM |
| 80ccca67-54bd-44ab-8625-4b79c4dc7775 | 互动 | 00000003-0000-0000-c000-000000000000 | 检索安全调查结果策略上下文 |
| 04b07795-8ddb-461a-bbee-02f9e1bf7b46 | 非交互式 | 797f4846-ba00-4fd7-ba43-dac1f8f63013 | 检索 Azure IAM 角色分配数据 |
BroCi 已使用身份验证
当使用BroCi认证时,仅发生一次交互式登录。
| 应用 ID | 类型 | 资源 ID | 目的 |
|---|---|---|---|
| c44b4083-3bb0-49c1-b47d-974e53cbdf3c | 互动 | 00000003-0000-0000-c000-000000000000 | 使用 BroCi 刷新令牌的初始身份验证 |
| 50aaa389-5a33-4f1a-91d7-2c45ecd8dac8 | 非交互式 | 00000003-0000-0000-c000-000000000000 | 检索 PIM 的组数据 |
| 50aaa389-5a33-4f1a-91d7-2c45ecd8dac8 | 非交互式 | 01fc33a7-78ba-4d2f-a4b7-768e336e890e | 检索 PIM 的组数据 |
| 74658136-14ec-4630-ad9b-26e160ff0fc6 | 非交互式 | 00000003-0000-0000-c000-000000000000 | 检索一般租户对象数据 |
| 74658136-14ec-4630-ad9b-26e160ff0fc6 | 非交互式 | 797f4846-ba00-4fd7-ba43-dac1f8f63013 | 检索 Azure IAM 角色分配数据 |
当 BroCi 启用时,EntraFalcon 还会查询 api.azrbac.mspim.azure.com 的 PIM 的组。
详情
对于数据收集,该工具会向 Microsoft Graph API 和 Azure ARM API(可选)发送多个请求 - 每个对象一个或多个。在可能的情况下,它利用 Graph Batch 端点来减少单个请求的数量并提高效率。
交互式登录使用浏览器的用户代理。所有非交互式登录和 API 请求(图形和 ARM)均使用 EntraFalcon 作为用户代理,除非使用 -UserAgent 参数进行更改。
要检测 EntraFalcon 的使用情况,蓝队可以坚控登录日志中列出的应用程序 IDs,查找图表 API 流量的异常量,或分析令牌刷新和批量请求行为。
已知限制
-ExportCapUncoveredUsers 是基于枚举用户、组成员、角色分配和可解析的外部用户类别的尽力计算。仅针对匹配 b2bCollaborationGuest 的租户来宾用户解析外部用户选择器。其他外部用户类型或具有指定外部租户的外部用户可以使覆盖率值近似。符合条件的 PIM 路径被报告为潜在覆盖范围,不计入当前覆盖范围。 CSV 导出仅限于启用的策略和启用的用户。集成外部工具
以下子模块已分叉并集成到 EntraFalcon 中,以支持身份验证、Microsoft Graph 交互和报告图表: