最新 WPS RCE (远程命令执行) 复现

最近HVV爆出的很火的WPS命令执行漏洞,其实并不是0DAY,早在2019年就出现了,只不过最近EXP才公开。接下来我们来复现一遍。

0x00 影响版本

  • WPS Office 2023 个人版 < 11.1.0.15120
  • WPS Office 2019 企业版 < 11.8.2.12085

0x01 环境配置

  • wps版本: WPS V11.1.0.12300
  • 靶机: windows 10
  • 攻击机: ubuntu 20.04 IP:192.168.2.103

0x02 漏洞原理

WPS 内置了一个浏览器,可以解析html/javascript/css代码。产生漏洞的原因就是未能正常处理JS代码,造成内存溢出,最终导致了RCE漏洞。

0x03 前期准备

  • 一个包含执行计算器命令的DOC文件。
  • 一个包含执行反弹shell命令的DOC文件。
  • 一个包含恶意代码的html文件。
  • Ubuntu安装了python3和nc。

0x04 修改window靶机的hosts文件

hosts文件路径:C:\\windows\system32\drivers\etc\

当使用WPS内置浏览器访问第三方网站链接时会产生弹窗,但是如果访问的域名在内置白名单内就不会弹。
所以为了方便测试,我们直接修改靶机的hosts文件,增加一条:

192.168.2.103 clientweb.docer.wps.cn.cloudwps.cn
# ubuntu 开启80端口
python3 -m http.server 80

最后利用域名去浏览器访问,测试是否能够成功访问。
null
如图,能正常访问,但是页面空白即为正常。

0x05 触发计算器

Ubuntu本机开启web服务,用于靶机远程下载恶意HTML文件。

# ubuntu 20.04
python3 -m http.server 80

直接将包含执行计算器命令的DOC文件传到windows打开即可触发计算器。如图:
null

0x06 反弹shell

反弹shell的话,与触发计算器有一点区别,除了需要新的word外,ubuntu上的html文件也需要跟换。这里直接使用,具体相关细节可以加群讨论。
Ubuntu本机开启web服务,用于靶机远程下载恶意HTML文件。

# ubuntu 20.04
python3 -m http.server 80
# 另开一个终端窗口
nc -lvnp 9000

触发: 将包含执行反弹shell命令的DOC文件上传到windows上并打开即可触发反弹shell命令。
null

0x06 修复

直接升级wps为官方最新版即可抵御此漏洞。