钓鱼邮件:WPS 0Day漏洞的威胁和应对

钓鱼邮件:WPS 0Day漏洞的威胁和应对

分析

某次演练期间,团队内收到了一个钓鱼邮件,管理邮件网关的老哥将样本丢给我进行简单分析,小看一手,发现标题和内容都是相当吸引人去点击浏览的

image-20231222151922583

邮件中超链接到一个存储桶,点击后下载一个word文档《【共克时艰】2023年企业薪资调整通知.docx》

image-20231222152013085

不得不说,还挺有模有样的。

image-20231222152043409

将文档上传云沙箱 情报平台显示为恶意文件

image-20231222153111798

直接丢到虚拟机上跑,看看有什么行为。

打开此docx文件,会生成两个文在wps的公式编辑器安装目录:

C:\Users\Lotus\AppData\Local\Kingsoft\WPS Office\12.1.0.15355\office6\mui\zh_CN\resource\ksee\EqnEdit.exe

C:\Users\Lotus\AppData\Local\Kingsoft\WPS Office\12.1.0.15355\office6\mui\zh_CN\resource\ksee\symsrv.dll

我们依次看看这两个文件

EqnEdit:EqnEdit文件为公式编辑器组件

image-20231222153215380

通过MD5对比,发现原来的EqnEdit被替换了(图标也变了)

image-20231222152607962

另外一个symsrv.dll已经被标识为恶意,甚至有你懂得图标

image-20231222152727091

之后EqnEdit.exe会加载symsrv.dll,通过白加黑的利用方式对

xxxxx.oss-cn-shenzhen.aliyuncs.com这个域名进行DNS查询,与xxx.xx.166.31和xxx.xx.165.230建立网络连接,执行后续的恶意操作。

image-20231222153645326

image-20231222154033193

这几个ip、存储桶链接丢到情报中心分析一波,均标识为恶意

image-20231222154246551

通过EDR检测出来Office进程释放可执行文件/脚本

image-20231222154716861

docx文件实际上是一个压缩文件,其中包含了多个XML和其他相关文件,解压后我们得到一个文件夹。

image-20231222154733522

文件目录作用如下:

1
2
3
4
5
6
7
8
9
10
11
- _rels文件夹:包含文档相关的关系文件,这个文件记录了文档中各个部分之间的关联关系
- docProps文件夹:包含了文档的属性信息,这些信息描述了文档的元数据,如标题、作者、创建日期等
- core.xml:包含文档的核心元数据,比如作者、标题、主题等。
- app.xml:包含应用程序级别的属性,比如应用程序名称、版本等。
- Word文件夹:包含了文档的主要内容
- document.xml:这是最主要的XML文件,包含了文档的实际内容,如段落、文字、样式等
- styles.xml:这个文件定义了文档中使用的样式,如字体、颜色、段落格式等。
- settings.xml:这个文件包含了文档的各种设置,如页面大小、页边距、缩放比例等。
- webExtensions.xml:它用于定义Word文档中的Web扩展(Web Extensions)相关的设置和功能。Web扩展是一种允许在Word中添加自定义功能和交互的技术。在这个文件中能找到一些与Web扩展相关的信息,比如扩展的名称、描述、图标、脚本等。
- theme文件夹:这个文件夹包含了文档的主题信息,如颜色、字体等。
[Content_Types].xml:这个XML文件定义了文档中包含的不同类型的文件,如XML文件、图像文件等。

这里我们重点关注两个xml文件,第一个是webExtensions.xml,包含着攻击者远程下载文件的路径。Word的Web扩展是一种技术,它允许开发者在Word中添加自定义的功能和交互;

image-20231222161812867

另外一个是docProps文件夹下的core.xml,如前文所说,这里包含文档的作者、创建时间等信息。能看到作者是个A开头的用户,这里是个伏笔我们后文会说到。

image-20231222162119324

至此,已经完成对钓鱼文件的简单分析。这个时候就需要兵分两路,一方面回过头来快速应急;另一方面继续对样本深入地分析、溯源。

应急阶段:

这一步了解到先前已排查公司全网,此钓鱼邮件投递的范围仅一封。且用户没有点开邮件并且及时上报。与此同时,情报的同事也传来了最新的IOC信息。

接着做的应急内容大概如下:

image-20231222162404226

值得一提的是,这个时候的最新情报显示该钓鱼邮件主要利用WPS 0day漏洞,主要受影响为wps个人版的12.1.0.15355以下版本。好消息是我司除个别终端,大部分均已经替换至wps企业版。后续应急重点也是针对企业内部的个人版用户开展。根据不断冒出的最新情报信息做应急加固,并验证加固策略生效。

不得不说,这一点确实运气好,分析样本的虚拟机中办公工具装的是wps个人版,且在受影响范围内,能对这个钓鱼样本有一个比较整体的分析判断。与此同时,溯源的师傅也传来消息,通过上文core.xml中包含的作者信息,已经抓到了作者的博客、微博等信息,为某大厂攻击队相关人员,很可能就是此次钓鱼的攻击者。

image-20231222162445602

说说这次0day漏洞的主要原理:在docx文档中嵌入一个wps web扩展,当使用wps去打开文档的时候会去请求里面的链接。由于WPS内部的浏览器存在漏洞,会调用系统的api实现特定路径的文件下载和执行,导致RCE利用。

后续Sou1rain师傅对这一漏洞进行了更深入的分析,本次漏洞主要利用点是通过白名单匹配项访问域名,通过浏览器对象览器对象 WebShape白名单就能调用KxWebExtensionView::delayShowWebView(this)函数,在无任何提示的情况下创建访问链接,实现0click。

这里的白名单利用的是WPS Office\version\office6\addons\kwebextensionlist\config.ini文件中trustedDomains键的键值结尾的域名,即以 wps.cnwpscdn.cn 结尾的域名可实现直接访问。

样本中正是以education-web.docer.wps.cn结尾。同时也提到了一个之前没有注意到的点,就是word文档中会有一个小图标,如下图:

image-20231222162708637

这是以GitHub 上公开的项目 ba0gu0/wps-rce 中对 PoC_docx 的构造可知该图片来源于 PoC_docx\word\media\image.png

通过修改 PoC_docx\word\_rels\document.xml.rels 文件和 PoC_docx\word\document.xml 文件把 image 图片和 webExtension1.xml 文件绑定起来,构造成浏览器对象 WebShape,拉起 WPS web 组件,才有后续的任意网页访问。

修复

修复手段:

  • 将WPS升级到最新版本

防护手段:

  • 不要随意点开任何不明来源的文件、链接
  • 不要随意点不明来源来源的邮件中附带的url、带url超级链接或图片
  • 若不慎点击,需立即断开网络,与IT人员联系协助处理

小结

这次的0day漏洞出现的时候官网尚未修复,属于在野利用状态,配合钓鱼场景利用危害极大。不难发现近几年针对国产化的流行软件漏洞愈加频繁,这一趋势表明随着国内软件的普及和使用率上升,国内软件也会逐渐成为安全防守和对抗的主战场。

参考连接:

[1] https://cloud.tencent.com/developer/article/2350916?areaId=106001