Office ActiveX 堆喷射样本

使用 Active 控件喷射堆

  • Office 有不少关于堆的漏洞,例如比较经典的 cve-2016-7193 漏洞,在覆盖了虚表进行 call 调用时就需要将利用载荷喷射到 call 的地址在进行下一步的利用。而使用 Active 控件进行堆喷射也是比较流行的方法。Parvez Anwar 在他的博客中详细的描述了此方法,并且公布了相关的 Poc

堆喷射样本分析

32 位

  • 32 位的样本共有 4 个,分别对应着不同的堆喷射数据大小
    在这里插入图片描述
  • 每个样本都是使用嵌入的 ActiveX 对象,包括一个 bin 文件和多个 xml 文件,xml 文件负责将 bin 文件的数据喷射到内存中
    在这里插入图片描述
  • 喷射的数据为测试数据
    在这里插入图片描述

64 位

  • 和 32 位的类似

构造

  • 使用 create_word_bin.pl 脚本构造 bin 文件
    在这里插入图片描述
  • 使用 create_word_xml.pl 创建解压的 docx 文件
    在这里插入图片描述
  • 将 bin 文件添加并修改以下文件
[Content_Types].xml   – 包含指向各个 activeX[x].xml 条目的条目
document.xml          – 包含引用 document.xml.rels 中设置的 activex[x].xml 文件的 ID
document.xml.rels     – 包含单独的 image[x].emf 和 activeX[x].xml 条目、独特的 rIdes
activeX[x].xml        – 调用每个 activeX[x].xml 文件中的 classID
activeX[x].xml.rels   – 指向各个 activeX[x].bin 文件
activeX[x].bin        – 复合文件二进制格式

测试

  • 经过测试不论是 32 位还是 64 位都能够喷射成功,500 chunks 的文件喷射效果如下所示
    在这里插入图片描述
  • 以下是喷射的数据
    在这里插入图片描述

参考

  • https://www.greyhathacker.net/?p=911

猜你喜欢

转载自blog.csdn.net/qq_38924942/article/details/132462008