EntraFalcon — 一个轻量级 PowerShell 工具,用于评估 Microsoft Entra ID 环境的安全态势。它有助于识别特权对象、风险分配和潜在的错误配置。 | Kitploit
compasssecurity/entrafalconEntraFalcon
一个轻量级 PowerShell 工具,用于评估 Microsoft Entra ID 环境的安全态势。它有助于识别特权对象、风险分配和潜在的错误配置。
458471216天前
EntraFalcon

EntraFalcon 是一款基于 PowerShell 的评估工具,供渗透测试人员、安全分析师和系统管理员评估 Microsoft Entra ID 环境的安全态势。
EntraFalcon 专为易用性而设计,可在 PowerShell 5.1 和 7 上运行,支持 Windows 和 Linux,且无需额外的 PowerShell 模块、额外安装或 Microsoft Graph API 同意。
该工具可帮助发现特权对象、潜在风险分配以及常被忽视的条件访问配置错误,例如:
- 对高特权组或应用程序具有控制权的用户
- 具有过度权限的外部或内部企业应用程序(例如 Microsoft Graph API、Azure 角色)
- 直接在资源上具有 Azure IAM 角色分配的用户
- 从本地同步的特权账户
- 非活跃用户或无 MFA 能力的用户
- 用于敏感分配(例如条件访问排除、订阅所有者或特权组的合格成员)的未受保护组
调查结果以交互式 HTML 报告形式呈现,以支持高效的探索和分析。
🚀 功能特性
- 简单的 PowerShell 脚本,兼容 PowerShell 5.1 和 7。适用于 Windows 和 Linux
- 内置身份验证,支持多种方法
- 使用具有预同意作用域的第一方 Microsoft 应用程序,以绕过 Graph API 同意提示
- 生成可导航的 HTML 报告,支持筛选、排序、数据导出等
- 执行超过 90 项自动化检查,并在安全发现报告中汇总结果
- 包括对薄弱租户配置以及风险对象属性或权限的检查
- 提供严重性评级以及问题描述、潜在威胁和修复指导
- 列出受影响对象,并直接链接到其详细报告以供进一步调查
- 执行基本的影响、可能性和风险评分,以突出保护薄弱的高特权对象并对数据进行排序
- 显示风险配置和提升权限的警告
- 枚举 Entra ID 对象,包括:
- 用户(包括代理用户)
- 组
- 企业应用程序
- 应用注册
- 托管标识
- 代理标识
- 代理标识蓝图主体
- 代理标识蓝图
- PIM 分配:
- 用于 Entra 角色的 PIM
- 用于组的 PIM
- 用于 Azure 角色的 PIM
- Entra 角色分配
- Azure 角色分配
- Intune RBAC 分配
- 访问包
- 权利管理目录
- 目录 RBAC
- 条件访问策略
- 管理单元
- PIM 设置:
- 用于 Entra 角色的 PIM
- 用于组的 PIM(仅限 BroCi 身份验证)
✅ 要求
| 类型 | 权限 | 必需 | 缺失时的影响 |
|---|
| Entra ID 角色 | 全局读取者 | 是 | 无法运行脚本 |
| Azure 角色 | 读取者:在每个管理组或订阅上 | 否 | 无法评估 Azure IAM 分配 |
此外,您必须能够从运行该工具的设备上对 Microsoft Graph API 以及可选的 Azure ARM API 进行身份验证。
确保条件访问策略不会阻止您的身份验证。
▶️ 使用方法
下载 EntraFalcon
注意:你可能需要临时更改 PowerShell 执行策略才能运行该脚本。
仅对受信任的脚本执行此操作!```
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
运行 EntraFalcon
EntraFalcon 内置了对 Entra ID 身份验证的支持。使用 -AuthFlow 选择身份验证流程。
| 推荐流程 | 最适合 | 平台 | 覆盖范围 |
|---|
BroCi (默认) | 交互式 Windows 运行 | Windows | 完整 |
BroCiManualCode | 在其他浏览器中进行身份验证 | Windows、Linux、macOS | 完整 |
BroCiToken | 现有的 Azure 门户刷新令牌 | Windows、Linux、macOS | 完整 |
ServicePrincipal | 自动化 / CI | Windows、Linux、macOS | 完整 |
BroCi 需要一次交互式登录。BroCiToken 和 ServicePrincipal 无需交互式登录。回退用户流程可能需要多次交互式登录,因为会分别请求不同的资源令牌。
回退身份验证流程
由于缺少预先同意的一方应用程序,回退流程无法执行完整枚举(PIM for Groups、Access Packages、Catalogs)。因此,它们目前仅作为回退选项。
| 流程 | 仅在以下情况使用 | 平台 | 限制 |
|---|
AuthCode | 需要旧版兼容性 | Windows | 部分覆盖。无独立的 PIM for Groups、Access Packages 或 Catalogs 报告。 |
DeviceCode | 无法进行基于浏览器的身份验证 | Windows、Linux、macOS | 部分覆盖。无独立的 PIM for Groups、Access Packages 或 Catalogs 报告。部分安全发现检查以降低深度运行。 |
ManualCode | 必须通过单独的浏览器会话完成身份验证 | Windows、Linux、macOS | 部分覆盖。无独立的 PIM for Groups、Access Packages 或 Catalogs 报告。 |
推荐:BroCi 流程(默认 / 仅限 Windows)
BroCi 使用备用的一方应用程序,仅需一次交互式登录。
当 Azure Active Directory PowerShell 客户端需要分配且必须避免时,此流程非常有用。```powershell
.\run_EntraFalcon.ps1
显式 BroCi 选择:```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCi
推荐:BroCi + 手动代码流程```powershell
.\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. 打开浏览器开发者工具,在“网络”选项卡中启用 Preserve log。
2. 在 https://entra.microsoft.com 进行认证。
3. 在网络日志中搜索 `brk_client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c`,并从响应中提取刷新令牌。```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiToken -BroCiToken "1.XXXXXXXXXXX"
推荐:服务主体
使用 OAuth2 客户端凭据授权以已注册应用程序的身份进行身份验证——无需用户交互。
适用于重复的自动化执行。
需要自定义 Entra 应用注册,并具有 Application 类型的 Graph API 权限(见下文)。
使用客户端机密:```powershell
.\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "" -SPClientSecret ""
**使用 PFX 证书:**```powershell
.\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "<AppId>" -SPCertificatePath "C:\certs\app.pfx"
对于受密码保护的 PFX,请添加 -SPCertificatePassword (Read-Host -Prompt "Certificate password" -AsSecureString)。
使用 PEM 证书 + 私钥(仅限 PowerShell 7+):```powershell
.\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "" -SPCertificatePemPath "C:\certs\cert.pem" -SPPrivateKeyPemPath "C:\certs\key.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` | 应用程序 |
| `EntitlementManagement.Read.All` | 应用程序 |
| `Group.Read.All` | 应用程序 |
| `Organization.Read.All` | 应用程序 |
| `Policy.Read.All` | 应用程序 |
| `PrivilegedAccess.Read.AzureADGroup` | 应用程序 |
| `RoleManagement.Read.Directory` | 应用程序 |
| `RoleManagementPolicy.Read.AzureADGroup` | 应用程序 |
| `User.Read.All` | 应用程序 |
| `DeviceManagementRBAC.Read.All` | 应用程序 |
此外,在根管理组(或每个相关订阅)上为服务主体分配**Azure 读取者**角色,并可选地在 Entra ID 中为其分配**全局读取者**角色(用于获取每用户 MFA 状态所必需)。
#### 回退方案:授权码流程(仅限 Windows)```powershell
.\run_EntraFalcon.ps1 -AuthFlow AuthCode
回退:设备代码流(Device Code Flow)
在加固环境中,该流程通常受条件访问(Conditional Access)限制。
使用 DeviceCode 时,会以降低的深度运行两项安全发现检查(CAP-004 和 CAP-005)。```powershell
.\run_EntraFalcon.ps1 -AuthFlow DeviceCode
#### 回退:授权码 + 手动代码流程```powershell
.\run_EntraFalcon.ps1 -AuthFlow ManualCode
- 脚本将认证 URL 复制到剪贴板。
- 将 URL 粘贴到浏览器中(可选在其他设备上以支持 SSO)。
- 完成认证。
- 从浏览器地址栏复制最终的重定向 URL(包含授权码)到剪贴板。
- 按 Enter 继续;脚本从剪贴板读取授权码并完成令牌获取。
其他参数
包含 Microsoft 拥有的企业应用
默认情况下,官方 Microsoft 企业应用会被排除在评估之外以减少干扰。要将其纳入枚举和分析,请使用 -IncludeMsApps 开关:```powershell
.\run_EntraFalcon.ps1 -IncludeMsApps
#### 跳过组的 PIM 评估
使用 `-SkipPimForGroups` 开关可跳过组的 PIM 预收集和增强。
这也会跳过独立的 `PIM for Groups` 设置报告。```powershell
.\run_EntraFalcon.ps1 -SkipPimForGroups
其他可选参数
| 参数 | 描述 | 默认值 |
|---|
| UserAgent | 用于向令牌端点和 API 调用发起请求的用户代理。 | EntraFalcon |
| DisableCAE | 禁用请求持续访问评估(CAE)令牌。 | false |
| Tenant | 指定要认证的租户(ID 或域名)。在评估非账户主租户时非常有用。 | 账户的主租户 |
| 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 | 用于 AuthFlow BroCiToken 的 Azure 门户刷新令牌。 | - |
| SPClientId | 服务主体的应用程序(客户端)ID。-AuthFlow ServicePrincipal 必需。 | - |
| SPClientSecret | 服务主体的客户端机密。与 -AuthFlow ServicePrincipal 一起使用。 | - |
| SPCertificatePath | 用于服务主体认证的 PFX/P12 证书文件路径。 | - |
| SPCertificatePassword | -SPCertificatePath 指定的 PFX 证书的密码(SecureString)。 | - |
| SPCertificatePemPath | PEM 证书文件路径。与 -SPPrivateKeyPemPath 一起使用。 | - |
|
📊 示例报告
安全发现报告
用户
用户(详细信息部分)
Entra ID 角色
Azure 角色
企业应用程序(详细信息部分)
条件访问策略
条件访问策略(详细信息部分)
PIM 角色设置(Entra)
代理身份
枚举摘要
📑 HTML 报告
常规
- 点击 ⚙️ 列 按钮以显示或隐藏特定列。
- 点击 💾 导出 以下载当前可见数据的 CSV/JSON 或复制 CSV/TSV/JSON。
- 点击 👁 共享视图 以将筛选器、排序和列选择复制为可共享的链接。
- 点击 🧰 预设视图 以应用预配置的筛选器和列选择。
- 点击 🔄 重置视图 以将视图重置为默认状态。
- 点击对象名称以跳转到详细信息,即使在其他报告中也可以。
- 使用内部导航时,按浏览器的后退按钮返回。
- 某些表头字段在鼠标悬停时显示帮助文本。
- 点击表头对数据进行排序。
- Alt+点击主表列标题可快速隐藏该列。
- Alt+点击主表内容行可暂时隐藏该行。使用隐藏行标签或重置视图可再次显示隐藏的行。
筛选
- 如果未指定运算符,筛选默认为包含。
- 使用
= 进行精确匹配。
- 使用
^ 表示开头为(例如,^Mallory)。
- 使用
$ 表示结尾为(例如,$domain.ch)。
- 支持比较运算符,如
>、<、>=、<=(仅限数值)。
- 筛选条件可通过以
! 开头来取反(数值比较除外)。示例:!Mallory、!=Mallory、!^Mallory 或 !$domain.ch。
- 使用
=empty 匹配空单元格,或使用 !=empty 匹配非空单元格。
- 使用
|| 匹配同一列中的多个值中的任意一个(例如,Admin || Guest)。
- 使用
&& 要求同一列中满足多个匹配(例如,!adm && !svc && !sql)。
- 要在各列之间应用 OR 逻辑,请在筛选字段中直接使用
or_、group1_、group2_...。示例:在第 1 列中:or_>1,在第 2 列中:or_!Mallory。
- 注意: DisplayName 列还包含对象的 ID(不可见),因此也可以按 ID 进行筛选。
使用 GET 参数进行控制
- 筛选:使用字段名称作为 HTTP GET 参数应用筛选条件,例如,
?EntraRoles=>1&Enabled=true。
要在各列之间应用 OR 逻辑,请使用 or_ 或 group1_ 前缀(例如,?or_EntraRoles=>0&or_GrpMem=>0)。
- 列选择:使用
columns 参数选择要显示的列。示例:?columns=DisplayName,Owner。
- 排序:使用
sort 和 sortDir 参数对数据进行排序。示例:?sort=Impact&sortDir=desc 或 ?sort=OwnerCount&sortDir=asc。
- 对象详细信息:使用锚点(
#)和对象 ID 直接跳转到报告中的特定对象,例如 #%ObjectID%。
评级
- 影响:表示对象拥有的权限的数量或严重程度。
- 可能性:表示对象被影响的难易程度或其受保护的程度。
- 风险:计算得分:影响 × 可能性 = 风险。
- 重要:
- 此评分旨在作为基本评估,帮助对表中的条目进行排序和优先级划分。
- 风险得分在不同对象类型或报告之间不可直接比较。
- 它不旨在替代完整的风险评估。
🔧 底层机制
角色分类
Entra ID 和 Azure 角色大致分为不同的层级。此分类会影响分配给这些角色的对象的影响得分。
目标是让拥有更强角色的用户(例如,全局管理员)获得比拥有较不关键角色的用户(例如,全局读取者)更高的影响得分,即使两者都被 Microsoft 视为特权角色。
注意:
对于 Azure 角色,此分类不太精确,因为实际影响在很大程度上取决于角色分配的范围。例如,单个虚拟机上的 Owner 角色与将相同角色应用于整个订阅时相比,影响要小得多。它也可能是一个没有任何资源的测试订阅。
Entra ID 角色
| 角色名称 | 层级 | GUID |
|---|
| 全局管理员 | 0 | 62e90394-69f5-4237-9190-012177145e10 |
| 合作伙伴 Tier2 支持 | 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 |
| Entra SOC 身份响应者 | 1 | 58f930cc-fcf4-4152-852c-1d7dbf502139 |
| Exchange 管理员 | 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 |
|
Azure 角色
| 角色名称 | 层级 | GUID |
|---|
| 所有者 | 0 | 8e3af657-a8ff-443c-a75c-2fe8c4bcb635 |
| 用户访问管理员 | 0 | 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9 |
| 参与者 | 0 | b24988ac-6180-42a0-ab88-20f7382dd24c |
| 基于角色的访问控制管理员 | 0 | f58310d9-a9f6-439a-9e8d-f62e7b41a168 |
| 预留管理员 | 0 | a8889054-8d42-49c9-bc1c-52486c10e7cd |
| 安全管理员 | 1 | fb1c8493-542b-48eb-b624-b4c8fea62acd |
| 虚拟机参与者 | 1 | 9980e02c-c2be-4d73-94e8-173b1dc7cf3c |
| 虚拟机数据访问管理员 | 1 | 66f75aeb-eabe-4b70-9f1e-c350c4c9ad04 |
| 虚拟机管理员登录 | 1 | 1c0163c0-47e6-4577-8991-ea5c82e286e4 |
| Windows 管理中心管理员登录 | 1 | a6333a3e-0164-44c3-b281-7a577aff287f |
| 容器注册表参与者和数据访问配置管理员 | 1 | 3bc748fc-213d-45c1-8d91-9da5725539b9 |
| 密钥保管库管理员 | 1 | 00482a5a-887f-4fb3-b363-3b7fe8e74483 |
| 密钥保管库数据访问管理员 | 1 | 8b54135c-b56d-4d72-a534-26097cfdc8d8 |
| 密钥保管库机密官员 | 1 | b86a8fe4-44ce-4948-aee5-eccb2c155cd7 |
| 密钥保管库机密用户 | 1 | 4633458b-17de-408a-b874-0445c86b69e6 |
| Azure Kubernetes 服务 RBAC 管理员 | 1 | 3498e952-d568-435e-9b2c-8d77e338d7f7 |
| Azure Kubernetes 服务 RBAC 集群管理员 | 1 | b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b |
| Azure Arc Kubernetes 管理员 | 1 | dffb1e0c-446f-4dde-a09f-99eb5cc68b96 |
| Azure Arc Kubernetes 集群管理员 | 1 | 8393591c-06b9-48a2-a542-1bd6b377f6a2 |
| Azure Arc VMware VM 参与者 | 1 | b748a06d-6150-4f8a-aaa9-ce3940cd96cb |
| 存储账户参与者 | 1 | 17d1049b-9a84-46fb-8f53-869881c3d3ab |
| 读取者 | 2 | acdd72a7-3385-48ef-bd42-f606fba81ae7 |
| 安全读取者 | 2 | 39bc4728-0917-49c7-9d2c-d95423bc2eb4 |
| 虚拟机用户登录 | 3 | fb879df8-f326-4884-b1cf-06f3ad86be52 |
| 桌面虚拟化用户 | 3 | 1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63 |
API 权限分类
某些 API 权限允许应用程序直接提升为全局管理员权限。因此,多个 API 权限被分类为不同的严重级别。此分类会影响分配了这些权限的应用程序的影响得分——无论是作为应用程序权限还是作为用户的委派权限。
应用程序权限
| 权限 | 严重性 | GUID |
|-------------------------------------------------------------|------------|----------------------------------------|
| RoleManagement.ReadWrite.Directory | 危险 | 9e3f62cf-ca93-4989-b6ce-bf83c28f9fe8 |
| AppRoleAssignment.ReadWrite.All | 危险 | 06b708a9-e830-4db3-a914-8e69da51d44f |
| Application.ReadWrite.All | 危险 | 1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9 |
| RoleAssignmentSchedule.ReadWrite.Directory | 危险 | dd199f4a-f148-40a4-a2ec-f0069cc799ec |
| PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup | 危险 | 41202f2c-f7ab-45be-b001-85c9728b9d69 |
| PrivilegedAccess.ReadWrite.AzureADGroup | 危险 | 2f6817f8-7b12-4f0f-bc18-eeaf60705a9e |
| RoleEligibilitySchedule.ReadWrite.Directory | 危险 | fee28b28-e1f3-4841-818e-2704dc62245f |
| PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup | 危险 | 618b6020-bca8-4de6-99f6-ef445fa4d857 |
| Domain.ReadWrite.All | 危险 | 7e05723c-0bb0-42da-be95-ae9f08a6e53c |
| Application.ReadUpdate.All | 危险 | fc023787-fd04-4e44-9bc7-d454f00c0f0a |
| AgentIdentityBlueprint.ReadWrite.All | 高 | 7fddd33b-d884-4ec0-8696-72cff90ff825 |
| AgentIdentityBlueprint.AddRemoveCreds.All | 高 | 0510736e-bdfb-4b37-9a1f-89b4a074763a |
| ADSynchronization.ReadWrite.All | 高 | ab43b826-2c7a-4aff-9ecd-d0629d0ca6a9 |
| EntitlementManagement.ReadWrite.All | 高 | 9acd699f-1e81-4958-b001-93b1d2506e19 |
| Organization.ReadWrite.All | 高 | 292d869f-3427-49a8-9dab-8c70152b74e9 |
| Policy.ReadWrite.PermissionGrant | 高 | a402ca1c-2696-4531-972d-6e5ee4aa11ea |
| RoleManagementPolicy.ReadWrite.AzureADGroup | 高 | b38dcc4d-a239-4ed6-aa84-6c65b284f97c |
| RoleManagementPolicy.ReadWrite.Directory | 高 | 31e08e0a-d3f7-4ca2-ac39-7343fb83e8ad |
| Policy.ReadWrite.AuthenticationMethod | 高 | 29c18626-4985-4dcd-85c0-193eef327366 |
| User.DeleteRestore.All | 高 | eccc023d-eccf-4e7b-9683-8813ab36cecc |
| User.EnableDisableAccount.All | 高 | 3011c876-62b7-4ada-afa2-506cbbecc68c |
| DelegatedPermissionGrant.ReadWrite.All | 高 | 8e8e4742-1d95-4f68-9d56-6ee75648c72a |
| Policy.ReadWrite.ConditionalAccess | 高 | 01c0a623-fc9b-48e9-b794-0756f8e8f067 |
| DeviceManagementConfiguration.ReadWrite.All | 高 | 9241abd9-d0e6-425a-bd4f-47ba86e767a4 |
| DeviceManagementRBAC.ReadWrite.All | 高 | e330c4f0-4170-414e-a55a-2f022ec2b57b |
| Directory.ReadWrite.All | 高 | 19dbc75e-c2e2-444c-a770-ec69d8559fc7 |
| Group.ReadWrite.All | 高 | 62a82d76-70ea-41e2-9197-370581804d09 |
| GroupMember.ReadWrite.All | 高 | dbaae8cf-10b5-4b86-a4a1-f871c94c6695 |
| UserAuthenticationMethod.ReadWrite.All | 高 | 50483e42-d915-4231-9639-7fdb7fd190e5 |
| User-PasswordProfile.ReadWrite.All | 高 | cc117bb9-00cf-4eb8-b580-ea2a878fe8f7 |
| Sites.FullControl.All | 高 | a82116e5-55eb-4c41-a434-62fe8a61c773 |
| Sites.FullControl.All SharePointAPI | 高 | 678536fe-1083-478a-9c59-b99265e6b0d3 |
| Sites.Manage.All SharePointAPI | 高 | 9bff6588-13f2-4c48-bbf2-ddab62256b36 |
| Sites.Read.All SharePointAPI | 高 | d13f72ca-a275-4b96-b789-48ebcc4da984 |
| Sites.ReadWrite.All SharePointAPI | 高 | fbcd29d2-fcca-4405-aded-518d457caae4 |
| Sites.Manage.All | 高 | 0c0bf378-bf22-4481-8f81-9e89a9b4960a |
| Sites.Read.All | 高 | 332a536c-c7ef-4017-ab91-336970924f0d |
| Sites.ReadWrite.All | 高 | 9492366f-7969-46a4-8d15-ed1a20078fff |
| Files.Read.All | 高 | 01d4889c-1287-42c6-ac1f-5d1e02578ef6 |
| Files.ReadWrite.All | 高 | 75359482-378d-4052-8f01-80520e7db3cd |
| DeviceLocalCredential.Read.All | 高 | db51be59-e728-414b-b800-e0f010df1a79 |
| AdministrativeUnit.ReadWrite.All | 高 | 5eb59dd3-1da2-4329-8733-9dabdc435916 |
| UserAuthMethod-HardwareOATH.ReadWrite.All | 高 | 7e9ebcc1-90aa-4471-8051-e68d6b4e9c89 |
| UserAuthMethod-Phone.ReadWrite.All | 高 | 6e85d483-7092-4375-babe-0a94a8213a58 |
| UserAuthMethod-QR.ReadWrite.All | 高 | 4869299f-18c3-40c8-98f2-222657e67db1 |
| UserAuthMethod-TAP.ReadWrite.All | 高 | 627169a8-8c15-451c-861a-5b80e383de5c |
| User.ReadWrite.All | 中 | 741f803b-c850-494e-b5df-cde7c675a1ca |
| Application.ReadWrite.OwnedBy | 中 | 18a4783c-866b-4cc7-a460-3d5e5662c884 |
| Chat.Read.All | 中 | 6b7d71aa-70aa-4810-a8d9-5d9fb2830017 |
| Chat.ReadWrite.All | 中 | 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.All | 中 | 57f1cf28-c0c4-4ec3-9a30-19a2eaaf2f6e |
| Mail.Send | 中 | b633e1c5-b582-4048-a93e-9f11b44c7e96 |
| OnlineMeetings.ReadWrite.All | 中 | b8bb2037-6e08-44ac-a4ea-4674e010e2a4 |
| CustomSecAttributeAssignment.ReadWrite.All | 中 | de89b5e4-5b8f-48eb-8925-29c2b33bd8bd |
| ServicePrincipalEndpoint.ReadWrite.All | 中 | 89c8469c-83ad-45f7-8ff2-6e3d4285709e |
| AgentIdUser.ReadWrite.IdentityParentedBy | 中 | 4aa6e624-eee0-40ab-bdd8-f9639038a614 |
| AgentIdentity.CreateAsManager | 低 | 4c390976-b2b7-42e0-9187-c6be3bead001 |
委派权限
| 权限 | 严重性 | GUID |
|---|
| RoleManagement.ReadWrite.Directory | 危险 | d01b97e9-cbc0-49fe-810a-750afd5527a3 |
| AppRoleAssignment.ReadWrite.All | 危险 | 84bccea3-f856-4a8a-967b-dbe0a3d53a64 |
| Application.ReadWrite.All | 危险 | bdfbf15f-ee85-4955-8675-146e8e5296b5 |
| RoleAssignmentSchedule.ReadWrite.Directory | 危险 | 8c026be3-8e26-4774-9372-8d5d6f21daff |
| PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup | 危险 | 06dbc45d-6708-4ef0-a797-f797ee68bf4b |
| PrivilegedAccess.ReadWrite.AzureADGroup | 危险 | 32531c59-1f32-461f-b8df-6f8a3b89f73b |
| RoleEligibilitySchedule.ReadWrite.Directory | 危险 | 62ade113-f8e0-4bf9-a6ba-5acb31db32fd |
| PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup | 危险 | ba974594-d163-484e-ba39-c330d5897667 |
| Domain.ReadWrite.All | 危险 | 0b5d694c-a244-4bde-86e6-eb5cd07730fe |
| Application.ReadUpdate.All | 危险 | 0586a906-4d89-4de8-b3c8-1aacdcc0c679 |
| AgentIdentityBlueprint.AddRemoveCreds.All | 高 | 75b5feb2-bfe7-423f-907d-cc505186f246 |
| AgentIdentityBlueprint.ReadWrite.All | 高 | 4fd490fc-1467-48eb-8a4c-421597ab0402 |
| EntitlementManagement.ReadWrite.All | 高 | ae7a573d-81d7-432b-ad44-4ed5c9d89038 |
| Organization.ReadWrite.All | 高 | 46ca0847-7e6b-426e-9775-ea810a948356 |
| Policy.ReadWrite.PermissionGrant | 高 | 2672f8bb-fd5e-42e0-85e1-ec764dd2614e |
| RoleManagementPolicy.ReadWrite.AzureADGroup | 高 | 0da165c7-3f15-4236-b733-c0b0f6abe41d |
| RoleManagementPolicy.ReadWrite.Directory | 高 | 1ff1be21-34eb-448c-9ac9-ce1f506b2a68 |
| Policy.ReadWrite.AuthenticationMethod | 高 | 7e823077-d88e-468f-a337-e18f1f0e6c7c |
| User.DeleteRestore.All | 高 | 4bb440cd-2cf2-4f90-8004-aa2acd2537c5 |
| User.EnableDisableAccount.All | 高 | f92e74e7-2563-467f-9dd0-902688cb5863 |
| DelegatedPermissionGrant.ReadWrite.All | 高 | 41ce6ca6-6826-4807-84f1-1c82854f7ee5 |
| Policy.ReadWrite.ConditionalAccess |
Microsoft 第一方企业应用程序
默认情况下,Microsoft 应用程序会被过滤掉,以简化企业应用程序的审查。使用 -IncludeMsApps 开关可将其包含在内。来自以下租户的应用程序被视为 Microsoft 所有:
- f8cdef31-a31e-4b4a-93e4-5f571e91255a
- 72f988bf-86f1-41af-91ab-2d7cd011db47
- 33e01921-4d64-4f8c-a055-5bdaffd5e33d
- cdc5aeea-15c5-4db6-b079-fcadd2505dc2
执行的检查
下表大致总结了所执行的检查、它们对评分的影响以及是否显示警告。
执行的检查
|区域|检查项|影响评分|显示警告|
|-|-|-|-|
|组|是否为公共 M365 组|是|是|
|组|是否为动态组 / 是否为动态且查询存在潜在危险的组|是|是|
|组|Entra 角色(活跃和符合条件)|是|是|
|组|Azure 角色(活跃和符合条件)|是|是|
|组|用于 AppRole|是|是|
|组|内部/外部 SP 作为所有者|是|是|
|组|位于受限管理单元中|是|是|
|组|嵌套在特权组中|是|是|
|组|用于条件访问策略|是|是|
|组|组类型|是|否|
|组|已启用安全|是|否|
|组|嵌套成员活跃|是|否|
|组|所有者|是|否|
|组|嵌套所有者|是|否|
|组|来宾作为所有者|是|是|
|组|本地同步|是|否|
|组|成员(传递性)|是|否|
|组|可分配角色|是|否|
|组|PIM for Groups:已加入|否|否|
|组|PIM for Groups:特权组的符合条件成员|是|是|
|组|PIM for Groups:特权组的符合条件所有者|是|是|
|组|PIM for Groups:嵌套在受保护组中的未受保护组|否|是|
|企业应用|Entra 角色|是|是|
|企业应用|Azure 角色|是|是|
|企业应用|外部|是|否|
|企业应用|已被 Microsoft 禁用|否|是|
|企业应用|可疑名称(相似字符)|是|是|
|企业应用|API 权限(应用程序)|是|是|
|企业应用|API 权限(委派)|是|是|
|企业应用|凭据|是|是|
|企业应用|所有者|是|是|
|企业应用|对应用注册的所有权|是|是|
|企业应用|对其他服务主体的所有权|是|是|
|企业应用|AppLock|(是)|否|
|企业应用|应用拥有应用注册|是|是|
|企业应用|组成员/所有者|是|(是)|
|企业应用|AppRoles|是|否|
|企业应用|AppRole 要求|是|否|
|企业应用|不活跃|否|否|
|企业应用|上次成功登录(天数)|否|否|
|应用注册|凭据|是|是|
|应用注册|带凭据的 Entra Connect 应用|是|是|
|应用注册|带多个证书的 Entra Connect 应用|是|是|
|应用注册|AppRoles|是|否|
|应用注册|AppRedirectURL|否|否|
|应用注册|AppLock|是|否|
|应用注册|所有者|是|是|
|应用注册|(云)应用管理员作用域|否|否|
|应用注册|对应服务主体的权限|是|否|
|应用注册|登录受众|否|否|
|托管标识|所有者|是|是|
|托管标识|Entra 角色|是|是|
|托管标识|Azure 角色|是|是|
|托管标识|API(应用)|是|是|
|托管标识|对应用注册的所有权|是|是|
|托管标识|对其他服务主体的所有权|是|是|
|托管标识|组成员/所有者|是|(是)|
|用户|Entra 角色(活跃和符合条件)|是|是|
|用户|Azure 角色(活跃和符合条件)|是|是|
|用户|特权组成员身份(活跃和符合条件)|是|是|
|用户|特权组所有权(活跃和符合条件)|是|是|
|用户|Entra Connect 同步用户|是|是|
|用户|Entra Connect 云同步用户|是|是|
|用户|应用注册所有权|是|是|
|用户|企业应用所有权|是|是|
|用户|未注册 MFA 因素|是|是|
|用户|受保护|是|否|
|用户|不活跃|否|否|
|用户|组成员/所有者|是|(是)|
|用户|从本地同步|是|否|
|代理身份|关联的代理用户|是|否|
|代理身份|外部蓝图主体来源|是|是|
|代理身份|有效 API 权限(应用程序)|是|是|
|代理身份|有效 API 权限(委派)|是|是|
|代理身份|Entra 角色|是|是|
|代理身份|Azure 角色|是|是|
|代理身份|对应用注册的所有权|是|是|
|代理身份|对其他服务主体的所有权|是|是|
|代理身份|组成员/所有者|是|(是)|
|代理身份蓝图主体|关联的代理身份|是|否|
|代理身份蓝图主体|关联的代理用户|是|否|
|代理身份蓝图主体|已配置的 API 权限(应用程序)|否|否|
|代理身份蓝图主体|已配置的 API 权限(委派)|否|否|
|代理身份蓝图主体|外部父蓝图来源|是|否|
|代理身份蓝图主体|Entra 角色|否|否|
|代理身份蓝图主体|Azure 角色|否|否|
|代理身份蓝图主体|可疑名称(相似字符)|是|是|
|代理身份蓝图|蓝图主体|是|否|
|代理身份蓝图|关联的代理身份|是|否|
|代理身份蓝图|关联的代理用户|是|否|
|代理身份蓝图|可继承的 API 权限|是|否|
|代理身份蓝图|联合凭据|是|否|
|代理身份蓝图|机密/证书|是|是|
|代理身份蓝图|所有者/发起人|是|(是)|
|访问包|授予的 Entra 角色|是|否|
|访问包|授予的 Azure 角色|是|否|
|访问包|授予的组|是|否|
|访问包|授予的应用角色|是|否|
|访问包|授予的 API 权限(应用程序)|是|否|
|访问包|授予的 API 权限(委派)|是|否|
|访问包|授予的 SharePoint 访问权限|是|否|
|访问包|无需审批的广泛自助请求|是|是|
|访问包|无过期或访问审查的持久访问|否|否|
|访问包|危险的自动分配规则|是|是|
|访问包|通过不受保护的组目标进行自助请求|是|是|
|访问包|无需审批的广泛非用户代行分配|是|否|
|访问包|服务主体分配|是|否|
|目录|目录元数据、状态和外部可见性|否|否|
|目录|目录资源|否|否|
|目录|可在新访问包中配置的资源|是|否|
|目录|在现有访问包中配置的资源和角色|是|否|
|目录|未配置的目录资源|是|否|
|目录|目录 RBAC 分配|是|是|
|条件访问策略|未针对旧式身份验证设置策略或策略配置错误|-|是|
|条件访问策略|未针对阻止设备代码流设置策略或策略配置错误|-|是|
|条件访问策略|未针对限制安全信息注册设置策略或策略配置错误|-|是|
|条件访问策略|未针对风险登录设置策略或策略配置错误|-|是|
|条件访问策略|未针对用户风险设置策略或策略配置错误|-|是|
|条件访问策略|未设置强制 MFA 的策略|-|是|
|条件访问策略|未设置强制身份验证强度的策略|-|是|
|条件访问策略|包含具有作用域分配的角色|-|是|
|PIM 设置|AuthContext|-|是|
|PIM 设置|AuthContext 关联的条件访问策略:登录频率|-|是|
|PIM 设置|AuthContext 关联的条件访问策略:MFA 或身份验证强度|-|是|
|PIM 设置|AuthContext 关联的条件访问策略:已启用|-|是|
|PIM 设置|AuthContext 关联的条件访问策略:包含/排除的用户/组/网络|-|是|
|PIM 设置|AuthContext 关联的条件访问策略:条件|-|是|
|PIM 设置|激活 MFA|-|否|
|PIM 设置|激活理由或工单|-|是|
|PIM 设置|激活时长|-|是|
|PIM 设置|激活审批|-|是|
|PIM 设置|符合条件分配过期|-|否|
|PIM 设置|活跃分配过期|-|是|
|PIM 设置|活跃分配 MFA|-|否|
|PIM 设置|角色激活通知|-|否|
|PIM 设置|角色分配通知(活跃)|-|否|
|PIM 设置|角色分配通知(符合条件)|-|否|
🛡️ 检测
EntraFalcon 不具备隐蔽性,在记录并监控 Microsoft Graph API 和 Azure 登录活动的环境中可以被检测到。
使用的默认身份验证
当使用非 BroCi 流程执行完整枚举时,该工具通常会发起四次交互式登录和一次非交互式登录。根据流程和端点支持情况,安全发现策略端点可能还会发生一次额外的交互式登录。
| 应用程序 ID | 类型 | 资源 ID | 用途 |
|---|
| 1b730954-1685-4b74-9bfd-dac224a7b894 | 交互式 | 00000003-0000-0000-c000-000000000000 | 检索 PIM for Groups 数据 |
| 04b07795-8ddb-461a-bbee-02f9e1bf7b46 | 交互式 | 00000003-0000-0000-c000-000000000000 | 检索常规租户对象数据 |
| 51f81489-12ee-4a9e-aaae-a2591f45987d | 交互式 | 00000003-0000-0000-c000-000000000000 | 检索 PIM for Entra / Azure 角色 |
| 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 for Groups 数据 |
| 50aaa389-5a33-4f1a-91d7-2c45ecd8dac8 | 非交互式 | 01fc33a7-78ba-4d2f-a4b7-768e336e890e | 检索 PIM for Groups 数据 |
| 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 for Groups 数据。
详细信息
在数据收集过程中,该工具会向 Microsoft Graph API 以及(可选)Azure ARM API 发送多个请求——每个对象一个或多个请求。在可能的情况下,它会利用 Graph 批处理端点来减少单个请求的数量并提高效率。
交互式登录使用浏览器的 User-Agent。所有非交互式登录和 API 请求(Graph 和 ARM)均使用 EntraFalcon 作为 User-Agent,除非通过 -UserAgent 参数更改。
为了检测 EntraFalcon 的使用,蓝队可以监控登录日志中列出的应用程序 ID,查找异常大量的 Graph API 流量,或分析令牌刷新和批处理请求行为。
🕳️ 已知限制
- M365 RBAC:未评估
- Defender for Endpoint RBAC:未评估
- 条件访问用户覆盖范围:有效用户覆盖范围和
-ExportCapUncoveredUsers 是基于枚举的用户、组成员、角色分配和可解析的外部用户类别进行的最佳努力计算。外部用户选择器仅针对匹配 b2bCollaborationGuest 的租户来宾用户进行解析。其他外部用户类型或指定了外部租户的外部用户可能导致覆盖范围值不精确。符合条件的 PIM 路径被报告为潜在覆盖范围,不计入当前已覆盖范围。CSV 导出仅限于已启用的策略和已启用的用户。
- 云环境:云平台发展迅速。因此,某些评估或检测可能会随着时间的推移而过时或不准确。此外,租户变得越来越复杂,特定的配置或设置组合可能导致不准确的结果。虽然我们努力保持 EntraFalcon 的最新状态,但始终建议独立验证发现结果,不要仅依赖该工具做出关键决策。
- HTML 报告:生成的 HTML 报告未实现针对跨站脚本(XSS)的保护机制。
📦 集成的外部工具
以下子模块已被分叉并集成到 EntraFalcon 中,以支持身份验证、Microsoft Graph 交互和报告图表:
SPPrivateKeyPemPath
与 -SPCertificatePemPath 匹配的 PEM 私钥文件路径。 |
| SPPrivateKeyPemPassword | -SPPrivateKeyPemPath 指定的 PEM 私钥的密码(SecureString)。 | - |
| Csv | 启用除 TXT/HTML 报告文件外,同时写入 CSV 报告文件。 | false |
| ExportCapUncoveredUsers | 对于每个启用了用户目标的条件访问策略,导出列出未被该策略覆盖的用户的 CSV 文件。文件写入输出目录下的 ConditionalAccessPolicies_UncoveredUsers 子文件夹中。 | false |
| ExportFindingsJson | 在运行结束时将所有安全发现导出为 JSON。 | false |
| ExportDataJson | 将增强后的报告和支持数据集导出为 Data_Json 下的原始 JSON 数据文件;运行元数据可在 Summary.json 中获取。 | false |
| DebugObjectDump | 将最终的内存中报告对象导出为 CLIXML 到 Debug_ObjectDump,用于故障排除和测试。 | false |
| a92aed5d-d78a-4d16-b381-09adb37eb3b0 |
| 合作伙伴 Tier1 支持 | 1 | 4ba39ca4-527c-499a-b93d-d9b492c50246 |
| 密码管理员 | 1 | 966707d0-3269-4727-9be2-8c3a10f19b9d |
| SharePoint 管理员 | 1 | f28a1f50-f6e7-4571-818b-6a12f2af6b6c |
| Teams 管理员 | 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 |
| 安全读取者 | 2 | 5d6b6bb7-de71-4623-b4af-96380a352509 |
| 目录读取者 | 2 | 88d8e3e3-8f55-4a1e-953a-9b9898b8876b |
| ad902697-1014-4ef5-81ef-2b4301988e8c |
| DeviceManagementConfiguration.ReadWrite.All | 高 | 0883f392-0a7a-443d-8c76-16a6d39c7b63 |
| DeviceManagementRBAC.ReadWrite.All | 高 | 0c5e8a55-87a6-4556-93ab-adc52c4d862d |
| Directory.ReadWrite.All | 高 | c5366453-9fb0-48a5-a156-24f0c49a4b84 |
| Group.ReadWrite.All | 高 | 4e46008b-f24c-477d-8fff-7bb4ec7aafe0 |
| GroupMember.ReadWrite.All | 高 | f81125ac-d3b7-4573-a3b2-7099cc39df9e |
| UserAuthenticationMethod.ReadWrite.All | 高 | b7887744-6746-4312-813d-72daeaee7e2d |
| Sites.FullControl.All | 高 | 5a54b8b3-347c-476d-8f8e-42d5c7424d29 |
| Sites.Manage.All | 高 | 65e50fdc-43b7-4915-933e-e8138f11f40a |
| User-PasswordProfile.ReadWrite.All | 高 | 56760768-b641-451f-8906-e1b8ab31bca7 |
| Sites.Read.All | 高 | 205e70e5-aba6-4c52-a976-6d2d46c48043 |
| Sites.ReadWrite.All | 高 | 89fe6a52-be36-487e-b7d8-d061c450a026 |
| Files.Read.All | 高 | df85f4d6-205c-4ac5-a5ea-6bf408dba283 |
| Files.ReadWrite.All | 高 | 863451e7-0667-486c-a5d6-d135439485f0 |
| DeviceLocalCredential.Read.All | 高 | 9917900e-410b-4d15-846e-42a357488545 |
| UserAuthMethod-Phone.ReadWrite | 高 | 6c4aad61-f76b-46ad-a22c-57d4d3d962af |
| UserAuthMethod-Phone.ReadWrite.All | 高 | 48c99302-9a24-4f27-a8a7-acef4debba14 |
| UserAuthMethod-Password.ReadWrite.All | 高 | 7f5b683d-df96-4690-a88d-6e336ed6dc7c |
| UserAuthMethod-Password.ReadWrite | 高 | 60cce20d-d41e-4594-b391-84bbf8cc31f3 |
| AdministrativeUnit.ReadWrite.All | 高 | 7b8a2d34-6b3f-4542-a343-54651608ad81 |
| User.ReadWrite.All | 中 | 204e0828-b5ca-4ad8-b9f3-f32a958e7cc4 |
| Chat.ReadWrite.All | 中 | 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.All | 中 | ca46335e-8453-47cd-a001-8459884efeae |
| ServicePrincipalEndpoint.ReadWrite.All | 中 | 7297d82c-9546-4aed-91df-3d4f0a9b3ff0 |
| BitlockerKey.Read.All | 中 | b27a61ec-b99c-4d6a-b126-c4375d08ae30 |
| AiEnterpriseInteraction.Read | 中 | 859cceb9-2ec2-4e48-bcd7-b8490b5248a5 |
| Calendars.Read | 中 | 465a38f9-76ea-45b9-9f34-9e8b0d4b0b42 |
| Calendars.Read.Shared | 中 | 2b9c4092-424d-4249-948d-b43879977640 |
| Calendars.ReadWrite | 中 | 1ec239c2-d7c9-4623-a91a-a9775856bb36 |
| Calendars.ReadWrite.Shared | 中 | 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.All | 中 | 0e263e50-5827-48a4-b97c-d940288653c7 |
| Directory.Read.All | 中 | 06da0dbc-49e2-44d2-8312-53f166ab848a |
| EAS.AccessAsUser.All | 中 | ff91d191-45a0-43fd-b837-bd682c4a0b0f |
| EntitlementMgmt-SubjectAccess.ReadWrite | 中 | e9fdcbbb-8807-410f-b9ec-8d5468c7c2ac |
| EWS.AccessAsUser.All | 中 | 9769c687-087d-48ac-9cb3-c37dde652038 |
| Files.ReadWrite | 中 | 5c28f0bf-8a70-41f1-8ab2-9032436ddb65 |
| IMAP.AccessAsUser.All | 中 | 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.All | 中 | dfabfca6-ee36-4db2-8208-7a28381419b3 |
| Notes.ReadWrite | 中 | 615e26af-c38a-4150-ae3e-c3b0d4cb1d6a |
| Notes.ReadWrite.All | 中 | 64ac0503-b4fa-45d9-b544-71a463f05da0 |
| POP.AccessAsUser.All | 中 | d7b7f2d9-0f45-4ea1-9d42-e50810c06991 |
| offline_access | 低 | 7427e0e9-2fba-42fe-b0c0-848c9e6a8182 |
| openid | 低 | 37f7f235-527c-4136-accd-4a02d197296e |
| email | 低 | 64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0 |
| profile | 低 | 14dad69e-099b-42c9-810b-d002981feec1 |
| User.Read | 低 | e1fe6dd8-ba31-4d61-89e7-88639da4683d |