Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

使用 AI 自动化 Entra ID 租户破坏

使用 AI 自动化 Entra ID 租户破坏

May 21, 2026

当已登录的帐户已经拥有特权访问权限时,AI 辅助的浏览器自动化可以把 Microsoft Graph Explorer 转变为破坏性的 Entra ID 管理界面。借助 Claude for Chrome、浏览器端 JavaScript 以及 Microsoft Graph 批处理请求,诸如删除用户、禁用帐户、重置密码、撤销会话以及移除条件访问策略等破坏性操作,都可以直接从浏览器会话中自动执行。

AI 如何通过 Microsoft Graph、Graph Explorer 和浏览器端自动化来自动执行 Entra ID 租户破坏

本文演示了当已登录账户具有所需权限时,如何利用借助 AI 的浏览器自动化来执行针对 Entra ID 租户的破坏性 Microsoft Graph 操作。

AI 如何自动化 Graph Explorer 以实现对 Entra ID 租户的破坏

Microsoft Graph Explorer是一款基于浏览器的工具,用于向Entra ID租户发送Microsoft Graph API请求。它通常被管理员和开发人员用来测试API调用、检查响应,并了解所需的权限。在本文中,我用它来展示Microsoft Graph访问如何被用于自动化的破坏性租户操作,以及当这些工作流程与能够操控浏览器的AI助手相结合时,为何会变得危险。

租户遭到破坏的真实案例

租户破坏已不再局限于使用勒索软件加密服务器。2026年3月,Stryker披露了一起扰乱其Microsoft环境的网络攻击,Sygnia随后报告称,攻击者利用Microsoft Intune清除了内部虚拟基础设施,包括笔记本电脑、移动设备和虚拟服务器。

2025年8月,Microsoft记录了Storm-0501在从本地Active Directory迁移到Entra ID之后,使用基于云的勒索软件技术的情况。该攻击者获取了Global Administrator权限,扩大了对Azure订阅的访问范围,并在勒索赎金之前删除了云数据和备份资源以阻止恢复。

使用 Claude for Chrome、开发者工具以及浏览器端 JavaScript 来自动化 Microsoft Graph 操作

Claude for Chrome将Claude直接集成到浏览器中,使其能够与网页交互、检查UI元素,并通过用户通常手动使用的同一界面协助执行操作。当与Chrome Developer Tools和浏览器端JavaScript结合时,它便超越了简单的提示交互,使得在Graph Explorer内部自动化工作流程成为可能,包括针对Entra ID租户的破坏性Microsoft Graph操作。

先决条件

请仅在您拥有且可以承受丢失的测试租户中重现此操作。请勿在生产租户或任何您未获得明确授权的环境中执行破坏性的Graph操作。

在本文中,我将逐步介绍如何使用Claude for Chrome直接在Microsoft Graph Explorer内部自动化破坏性的Entra ID操作,借助浏览器端JavaScript使工作流程快速且无需人工干预。

开始之前,请在浏览器中打开Microsoft Graph Explorer,并在测试租户中保持活跃的Global Administrator会话,同时保持Claude for Chrome处于打开状态。

在测试租户中执行受控的租户销毁

在动任何东西之前,我让 Claude 一次性枚举四项内容:所有目录角色成员、所有 Entra ID 应用注册、所有条件访问(Conditional Access)策略,以及所有已注册的设备。之所以很快,是因为 Claude 获取 Graph API 令牌的方式。它并没有让我从浏览器开发者工具中复制令牌,而是用一个小型拦截器对浏览器原生的 fetch 函数进行了补丁(patch)。

      window._originalFetch = window.fetch;

window.fetch = function (...args) {
  const url = args[0];
  const options = args[1] || {};

  if (url.includes("graph.microsoft.com")) {
    const auth = (options.headers || {})["Authorization"];

    if (auth) {
      window._capturedToken = auth;
    }
  }

  return window._originalFetch.apply(this, args);
};
      

下一次Graph Explorer发起API调用时,这个拦截器悄无声息地直接从请求头中获取了Bearer令牌。Claude随后使用该令牌,通过Promise.all()同时发起所有四个枚举查询,因此无需等待四个独立的调用依次完成,所有调用都并行运行,结果几乎瞬间返回。对于目录角色,它先获取活动角色的列表,然后同时获取每个角色的成员,而不是逐个循环处理。最终结果是在短短几秒内便完成了整个租户的完整清查。最初捕获的令牌仅具有读取级别的范围,因此任何写入或删除操作都会返回403。Claude通过Graph Explorer内置的Modify Permissions选项卡处理了所有这些操作。

Claude for Chrome interacting with Microsoft Graph Explorer in the browser
Figure 1. Claude for Chrome interacting with Microsoft Graph Explorer in the browser, using automated steps to run Graph API queries, request permissions, and collect Entra ID enumeration results.

对于每个需要更高权限范围的操作,Claude在Graph Explorer中以正确的HTTP方法导航到相应的端点,切换到Modify Permissions选项卡(该选项卡会自动显示所需的权限范围),然后点击Consent。

每次同意后,它都会触发一次新的Run Query操作,让Graph Explorer发放一个带有更新后权限范围的新令牌,然后通过同一个拦截器重新捕获该令牌。它所同意的权限包括:用于删除应用程序注册的Application.ReadWrite.All、用于删除Conditional Access策略的Policy.ReadWrite.ConditionalAccess、用于从目录角色中移除账户的RoleManagement.ReadWrite.Directory,以及用于删除用户账户的User.DeleteRestore.All

在访问令牌已具备所需权限的情况下,Claude执行了一个JavaScript代码块,并行执行破坏性操作。对每种对象类型都采用了相同的模式:获取完整列表,将每个对象映射为一个DELETE请求,使用Promise.all()执行这些请求,并记录每个响应的HTTP状态。

Claude for Chrome executing destructive Microsoft Graph operations
Figure 2. Claude for Chrome executing destructive Microsoft Graph operations through Graph Explorer, deleting Entra ID applications, Conditional Access policies, and devices in the test tenant.

这些Entra ID审计日志显示了清理操作的实时进展。在上午8:06:19,多项删除操作被记录为成功,包括设备删除、应用程序删除和服务主体移除。

Entra ID audit logs showing successful delete operations
Figure 3. Entra ID audit logs showing successful delete operations for devices, applications, and service principals after the automated Graph workflow executed.

这张截图显示,Claude for Chrome在右侧生成JavaScript代码块,同时相同的逻辑在Graph Explorer会话内的Chrome Developer Tools中执行。控制台输出显示,该脚本发现了2,551个用户,将其中2,550个标记为待删除,保护了1个账户,随后开始针对删除操作返回成功的204响应。

Claude for Chrome generating a destructive JavaScript workflow
Figure 4. Claude for Chrome generating a destructive JavaScript workflow while Chrome Developer Tools executes it inside the Graph Explorer session, returning successful 204 responses for Microsoft Graph delete operations.

这里展示了工作流程中的用户删除阶段。在上午8:14:05,多个Delete user事件在Core Directory下被记录,并标记为Success。

Entra ID audit logs showing successful user deletion events
Figure 5. Entra ID audit logs showing successful user deletion events recorded under Core Directory after the automated Graph workflow executed.

举例来说,我部分恢复了一些已删除的用户,而其他用户则保留在已删除项目容器中。随后,我使用Claude自动化执行清理操作,生成浏览器端JavaScript,直接从浏览器会话中永久删除剩余的已删除用户。

这些审计日志显示了永久删除步骤。Entra ID在Core Directory和UserManagement下记录了多个Hard Delete user事件,全部标记为Success。这与之前的软删除阶段不同。这些用户已从已删除项目容器中移除,意味着无法再通过Entra ID的常规恢复流程进行恢复。

Entra ID audit logs showing successful hard-delete events
Figure 6. Entra ID audit logs showing successful hard-delete events for user objects, confirming the users were permanently removed from the deleted items container.

租户锁定

租户锁定(tenant lockout)是指组织失去对其Microsoft 365或Entra ID租户的管理访问权限。当所有Global Administrator或同等账户被删除、禁用、被一项失效的Conditional Access策略阻挡,或受到无人能再满足的MFA设置保护时,便可能发生此情况。此时,租户可能仍然存在,但组织已无法管理用户、应用程序、策略、设备或恢复设置。

下一个工作流程不再侧重于删除租户对象,而是通过重置用户密码、撤销活动会话和禁用所有账户,来实施租户锁定。

Claude for Chrome reporting the tenant lockout workflow
Figure 7. Claude for Chrome reporting the tenant lockout workflow, showing successful password resets, session revocations, and account disablement across 1,103 users in the test tenant.

在底层,Claude使用了来自Graph Explorer会话的同一个浏览器端访问令牌,并在浏览器中构建了Microsoft Graph的$batch请求。它没有手动为每个用户发送一个请求,而是将用户分成每组20人的批次,并为每组发送三项批处理操作:一项用于重置密码,一项用于撤销活动登录会话,一项用于禁用账户。

每个批次都通过Authorization头中携带捕获的令牌,发送至https://graph.microsoft.com/v1.0/$batch。这使得整个工作流程能够在浏览器中快速且反复执行,同时由Graph批量处理账户锁定操作。

Claude for Chrome building Microsoft Graph $batch requests in the browser
Figure 8. Claude for Chrome building Microsoft Graph $batch requests in the browser to reset passwords, revoke sessions, and disable accounts in grouped user batches.

审计日志显示账户禁用步骤已反映在Entra ID中。多个用户在同一短时间窗口内被禁用,每个事件都在Core Directory下被记录为Success状态。这证实了锁定工作流程对测试租户实施了实际更改。

Entra ID audit logs showing successful account disablement events
Figure 9. Entra ID audit logs showing successful account disablement events after the tenant lockout workflow executed through Microsoft Graph batch requests.

此处显示了在极短的时间窗口内,多个用户账户的StsRefreshTokenValidFrom时间戳被批量更新。当触发Revoke Refresh Tokens操作时,该活动会被更新,从而使受影响用户的所有现有刷新令牌失效,并强制其重新进行身份验证。

Microsoft Entra ID audit log
Figure 10. Microsoft Entra ID audit log: Bulk StsRefreshTokenValidFrom timestamp updates

结论

此示例展示了在已具备正确权限的情况下,所需的工具是多么少。仅凭浏览器、Graph Explorer、基于浏览器的AI助手和浏览器端JavaScript,就能在不编写独立工具、不编译代码、不运行外部脚本的情况下,自动执行破坏性的Entra ID操作。重点不在于AI自行创建了新的攻击路径,真正的危险在于AI使现有的管理工作流程变得更快、更易于串联,也更易于通过浏览器执行。浏览器端JavaScript充当自动化层,将手动的Graph Explorer操作转换为可并行运行的可重复API调用。权限发现、同意、令牌刷新、Graph请求、批处理、删除、密码重置、会话撤销和账户禁用,全部可以在同一个浏览器会话中完成。

Microsoft Graph Explorer 是一个基于浏览器的工具,可向 Entra ID 租户发送 Microsoft Graph API 请求。它通常由管理员和开发人员使用,用于测试 API 调用、检查响应,并了解需要哪些权限。在本文中,我使用它来演示如何利用对 Microsoft Graph 的访问进行自动化的破坏性租户操作,以及当这些相同的工作流与能够驱动浏览器的 AI 助手配合时,为什么会变得危险。

租户遭到破坏已不再仅限于使用勒索软件对服务器进行加密。

Claude for Chrome 将 Claude 直接带入浏览器:它可以与网页交互、检查 UI 元素,并通过用户通常会手动使用的同一界面来协助执行操作。与 Chrome 开发者工具和浏览器端 JavaScript 结合后,这不再只是简单的提示,而是能够在 Graph Explorer 内自动化工作流,包括对 Entra ID 租户执行破坏性的 Microsoft Graph 操作。

只在你拥有且已经做好可能会丢失的准备的测试租户中复现此内容。不要在生产租户中,或在任何你未获得明确授权的环境中执行破坏性的 Graph 操作。

在这篇文章中,我将介绍我是如何使用 Claude for Chrome 直接在 Microsoft Graph Explorer 内自动化破坏性的 Entra ID 操作的。通过使用浏览器端 JavaScript,让工作流更快速且免手动操作。

开始之前,请在测试租户中使用具有活动 Microsoft Graph Explorer 会话的浏览器中打开 Global Administrator ,并保持 Claude for Chrome 处于打开状态。

下一次 Graph Explorer 进行任何 API 调用时,这个拦截器会静默地从请求头中直接抓取 Bearer 令牌。然后 Claude 使用该令牌,通过 Promise.all() 同时发起四个枚举查询;因此,不必等待四个独立调用依次完成,它们会并行运行,结果几乎立刻返回。就目录角色而言,流程是:先获取活动角色列表,然后不再逐个循环,而是同时获取每一个角色的成员。最终结果是在几秒钟内完成了对整个租户的完整盘点。起初,捕获到的令牌只有读取级别的作用域,因此任何写入或删除操作都会返回一个 403。Claude 的所有操作都通过 Graph Explorer 内置的“Modify Permissions(修改权限)”选项卡来完成。

对于每一项需要更高权限作用域的操作,Claude 都会在 Graph Explorer 中使用正确的 HTTP 方法导航到相关端点,然后切换到 Modify Permissions 选项卡;该选项卡会自动显示所需的作用域,并点击 Consent

每次完成一次同意后,它都会触发一个新的 Run Query 操作:以便 Graph Explorer 使用更新后的范围(scopes)签发一个新的令牌,然后再通过相同的拦截器重新捕获该令牌。它同意授予的权限包括:删除应用程序注册所需的 Application.ReadWrite.All;删除条件访问(Conditional Access)策略所需的 Policy.ReadWrite.ConditionalAccess;从目录角色中移除帐户所需的 RoleManagement.ReadWrite.Directory;以及删除用户帐户所需的 User.DeleteRestore.All

在访问令牌中包含所需权限的情况下,Claude 执行了一个单独的 JavaScript 块,用于并行执行破坏性操作。对每种对象类型都使用了相同的模式:获取完整列表,将每个对象映射到一个 DELETE 请求,通过 Promise.all() 并行执行这些请求,并记录每个响应的 HTTP 状态。

这些 Entra ID 审计日志显示了实时进行的清理过程。在 8:06:19 AM ,多次删除操作被记录为成功,包括删除设备、删除应用程序以及移除服务主体。

此截图显示 Claude for Chrome 在右侧生成 JavaScript 块,而 Graph Explorer 会话中的 Chrome 开发者工具里会执行相同的逻辑。控制台输出显示:脚本找到了 2,551 名用户,将 2,550 名标记为待删除,并保护了 1 个帐户,然后开始为删除操作返回成功的 204 响应。

这里展示了工作流中的用户删除阶段。在 8:14:05 AM ,多条 Delete user 事件被记录在 Core Directory 下,并标记为 Success

例如,我部分恢复了已删除的部分用户, 而其他用户则仍保留在已删除项目容器中。然后我使用 Claude 通过生成在浏览器端执行的 JavaScript 来自动化清理,该脚本可以 直接从浏览器会话中永久删除剩余的已删除用户

这些审计日志展示了永久删除步骤。Entra ID 记录了多次 Hard Delete user 事件,位于 Core DirectoryUserManagement 下,且全部标记为 Success。这不同于前面那个软删除阶段。这些用户已从已删除项目容器中移除,意味着无法再通过常规的 Entra ID 还原流程进行恢复。

租户锁定发生在组织失去对其 Microsoft 365 或 Entra ID 租户的管理员访问权限时。这可能在所有 Global Administrator(全局管理员)或等效账户被删除、被禁用、被置于失效的条件访问(Conditional Access)策略后方、或由无人再能满足的 MFA 设置加以保护时发生。此时,租户可能仍然存在,但组织已无法管理用户、应用程序、策略、设备或恢复设置。

在删除租户对象之外,接下来的工作流聚焦于租户锁定:通过重置用户密码、撤销活动会话,并禁用每个账户。

在后台,Claude 使用了 Graph Explorer 会话中的相同浏览器端访问令牌,并在浏览器中构建了 Microsoft Graph $batch 请求。它没有为每个用户手动发送单独的一次请求,而是将用户分成每组 20 人的批次,并为每个组发送 3 次批处理操作:一次用于重置密码,一次用于撤销活动登录会话,另一次用于禁用账号。

每个批次都被发送到 https://graph.microsoft.com/v1.0/$batch ,并在 Authorization 头中携带已捕获的令牌。这样就能让工作流从浏览器中快速且反复运行,同时 Graph 会以批量方式处理账号锁定操作。

审计日志显示,账号禁用步骤落在 Entra ID 中。多个用户在同一很短的时间窗口内被禁用,并且每个事件都记录在 Core Directory 下,状态为 Success 。这证实锁定(lockout)工作流对测试租户进行了真实变更。

这显示在一个非常短的时间窗口内,对多个用户账号进行了 StsRefreshTokenValidFrom 时间戳的批量更新。当触发 Revoke Refresh Tokens 操作时,就会更新该活动。该操作会使受影响用户的所有现有刷新令牌失效,并迫使其重新进行身份验证。

该示例说明:一旦已经具备所需的正确权限,就几乎不需要额外的工具。仅凭一个浏览器、Graph Explorer、基于浏览器的 AI 助手以及浏览器端 JavaScript,就能够在不编写独立工具、不编译代码、也不运行外部脚本的情况下,自动化破坏性的 Entra ID 操作。重要的并不是 AI 本身凭空创建了一条新的攻击路径。真正的危险在于,AI 会让现有的管理工作流更快、更容易串联在一起,并且更容易通过浏览器执行。浏览器端 JavaScript 充当自动化层,将手动的 Graph Explorer 操作转换为可并行运行的、可重复的 API 调用。权限发现、同意、令牌刷新、Graph 请求、批处理、删除、密码重置、会话撤销以及账户禁用,都可以由同一个浏览器会话驱动完成。

分享到

了解更多

关于作者

Asset Not Found

Huy Kha

安全研究总监

Huy 是 Netwrix 的安全研究总监,带领安全研究团队,并推动整个安全产品组合的改进,帮助客户提升韧性。他还是 Microsoft MVP(Windows & Devices)。凭借事件响应、安全运营和系统优化方面的经验,他专注于实用、可重复的方法,将复杂问题转化为清晰、精简的流程。