一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

EntraFalcon:实践指南

时间:2026-09-10 19:50:01 编辑:袖梨 来源:一聚教程网

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

CompassSecurity/EntraFalcon 项目截图 1

EntraFalcon

EntraFalcon 是一款 PowerShell-based 评估工具,供渗透测试人员、安全分析师和系统管理员评估 Microsoft Entra ID 环境的安全态势。

EntraFalcon 专为易用性而设计,在 PowerShell 5.1 和 7 上运行,支持 Windows 和 Linux,并且不需要额外的 PowerShell 模块、额外安装或 Microsoft Graph API 同意。

该工具有助于发现经常被忽视的特权对象、潜在风险分配和条件访问错误配置,例如:

  • 拥有高权限组或应用程序控制权的用户
  • 具有过多权限的外部或内部企业应用程序(e.g.、Microsoft Graph API、Azure 角色)
  • 直接在资源上分配 Azure IAM 角色的用户
  • 从本地同步的特权帐户
  • 非活动用户或不具备 MFA 能力的用户
  • 敏感分配中使用的不受保护的组(e.g.、条件访问排除、订阅所有者或特权组的合格成员)

结果以交互式 HTML 报告的形式呈现,以支持高效的探索和分析。

特点

  • 简单的 PowerShell 脚本与 PowerShell 5.1 和 7 兼容。适用于 Windows 和 Linux
  • 内置认证支持多种方式
  • 使用具有预先同意范围的第一方 Microsoft 应用程序来绕过 Graph API 同意提示
  • 生成可导航的 HTML 报告,支持过滤、排序、数据导出等。
  • 执行超过 80 项自动检查并在安全调查报告中总结结果
    • 包括检查弱租户配置和有风险的对象属性或权限
    • 提供严重性评级以及问题、潜在威胁和补救指南的描述
    • 列出受影响的对象并直接链接到其详细报告以供进一步调查
  • 执行基本影响、可能性和风险评分,以突出显示保护较弱的高权限对象并对数据进行排序。
  • 显示有关有风险的配置和提升的权限的警告
  • 枚举 Entra ID 对象,包括:
    • 用户(包括代理用户)
    • 团体
    • 企业应用
    • 应用程序注册
    • 托管身份
    • 代理身份 (BETA)
    • 代理身份蓝图主体 (BETA)
    • 特工身份蓝图 (BETA)
    • PIM 分配:
      • PIM 适用于 Entra 角色
      • PIM 适用于 Entra 组
      • 适用于 Azure 角色的 PIM
    • 内部角色分配
    • Azure 角色分配
    • 条件访问策略
    • 行政单位
    • PIM 设置:
      • PIM 适用于 Entra 角色
      • PIM 适用于组(仅 BroCi 身份验证)

✅ 要求

类型 许可 强制 缺失影响
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-004CAP-005)。

.run_EntraFalcon.ps1 -AuthFlow DeviceCode

使用Auth Code+手动代码流认证

.run_EntraFalcon.ps1 -AuthFlow ManualCode
  1. 该脚本将身份验证 URL 复制到剪贴板。
  2. 将 URL 粘贴到浏览器中(可以选择粘贴到另一台设备上以支持 SSO)。
  3. 完成认证。
  4. 将最终重定向 URL 从浏览器地址栏(包含授权码)复制到剪贴板。
  5. 按 Enter 继续;脚本从剪贴板读取代码并完成令牌获取。

BroCi + 手动代码流程

.run_EntraFalcon.ps1 -AuthFlow BroCiManualCode
  1. 该脚本将身份验证 URL 复制到剪贴板。
  2. 将 URL 粘贴到浏览器中(可以选择粘贴到另一台设备上以支持 SSO)。
  3. 打开浏览器开发者工具,然后在“网络”选项卡中启用 Preserve log
  4. 完成认证。
  5. 在网络日志中搜索 code=1. 并将包含代码的请求 URL 复制到剪贴板。
  6. 按 Enter 继续;脚本从剪贴板读取代码并完成令牌获取。

BroCi 带令牌

如果有效的 Azure 门户刷新令牌已可用(客户端 c44b4083-3bb0-49c1-b47d-974e53cbdf3c),则可以直接使用它。 示例:从浏览器获取刷新令牌

  1. 打开浏览器开发人员工具,然后在“网络”选项卡中启用“保留日志”。
  2. 在 https://entra.microsoft.com. 进行身份验证
  3. 在网络日志中搜索 brk_client_id=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(默认)、VerboseDebugTrace Off
ApiTop 设置从 API 返回的对象的最大数量。较低的值会降低超时风险 (HTTP 504),但会增加请求计数。 999(有效范围:5–999)
AuthFlow 首选的身份验证流程选择器。值:BroCi(默认)、AuthCodeDeviceCodeManualCodeBroCiManualCodeBroCiTokenServicePrincipal 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 报告

一般

  • 单击 ⚙ 按钮可显示或隐藏特定列。
  • 单击 导出 CSV 将当前可见数据下载为 CSV 文件。
  • 单击 共享视图 将筛选器、排序和列选择复制为可共享链接。
  • 单击 预设视图 以应用预配置的过滤器和列选择。
  • 单击 重置视图 将视图重置为默认值。
  • 单击对象名称可跳转至详细信息,甚至在其他报告中也是如此。
  • 使用内部导航时,按浏览器的后退按钮返回。
  • 某些表标题字段会在鼠标悬停时显示帮助文本。
  • 通过单击表标题对数据进行排序。

过滤

  • 如果未指定运算符,则过滤默认为contains
  • 使用 = 进行精确匹配。
  • 使用 ^ 表示开头为(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 逻辑,请直接在过滤器字段中使用 or_group1_group2_...。示例:第 1 列:or_>1,第 2 列:or_!Mallory
  • 注意: DisplayName 列还包括对象的 ID(不可见),因此也可以按 ID 进行过滤。

使用 GET 参数进行控制

  • 过滤:使用字段名称作为 HTTP GET 参数、e.g.、?EntraRoles=>1&Enabled=true 来应用过滤器。
    要跨列应用 OR 逻辑,请在 (e.g.、?or_EntraRoles=>0&or_GrpMem=>0) 中使用 or_group1_ 前缀。
  • 列选择:使用 columns 参数选择要显示的列。示例:?columns=DisplayName,Owner
  • 排序:使用sortsortDir参数对数据进行排序。示例:?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 所有:

  • f8cdef31-a31e-4b4a-93e4-5f571e91255a
  • 72f988bf-86f1-41af-91ab-2d7cd011db47
  • 33e01921-4d64-4f8c-a055-5bdaffd5e33d
  • cdc5aeea-15c5-4db6-b079-fcadd2505dc2

已执行的检查

下表粗略总结了所执行的检查及其对评分的影响以及是否显示警告。

检测

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 流量的异常量,或分析令牌刷新和批量请求行为。

已知限制

  • M365 RBAC:未评估
  • 端点防御者 RBAC:未评估
  • Intune RBAC:未评估
  • 条件访问用户覆盖率:有效用户覆盖率和 -ExportCapUncoveredUsers 是基于枚举用户、组成员、角色分配和可解析的外部用户类别的尽力计算。仅针对匹配 b2bCollaborationGuest 的租户来宾用户解析外部用户选择器。其他外部用户类型或具有指定外部租户的外部用户可以使覆盖率值近似。符合条件的 PIM 路径被报告为潜在覆盖范围,不计入当前覆盖范围。 CSV 导出仅限于启用的策略和启用的用户。
  • 云环境:云平台发展迅速。因此,随着时间的推移,一些评估或检测可能会变得过时或不准确。此外,租户变得越来越复杂,特定的配置或设置组合可能会导致结果不准确。虽然我们努力使 EntraFalcon 保持最新状态,但始终建议独立验证结果,而不是仅仅依赖该工具来做出关键决策。
  • HTML 报告:生成的 HTML 报告未实现针对跨站点脚本编写的保护机制 (XSS)。

集成外部工具

以下子模块已分叉并集成到 EntraFalcon 中,以支持身份验证、Microsoft Graph 交互和报告图表:

  • EntraTokenAid
  • GraphRequest
  • 发送-ApiRequest
  • GraphBatchRequest
  • Chart.js

热门栏目