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.592WPS Office版本:WPS Office 12.2.0.13110

分析过程

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

图片

此时wps.exe程序解析参数/qingbangong,并将ksoqing链接内容一并发送到 C:\Users\【用户名】\AppData\Local\Kingsoft\WPS Office\12.2.0.13110\office6\wpscloudsvr.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目录下的wps\INetCache目录中。

图片

图片

下载后的文件名,使用的是下载链接(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-7262https://avd.aliyun.com/detail?id=AVD-2024-7262
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值