近期,卡巴斯基实验室于7月6日发布的一篇博文中,揭露了一起技术含量极高的网络钓鱼攻击事件。根据监测数据显示,攻击者在2026年4月至5月期间,借助微软身份平台(Microsoft Identity Platform)策划并实施了一系列针对性的钓鱼活动。这场攻击的技术细节,值得深入剖析。

我们先聚焦关键的技术环节。攻击者瞄准的是微软身份平台中OAuth 2.0标准下的设备授权授予(Device Authorization Grant)流程。该流程原本是为了方便输入能力有限的设备(例如智能电视、物联网终端)进行身份认证而设计的。具体来说,正常流程如下:用户在某个设备上看到一个链接和一次性代码,随后需要在另一台设备上访问验证URI,比如https://microsoft.com/devicelogin,输入这个user_code以完成授权。
之后,客户端会持续轮询微软的令牌端点,地址为https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token,同时将urn:ietf:params:oauth:grant-type:device_code作为授权类型(grant_type)来请求令牌。如果用户尚未确认操作,服务器会返回authorization_pending或slow_down状态。一旦用户完成认证,服务器便会向应用下发三个核心令牌:access_token、refresh_token和id_token。需要特别注意的是,access_token的典型有效期通常只有1小时,但有了refresh_token,设备就能在后台静默换取新令牌——这正是整个攻击链条中最令人担忧的隐患。
那么,攻击者具体是如何实施的呢?根据卡巴斯基披露的细节,整个钓鱼流程设计得极为巧妙。攻击者首先发送一封伪装成律师事务所通知的邮件,附带一个受密码保护的PDF文件。受害者输入密码打开PDF后,会看到一个列出多份文档的落地页。然而,要查看这些文档,必须点击页面上的一个链接——这个链接表面上看是合法的微软地址,但实际上暗藏玄机:通过精心构造的URL参数,用户被悄悄重定向到了一个仿冒企业法律门户的钓鱼页面。
这个钓鱼页面设置了多重CAPTCHA验证,看起来十分正规。随后,它会引导用户复制一个一次性代码。这个代码究竟是什么?其实就是攻击者服务器事先从微软认证端点https://login.microsoftonline.com/{tenant}/oauth2/v2.0/devicecode获取到的user_code。用户点击代码后,页面会自动复制内容并跳转到微软真实的认证页面——请注意,这个页面确实是微软官方页面,并未篡改。受害者在微软最新页面上完成多因素认证(MFA)后,攻击者便立即拿到了该会话的access_token、refresh_token和id_token。
拿到这些令牌意味着什么?攻击者可以读取或发送邮箱邮件、导出OneDrive文件、访问Teams对话——几乎等同于完全掌控了受害者的电子身份。最致命的是,即便access_token过期了,refresh_token仍能让攻击者继续长期潜伏。这恐怕正是卡巴斯基为何特别强调,此类攻击对企业用户而言极具威胁性的原因所在。
