OAuth重定向滥用:钓鱼&恶意软件投递攻击手法解析

admin 2026-03-05 21:27:46 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文解析OAuth重定向滥用攻击。攻击者利用无效参数触发身份提供商错误重定向,将用户静默跳转至恶意站点进行钓鱼或投递恶意软件。文档分析了攻击全链条,提供了KQL检测查询、防御建议及IoC指标,建议限制应用授权并实施条件访问策略以应对此类基于身份的威胁。 综合评分: 95 文章分类: 威胁情报,WEB安全,漏洞分析,恶意软件,应急响应


cover_image

OAuth重定向滥用:钓鱼&恶意软件投递攻击手法解析

Dubito Dubito

云原生安全指北

2026年3月4日 08:35 江苏

注:本文翻译自 Microsoft 的文章《OAuth redirection abuse enables phishing and malware delivery》[1],可点击文末“阅读原文”按钮查看英文原文。

全文如下:

摘要

微软观察到钓鱼攻击利用OAuth(开放授权)的设计重定向机制。该活动主要针对政府和公共部门组织,使用静默OAuth认证流程和故意构造的无效范围,将受害者重定向至攻击者控制的基础设施,而无需窃取令牌。微软Defender通过跨邮件、身份和端点的信号标记了恶意活动。微软Entra已禁用所观察到的OAuth应用程序;然而,相关的OAuth活动依然存在,需要持续监控。

一、引言

微软Defender研究人员揭露了多起钓鱼活动,这些活动利用合法的OAuth协议功能来操纵URL重定向,并绕过邮件和浏览器中的传统钓鱼防御。在调查过程中,识别并移除了多个恶意OAuth应用程序以缓解威胁。

OAuth包含一项合法功能,允许身份提供商在特定条件下将用户重定向至特定的登录页面,这通常发生在错误场景或其他已定义的流程中。攻击者可以通过使用主流身份提供商(如Entra ID或Google Workspace)精心构造URL来滥用此原生功能,这些URL使用被操纵的参数或关联的恶意应用程序,将用户重定向至攻击者控制的登录页面。这种技术能够创建看似良性的URL,但最终指向恶意目标。

二、技术细节

攻击始于在攻击者控制的租户中创建一个恶意应用程序,该应用程序配置了一个指向托管恶意软件的恶意域名的重定向URI(统一资源标识符)。然后,攻击者分发一个钓鱼链接,诱使目标对该恶意应用程序进行身份验证。

尽管OAuth重定向滥用背后的机制可能很微妙,但其实际应用却非常直接。攻击者将精心构造的OAuth URL嵌入常见的钓鱼诱饵中,利用用户对合法认证流程的熟悉来促使他们进行交互。为了阐明这一过程,下文将攻击分解为几个阶段,从投递和触发重定向链的初始用户交互开始。

2.1 第一阶段:邮件投递

多个攻击者发起了包含OAuth重定向URL的钓鱼活动。这些邮件利用电子签名请求、社保、金融和政治等主题,诱使收件人参与并点击链接。迹象表明,这些攻击者既使用了免费的预构建批量发送工具,也使用了Python和Node.js开发的自定义解决方案。在某些情况下,他们使用云邮件服务和云托管的虚拟机来分发这些邮件。

大多数URL直接嵌入在邮件正文中,但也有一些攻击者将URL和配套的诱饵放在PDF附件中,并发送没有正文内容的邮件。经过OAuth重定向后,一些活动将用户直接引导至钓鱼页面,而另一些则引入了额外的验证步骤,旨在绕过安全控制。

我们观察到,在钓鱼和恶意软件分发活动中都存在滥用OAuth重定向的情况。为了提高可信度,攻击者使用各种编码技术通过state参数传递目标电子邮件地址,使其能够在钓鱼页面上自动填充。state参数本意是随机生成并用于关联请求和响应值,但在这些案例中,它被重新用于携带编码后的电子邮件地址。观察到的编码方法包括:

  • • 明文
  • • 十六进制字符串
  • • Base64
  • • 自定义解码方案,例如将 11 映射为 a, 12 映射为 b

一旦从OAuth认证页面重定向出来,用户通常会被发送到诸如EvilProxy等钓鱼框架。这些平台作为中间人攻击工具包运作,旨在拦截凭证和会话Cookie。它们通常依赖于基于代理的登录拦截和额外的混淆层,如CAPTCHA验证或中间页面。在此阶段,攻击类似于传统的网络钓鱼尝试,其附加优势在于通过受信任的OAuth身份提供商重定向进行投递。

几个样本还包含了伪造的日历邀请(.ics)附件或与会议相关的消息,以增强合法性并鼓励用户交互。通过将受信任的认证URL与协作主题的诱饵相结合,攻击者提高了用户参与的可能性。

2.2 诱饵示例

以下是在钓鱼/恶意软件活动中观察到的邮件诱饵示例及相关的社会工程学主题:

文档共享与审阅

社会保障

Teams会议

密码重置

员工报告诱饵

2.3 第二阶段:静默OAuth探测

前面描述的所有诱饵都共享一种共同的技术:滥用OAuth重定向行为。攻击者向受害者发送钓鱼链接,点击后,通过一系列精心构造的参数触发OAuth授权流程。在本节中,我们概述了在Microsoft和Google OAuth提供商处观察到的模式。然而,这种重定向技术并不仅限于这些平台,也可能被滥用于其他符合OAuth规范的服务。

微软Entra ID示例

| https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=<app_id>&response_type=code&scope=<invalid_scope>&prompt=none&state=<value> | 由于无效的scope触发错误 | | — | — | | https://accounts.google.com/o/oauth2/v2/auth?prompt=none&auto_signin=True&access_type=online&state=<email>&redirect_uri=<phishing_url>&response_type=code&client_id=<app_id>.apps.googleusercontent.com&scope=openid+https://www.googleapis.com/auth/userinfo.email | 由于需要交互式登录而触发错误,但prompt=none阻止了该请求 |

详细分析针对Entra ID构造的URL,乍一看,这像一个标准的OAuth授权请求,但其中几个参数被故意滥用了。此示例针对所有租户;攻击者无需在其URL中指定特定租户。

| 参数 | 目的 | 攻击者使用原因 | | — | — | — | | /common/ | 面向所有租户 | 广泛的针对性 | | response_type=code | 完整OAuth流程 | 触发认证逻辑 | | prompt=none | 静默认证 | 无界面,无用户交互 | | scope=<invalid_scope> | 确保失败 | 强制进入错误路径 |

此技术通过使用诸如prompt=none和故意构造的无效scope等参数来滥用OAuth 2.0授权端点。该请求的目的并非尝试成功的身份验证,而是迫使身份提供商在不展示用户界面的情况下评估会话状态和条件访问策略。

设置无效scope是触发错误及后续重定向的方法之一,但并非观察到的唯一机制。在以下情况下也可能发生错误:

  • • 用户未登录
  • • 无法检索浏览器会话session
  • • 用户已登录,但应用程序在用户租户中缺少服务主体

根据设计,OAuth流程在遇到某些错误条件后可能会重定向用户。攻击者利用此行为来静默探测授权端点,并推断活跃会话或身份验证强制措施的存在。尽管仍然需要用户点击链接才能进行交互,但重定向路径利用了受信任的身份提供商域来推进攻击。

2.4 第三阶段:OAuth错误重定向

当静默认证失败时,微软Entra ID会返回一个OAuth错误,并将浏览器重定向到攻击者注册的重定向URI,同时附带额外的错误参数。下面的示例展示了经过OAuth重定向后到达的攻击者控制的钓鱼页面。

| https://www.<attacker-domain>/download/XXXX?error=interaction_required&error_description=Session+information+is+not+for+single+sign-on&state=<value> | 来自微软OAuth错误重定向后的URL示例 | | — | — | | https://<attacker-domain>/security/?state=<encoded user email>&error_subtype=access_denied&error=interaction_required | 来自谷歌OAuth错误重定向后的URL示例 |

这实际上意味着:

需要交互式认证: 微软Entra ID提示用户登录或完成多因素认证。

会话信息无法用于静默单点登录: 可能存在一个会话session,但不能被静默利用。

从攻击者的角度来看,这些信息是有用的。它确认了用户账户存在,并且静默SSO被阻止,这意味着需要交互式认证。

攻击者无法获得用户的访问令牌,因为登录失败并返回错误代码65001,表明用户尚未授予应用程序访问资源的权限。然而,此次攻击活动的主要目标是将目标重定向至一个恶意登录页面,在那里可能会进行后续活动,例如下载恶意文件。通过将payload(恶意负载)托管在其控制下的应用程序重定向URI上,攻击者可以在安全过滤器阻止相关域名时,快速轮换或更改被重定向的域名。

2.5 第四阶段:重定向滥用与恶意软件投递

在滥用OAuth重定向技术并使用各种登录页面的攻击者和攻击活动中,我们识别出一个试图投递恶意payload(恶意负载)的特定活动。下文将更详细地描述该活动。

  • • 重定向后,受害者被发送至一个/download/XXXX路径,一个ZIP文件会自动下载到目标设备。
  • • 观察到的payload(恶意负载)包括包含LNK快捷方式文件的ZIP归档文件和HTML走私加载器(smuggling loader)。

在此阶段,攻击活动从身份侦察过渡到端点入侵。

2.6 第五阶段:端点影响与持久化

解压ZIP归档文件后,确认存在PowerShell执行、DLL侧载以及勒索前(pre-ransom)或人工键盘活动。

从恶意重定向下载的ZIP文件包含一个恶意的.LNK快捷方式文件,打开该文件会执行一个PowerShell命令。该脚本通过运行诸如ipconfig /alltasklist等发现命令来启动主机侦察。在此发现阶段之后,PowerShell使用tar实用程序解压出steam_monitor.execrashhandler.dllcrashlog.dat

然后,PowerShell启动了合法的steam_monitor.exe,该程序被利用来侧载恶意的crashhandler.dll。该DLL解密crashlog.dat并在内存中执行最终的payload(恶意负载),最终建立到外部C2(命令与控制)端点的出站连接。

三、缓解与防护指南

为降低风险,组织应通过限制用户授权、定期审查应用程序权限、以及移除未使用或权限过高的应用来严格管控OAuth应用程序。结合身份保护、条件访问策略以及跨邮件、身份和端点的跨域检测,这些措施有助于防止受信任的认证流程被滥用于钓鱼或恶意软件投递。

本报告所述活动突显了一类基于身份的威胁,这类威胁滥用OAuth标准的设计行为,而非利用软件漏洞或窃取凭证。包括RFC 6749在内的OAuth规范定义了如何通过重定向处理授权错误,而RFC 9700则记录了多年来实际部署中汲取的安全经验教训。RFC 9700第4.11.2节(”授权服务器作为开放重定向器”)指出,攻击者可以故意触发OAuth错误,例如通过使用无效的scope(范围)或prompt=none等参数,来强制进行静默错误重定向。尽管此行为符合标准,但攻击者可以利用它,通过受信任的授权端点将用户重定向到攻击者控制的目的地,从而在无需成功认证的情况下实现钓鱼或恶意软件投递。

这些攻击活动表明,这种滥用是实际存在的,而不仅仅是理论上的。恶意的、但符合标准的应用程序可以利用合法的错误处理流程,将用户从受信任的身份提供商重定向到攻击者控制的基础设施。随着组织加强对凭证窃取和MFA(多因素认证)绕过的防御,攻击者越来越多地将目标转向信任关系和协议行为。这些发现进一步印证了以下需求的必要性:跨域XDR(扩展检测与响应)检测、对OAuth重定向行为进行更清晰的治理,以及安全社区持续合作,以减少滥用,同时保留OAuth所实现的互操作性。

3.1 高级狩猎查询

微软Defender XDR客户可以运行以下查询在其网络中查找相关活动:

识别与无效OAuth scope(范围)参数相关的URL点击事件

UrlClickEvents
|&nbsp;where&nbsp;ActionType&nbsp;==&nbsp;"ClickAllowed"&nbsp;or&nbsp;IsClickedThrough&nbsp;==&nbsp;true
|&nbsp;where&nbsp;isnotempty(Url)
|&nbsp;where&nbsp;Url startswith "https://"&nbsp;or&nbsp;Url startswith "http://"
|&nbsp;where&nbsp;Url has "scope=invalid"&nbsp;or&nbsp;UrlChain has "scope=invalid"

识别通过浏览器点击的包含无效OAuth scope(范围)参数的URL

DeviceEvents
|&nbsp;where&nbsp;ActionType&nbsp;==&nbsp;"BrowserLaunchedToOpenUrl"
|&nbsp;where&nbsp;isnotempty(RemoteUrl)
|&nbsp;where&nbsp;RemoteUrl startswith "https://"&nbsp;or&nbsp;RemoteUrl startswith "http://"
|&nbsp;where&nbsp;RemoteUrl has "scope=invalid"

识别OAuth重定向URL后下载的payload(恶意负载)

DeviceFileEvents
|&nbsp;where&nbsp;FileOriginReferrerUrl has_all ("login.", ".com")
|&nbsp;where&nbsp;FileOriginUrl has "error=consent_required"

识别PowerShell命令的执行

DeviceProcessEvents
|&nbsp;where&nbsp;FileName&nbsp;in~&nbsp;("powershell.exe", "powershell_ise.exe")
|&nbsp;where&nbsp;ProcessCommandLine has_all (".zip", "Get-ChildItem", ".fullname", "::OpenRead", ".Length;", ".Read(", "byte[]", "Sleep", "TaR")

识别DLL侧载的使用

DeviceImageLoadEvents
|&nbsp;where&nbsp;InitiatingProcessFileName&nbsp;=~&nbsp;"steam_monitor.exe"
|&nbsp;where&nbsp;FileName&nbsp;=~&nbsp;"crashhandler.dll"
|&nbsp;extend path&nbsp;=&nbsp;tostring(parse_path(FolderPath).DirectoryPath)
|&nbsp;where&nbsp;path&nbsp;=~&nbsp;InitiatingProcessFolderPath
|&nbsp;where&nbsp;not(path has_any (@"\Windows\System32", @"\Windows\SysWOW64", @"\winsxs\", @"\program files"))

3.2 适用于端点的微软Defender

以下适用于端点的微软Defender警报可能表明与此威胁相关的活动。但请注意,这些警报也可能由不相关的威胁活动触发:

  • • 可能来自新兴威胁的初始访问
  • • 被网络防护阻止的可疑连接
  • • 可执行文件加载了意外的DLL文件
  • • 通过上下文信号中断人工键盘攻击
  • • 静默OAuth探测后尝试恶意软件投递

3.3 微软Defender防病毒软件

微软Defender防病毒软件会将此威胁的组件检测为以下类型:

  • • Trojan:Win32/Malgent
  • • Trojan:Win32/Korplug
  • • Trojan:Win32/Znyonm
  • • Trojan:Win32/GreedyRobin.B!dha
  • • Trojan:Win32/WinLNK
  • • Trojan:Win32/WinLNK
  • • Trojan:Win32/Sonbokli

3.4 适用于Office 365的微软Defender

•   投递后移除包含恶意文件的电子邮件 •   投递后移除包含恶意URL的电子邮件 •   投递后移除来自攻击活动的电子邮件

3.5 威胁响应建议

在安全工具中拦截已知的IOC(威胁指标,即IP、域名、文件哈希)。

| 微软Client Ids(与攻击者的OAuth应用程序关联) | | — | | 9a36eaa2-cf9d-4e50-ad3e-58c9b5c04255 | | 89430f84-6c29-43f8-9b23-62871a314417 | | 440f4886-2c3a-4269-a78c-088b3b521e02 | | c752e1ef-e475-43c0-9b97-9c9832dd3755 | | 6755c710-194d-464f-9365-7d89d773b443 | | 3cc07cb4-dba8-4051-82cd-93250a43b53b | | 8c659c19-8a90-49b0-a9f1-15aeba3bb449 | | bc618bf4-c6d1-4653-8c4d-c6036001b226 | | bc618bf4-c6d1-4653-8c4d-c6036001b226 | | 6efe57d9-b00a-4091-b861-a16b7368ab11 | | f73c6332-4618-4b9d-bcd4-c77726581acd | | 6fae87b3-3a0f-4519-8b56-006ba50f62c4 | | 1b6f59dd-45da-4ff7-9b70-36fb780f855b | | 00afba72-9008-454f-bbe6-d24e743fbe73 | | 1b6f59dd-45da-4ff7-9b70-36fb780f855b | | a68c61ee-6185-4b36-bc59-1dca946d95cb |

| 初始重定向URL | | — | | https[:]//dynamic-entry[.]powerappsportals[.]com/dynamics/ | | https[:]//login-web-auth[.]github[.]io/red-auth/ | | https[:]//westsecure[.]powerappsportals[.]com/security/ | | https[:]//westsecure[.]powerappsportals[.]com/security/ | | https[:]//gbm234[.]powerappsportals[.]com/auth/ | | https[:]//email-services[.]powerappsportals[.]com/divisor/ | | https[:]//memointernals[.]powerappsportals[.]com/auth/ | | https[:]//calltask[.]im/cpcounting/via-secureplatform/quick/ | | https[:]//ouviraparelhosauditivos[.]com[.]br/auth/entry[.]php | | https[:]//abv-abc3[.]top/abv2/css/red[.]html | | https[:]//calltask[.]im/cpcounting/via-secureplatform/quick/ | | https[:]//weds101[.]siriusmarine-sg[.]com/minerwebmailsecure101/ | | https[:]//mweb-ssm[.]surge[.]sh | | https[:]//ssmapp[.]github[.]io/web | | https[:]//ssmview-group[.]gitlab[.]io/ssmview |

在您的环境中搜索以下IoC(威胁指标):

  • • 在包含常见钓鱼主题(如文档共享、密码重置、邮箱存储已满、人力资源等)的邮件中,包含prompt=none的认证URL。
  • • 包含带有prompt=none的OAuthURL的意外邮件。
  • • 在初始重定向后,将用户重定向至意外或未知域名的、包含prompt=none的认证URL。
  • • state参数中以明文或编码形式包含邮箱地址的、带有prompt=none的认证URL。
  • • 审查并加强邮件安全策略(如果涉及钓鱼活动)
  • • 启用增强型日志记录和监控
  • • 向安全团队和相关利益方发出警报。

参考文献

  • • 适用于Office 365的微软Defender[2]
  • • 重定向URI(reply URL)最佳实践和限制 – Microsoft身份平台 | Microsoft Learn[3]
  • • Microsoft Entra条件访问:零信任策略引擎 – Microsoft Entra ID | Microsoft Learn[4]
  • • RFC 9700:OAuth 2.0安全性的当前最佳实践[5]
  • • RFC 6749 – OAuth 2.0授权框架[6]

引用链接

[1] 《OAuth redirection abuse enables phishing and malware delivery》: https://www.microsoft.com/en-us/security/blog/2026/03/02/oauth-redirection-abuse-enables-phishing-malware-delivery/ [2] 适用于Office 365的微软Defender: https://learn.microsoft.com/zh-cn/defender-office-365/reports-email-security#view-data-by-email–phish-and-chart-breakdown-by-detection-technology [3] 重定向URI(reply URL)最佳实践和限制 – Microsoft身份平台 | Microsoft Learn: https://learn.microsoft.com/zh-cn/entra/identity-platform/reply-url [4] Microsoft Entra条件访问:零信任策略引擎 – Microsoft Entra ID | Microsoft Learn: https://learn.microsoft.com/zh-cn/entra/identity/conditional-access/overview [5] RFC 9700:OAuth 2.0安全性的当前最佳实践: https://www.ietf.org/rfc/rfc9700.pdf [6] RFC 6749 – OAuth 2.0授权框架: https://datatracker.ietf.org/doc/rfc6749/

交流群


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:云原生安全指北 Dubito Dubito《OAuth重定向滥用:钓鱼&恶意软件投递攻击手法解析》

合理 网络安全文章

合理

文章总结: 该文档内容极不完整,仅展示了标题‘合理’以及署名‘Khan安全团队’、发布时间2026年3月4日和地点中国香港等元数据信息。文档正文部分完全缺失,未
评论:0   参与:  0