尬欢网 > 社会 > 正文

​WPS Office从路径穿越到远程代码执行漏洞(CVE-2024-7262)分析与复现

2024-10-14 21:21 来源:尬欢网 点击:

WPS Office从路径穿越到远程代码执行漏洞(CVE-2024-7262)分析与复现

漏洞概述

WPS Office 程序 promecefpluginhost.exe 存在不当路径验证问题,允许攻击者在 Windows 上加载任意 Windows 库文件。该漏洞已被 APT-C-60 攻击者利用,当用户打开 MHTML 格式的文档时,只需单击一个恶意制作的超链接,即可执行攻击者指定的恶意库文件,实现远程代码执行。

影响范围

WPS Office 版本 12.2.0.13110-12.2.0.16412

复现环境

操作系统:Win10   10.0.18363.592 WPS   Office 版本:WPS   Office   12.2.0.13110

分析过程

WPS 程序安装后注册了一个名为 ksoqing 的自定义 URL 协议,注册表路径为:计算机 HKEY_CLASSES_ROOTksoqingshellopencommand,其内容为 "C:Users【用户名】AppDataLocalKingsoftWPS Office12.2.0.13110office6wps.exe" /qingbangong "%1"。即访问以 ksoqing 开头的 URL 协议时,将启动 wps.exe 程序,并传递 /qingbangong 参数,%1 则被替换为以 ksoqing 开头的协议链接,一并作为 wps 启动的参数。

此时 wps.exe 程序解析参数 /qingbangong,并将 ksoqing 链接内容一并发送到 C:Users【用户名】AppDataLocalKingsoftWPS Office12.2.0.13110office6wpscloudsvr.exe

wpscloudsvr.exe 中的 qingbangong.dll 解析自定义 URL 链接内容。当 type 参数为 ksolaunch 时,将启动 launchname 参数指定的程序,参数使用 base64 编码。

launchname 参数指定的程序启动时,wpscloudsvr.exe 会将 URL 链接中的 cmd 参数使用 base64 解码,然后传递给它。

如果 launchname 参数指定的是 promecefpluginhost.exe,该程序启动后,将加载 ksojscore.dll,然后解析命令行中的 -JSCefServicePath。

这个参数可以指定一个文件名,这个文件会被 kso_qt::QLibrary::load 函数加载到内存执行。默认情况下,如果只是指定一个文件名,会按照 DLL 搜索顺序搜索和加载这个文件,比如加载同 EXE 目录下指定的 DLL 文件。但是这个参数未做任何过滤,可以指定 ".." 包含目录的路径,存在路径穿越漏洞,可以加载任意指定的 DLL 文件,最终实现任意代码执行。

使用路径穿越的漏洞可以加载指定 DLL 文件,但这还不够。APT-C-60 攻击者使用 MHTML 格式的 xls 电子表格文件,利用其特性,实现下载远程 DLL 文件的目的。WPS 支持 MHTML 格式的文档,这种文档可以包含 HTML、CSS 和 JavaScript 等文件,方便在浏览器中显示文档。

文档中可以使用 img 标签,指定远程 DLL 文件。

当文档被打开时,wps 使用 _XUrlDownloadToCacheFile 函数下载文件到 temp 目录下的 wpsINetCache 目录中。

下载后的文件名,使用的是下载链接(UNICODE 编码)的 MD5 值。

最终配合上述路径穿越漏洞,在 -JSCefServicePath 参数中指定下载的文件名,实现远程代码执行。这里还有一个小技巧,因为下载后的文件名并没有 .dll 后缀,而在加载的时候如果没有指定 .dll 后缀,会自动补上该后缀再加载。为了避免在加载的时候找不到指定文件导致失败,在 -JSCefServicePath 参数中指定下载的文件名时,需要在文件名最后额外加个 "."。

漏洞复现

新建 xls 格式的文档,添加超链接,超链接可任意,并另存为 MHTML 格式的文档。

根据远程 DLL 的下载链接,使用 poc.py 计算下载后的文件名,并最终生成 ksoqing 协议链接。

将 ksoqing 链接替换导出的 MHTML 格式文档中的超链接。

再根据远程 DLL 的下载链接,添加 img 标签,实现远程下载 DLL 文件。

开启远程 DLL 下载服务,然后打开 MHTML 文档,点击超链接,触发漏洞。

参考链接

ddpoc 链接:

https://www.ddpoc.com/DVB-2024-8279.html

https://www.welivesecurity.com/en/eset-research/analysis-of-two-arbitrary-code-execution-vulnerabilities-affecting-wps-office/

https://nvd.nist.gov/vuln/detail/CVE-2024-7262

https://avd.aliyun.com/detail?id=AVD-2024-7262

原文链接