执行摘要
Check Point Research 最近在“Microsoft Message Queuing”服务(通常称为 MSMQ)中发现了三个漏洞。这些漏洞已披露给 Microsoft,并在 4 月补丁星期二更新中进行了修补。其中最严重的漏洞被 CPR 称为 QueueJumper (CVE-2023-21554),是一个严重漏洞,可能允许未经身份验证的攻击者在 Windows 服务进程 mqsvc.exe 的上下文中远程执行任意代码。
Check Point Research (CPR) 在实施补丁后发布此博客,以提高对该严重漏洞的认识,并为 Windows 用户提供防御见解和缓解建议。我们将在本月晚些时候发布完整的技术细节,让用户有时间在公开披露技术细节之前修补他们的机器。
主要发现
在 MSMQ 服务中发现了三个漏洞,所有这些漏洞都在 4 月补丁星期二更新中进行了修补:
CVE-2023-21554 (QueueJumper) — 未经身份验证的远程代码执行
CVE-2023-21769 — 未经身份验证的远程应用程序级 DoS(服务崩溃)
CVE-2023-28302 — 未经身份验证的远程内核级 DoS(Windows 蓝屏死机)
最严重的漏洞允许未经身份验证的攻击者在 Windows 服务进程 mqsvc.exe 的上下文中执行任意代码。
MSMQ 作为可选的 Windows 组件提供,并且在所有 Windows 操作系统上仍然可用,包括最新的 Windows Server 2022 和 Windows 11MSMQ据微软称,Microsoft Message Queuing(简称“MSMQ”),
“是一个消息基础设施和开发平台,用于为 Microsoft® Windows® 操作系统创建分布式、松散耦合的消息应用程序。消息队列应用程序可以使用消息队列基础结构跨异构网络和可能离线的计算机进行通信。消息队列提供有保证的消息传递、高效的路由、安全性、事务支持和基于优先级的消息传递。”
讨论该服务的最新Microsoft 文档于 2016 年更新。一些 MSMQ 专家在 2020 年 1 月发表了一篇博文,探讨了该服务的退役趋势。尽管被认为是一项“被遗忘”或“遗留”的服务,但 MSMQ 在所有 Windows 操作系统上仍然可用,包括最新的 Windows Server 2022 和 Windows 11,并作为可选的 Windows 组件提供。用户可以通过控制面板或 PowerShell 命令“ Install-WindowsFeature MSMQ-Services ”轻松启用该服务。
图 1 – 在 Windows 服务器上启用/禁用 MSMQ 服务*
QueueJumper漏洞
CVE-2023-21554 漏洞允许攻击者通过到达 TCP 端口 1801,在未经授权的情况下远程执行代码。换句话说,攻击者可以通过利用漏洞利用到 1801/tcp 端口的一个数据包来控制进程, 触发漏洞。
影响
我们现在知道攻击向量将数据包发送到服务端口 1801/tcp。为了更好地了解这项服务在现实世界中的潜在影响,CPR 进行了全面的互联网扫描。
令人惊讶的是,我们发现超过 360,000 个 IP 已向 Internet 开放 1801/tcp 并运行 MSMQ 服务。
请注意,这仅包括面向 Internet 的主机数量,不包括在内部网络上托管 MSMQ 服务的计算机,后者的数量应该多得多。
MSMQ 服务是一些流行软件所依赖的“中间件”服务。当用户安装流行的软件时,MSMQ 服务会在 Windows 上启用,而这可能是在用户不知情的情况下完成的。
例如,CPR 看到,在安装官方Microsoft Exchange Server时,如果用户选择“自动安装安装 Exchange 所需的 Windows Server 角色和功能”选项,安装向导应用程序将在后台启用 MSMQ 服务,即微软推荐。
图 3 – 如果选择该选项,安装 Exchange Server 将在机器上启用 MSMQ*
安装后会自动开启MSMQ服务:
图 4 – 安装 Exchanger Server 后,MSMQ 进程在同一台机器上运行*
因此,它让 Exchange Server 在同一台机器上运行 MSMQ 服务。
重要的是,如果在服务器上启用了 MSMQ,攻击者可能会利用此漏洞或任何 MSMQ 漏洞并接管服务器。因此,我们强烈建议管理员仔细检查他们的服务器并遵循列出的保护和缓解建议。
保护与缓解
我们建议所有 Windows 管理员检查他们的服务器和客户端以查看是否安装了 MSMQ 服务。您可以检查是否有名为“消息队列”的服务正在运行,并且 TCP 端口 1801 正在计算机上侦听。如果已安装,请仔细检查是否需要它。关闭不必要的攻击面始终是一种非常好的安全做法。
对于我们讨论的这个特殊漏洞,我们建议用户尽快安装微软的官方补丁。如果您的企业需要 MSMQ 但现在无法应用 Microsoft 的补丁,您可以使用防火墙规则阻止来自不受信任来源的 1801/tcp 的入站连接(例如,阻止面向 Internet 的机器与 1801/tcp 的 Internet 连接),因为解决方法。
Check Point IPS 开发并部署了名为“ Microsoft 消息队列远程代码执行 (CVE-2023-21554) ”的签名,以检测并保护我们的客户免受 QueueJumper 漏洞的侵害。