“A9 Team 甲方攻防团队,成员来自某证券、微步、青藤、长亭、安全狗等公司。成员能力涉及安全运营、威胁情报、攻防对抗、渗透测试、数据安全、安全产品开发等领域,持续分享安全运营和攻防的思考和实践。”
01
—
分析
邮件中超链接到一个存储桶,点击后下载一个word文档《【共克时艰】2023年企业薪资调整通知.docx》
不得不说,还挺有模有样的。
将文档上传云沙箱 情报平台显示为恶意文件
直接丢到虚拟机上跑,看看有什么行为。
打开此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文件为公式编辑器组件
通过MD5对比,发现原来的EqnEdit被替换了(图标也变了)
另外一个symsrv.dll已经被标识为恶意,甚至有你懂得图标
之后EqnEdit.exe会加载symsrv.dll,通过白加黑的利用方式对
xxxxx.oss-cn-shenzhen.aliyuncs.com这个域名进行DNS查询,与xxx.xx.166.31和xxx.xx.165.230建立网络连接,执行后续的恶意操作。
这几个ip、存储桶链接丢到情报中心分析一波,均标识为恶意
通过EDR检测出来Office进程释放可执行文件/脚本
docx文件实际上是一个压缩文件,其中包含了多个XML和其他相关文件,解压后我们得到一个文件夹。
文件目录作用如下:
_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中添加自定义的功能和交互;
另外一个是docProps文件夹下的core.xml,如前文所说,这里包含文档的作者、创建时间等信息。能看到作者是个A开头的用户,这里是个伏笔我们后文会说到。
至此,已经完成对钓鱼文件的简单分析。这个时候就需要兵分两路,一方面回过头来快速应急;另一方面继续对样本深入地分析、溯源。
应急阶段:
这一步了解到先前已排查公司全网,此钓鱼邮件投递的范围仅一封。且用户没有点开邮件并且及时上报。与此同时,情报的同事也传来了最新的IOC信息。
接着做的应急内容大概如下:
值得一提的是,这个时候的最新情报显示该钓鱼邮件主要利用WPS 0day漏洞,主要受影响为wps个人版的12.1.0.15355以下版本。好消息是我司除个别终端,大部分均已经替换至wps企业版。后续应急重点也是针对企业内部的个人版用户开展。根据不断冒出的最新情报信息做应急加固,并验证加固策略生效。
不得不说,这一点确实运气好,分析样本的虚拟机中办公工具装的是wps个人版,且在受影响范围内,能对这个钓鱼样本有一个比较整体的分析判断。与此同时,溯源的师傅也传来消息,通过上文core.xml中包含的作者信息,已经抓到了作者的博客、微博等信息,为某大厂攻击队相关人员,很可能就是此次钓鱼的攻击者。
说说这次0day漏洞的主要原理:在docx文档中嵌入一个wps web扩展,当使用wps去打开文档的时候会去请求里面的链接。由于WPS内部的浏览器存在漏洞,会调用系统的api实现特定路径的文件下载和执行,导致RCE利用。
后续Sou1rain师傅对这一漏洞进行了更深入的分析,本次漏洞主要利用点是通过白名单匹配项访问域名,通过浏览器对象览器对象 WebShape白名单就能调用`KxWebExtensionView::delayShowWebView(this)`函数,在无任何提示的情况下创建访问链接,实现0click。
这里的白名单利用的是
WPS Office\version\office6\addons\kwebextensionlist\config.ini
文件中trustedDomains键的键值结尾的域名,即以 wps.cn 或 wpscdn.cn 结尾的域名可实现直接访问。
样本中正是以`education-web.docer.wps.cn`结尾。同时也提到了一个之前没有注意到的点,就是word文档中会有一个小图标,如下图:
这是以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