一项在 MSI Center 软件中发现的严重安全漏洞,允许任何本地用户获得系统的最高权限。该漏洞源于一个名为“Notebook Foundation”的服务,它通过一个名为 MSI_SERVICE_2 的管道,向用户暴露了可以执行任意程序、修改注册表和系统设置的危险命令。尽管该服务使用了过时的 3DES 加密,但研究人员证明可以轻松绕过,从而实现权限提升。MSI 在接到报告后迅速修复了该漏洞,但其用于接收漏洞报告的邮箱一度因“邮箱已满”而无法工作。
漏洞的发现
研究人员首先下载了 MSI Center 的离线安装包,并使用工具 innoextract 将其解包。在对包含的 170 多个可执行文件和库进行反编译后,通过搜索常见的弱点(如 CreateNamedPipe 函数),最终定位到了问题所在。这个函数用于创建进程间通信的命名管道。
危险的系统服务
漏洞的核心在于 MSI 的 “Notebook Foundation”服务。该服务在系统启动时会创建一个命名管道,并设置了不安全的权限,允许任何已认证的用户(即使非管理员)与其交互。
该服务提供了一系列高权限命令,攻击者可以利用这些命令进行恶意操作:
- 注册表操作: 允许以 LocalSystem(系统最高权限)身份读取、写入和删除任何注册表项。
- WMI 操作: 允许监控硬件和修改系统设置,例如禁用 Windows Defender 或添加排除项。
- 进程控制:
REXE: 以 LocalSystem 权限运行任何程序。KEXE: 强制终止系统上的任何进程。
这些功能相当于为恶意软件或低权限用户提供了一个直接获取系统控制权的后门。
绕过安全机制
为了与该服务通信,MSI 设计了一个自定义协议,并要求所有消息都使用 3DES 加密。然而,这种加密方式早已过时且不安全。
利用该漏洞的步骤如下:
- 连接到名为
MSI_SERVICE_2的命名管道。 - 使用任意字符串(如
ABCD123)注册一个客户端。 - 使用该字符串作为密钥,通过 3DES 加密
PC:REXE等恶意命令。 - 服务会尝试用所有已注册的客户端名称作为密钥进行解密,一旦成功,便会以 LocalSystem 权限执行命令。
研究人员还发现,此漏洞甚至可以通过局域网内的 SMB 协议远程触发,从而可能导致远程代码执行(RCE),前提是攻击者拥有目标机器的有效登录凭据。
漏洞报告过程
在尝试向 MSI 的安全邮箱报告此漏洞时,研究人员收到了一个意外的自动回复:
Remote Server returned '554 5.2.2 mailbox full; STOREDRV.Deliver.Exception: QuotaExceededException.MapiExceptionShutoffQuotaExceeded;'
这表明 MSI 用来接收漏洞报告的邮箱已满,无法接收新的邮件。这意味着不仅这份报告,其他潜在的安全报告也可能在无人知晓的情况下被丢弃。
尽管遇到了这个插曲,在通过其他渠道联系上 MSI 员工后,漏洞处理过程非常顺利。MSI 在收到报告的两天内就准备好了补丁,并告知了修复版本号及发布计划。
时间线 (日/月/年)
- 09/05/2023: 发现漏洞
- 10/05/2023: 报告漏洞
- 12/05/2023: MSI 回应称已制作补丁
- 01/06/2023: MSI Center 2.0.70.0 版本发布
- 03/06/2023: 通过第三方机构申请 CVE 编号
- 01/07/2023: 漏洞信息公开