欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]CVE-2017-11882分析调试

[原创]CVE-2017-11882分析调试

环境:win7sp3, office2007

工具:winDbg, IDA

漏洞成因:

  • 该漏洞出现在模块EQNEDT32.EXE中, 该模块为windows的公式编辑器, 该模块以OLE技术(对象链接与嵌入)将公式嵌入在office文档内.
  • 模块路径: C:\Program Files\Common Files\microsoft shared\EQUATION
  • EQNEDT32.EXE在插入和编辑是会以独立进程的形式存在. 导致了系统对于office和Excel的保护机制, 无法有效的阻止EQNEDT32.EXE这个进程被利用.

    开始分析:

    0x00

  • 1.通过process explorer查看进程树看expolite弹出的计算器的父进程是谁

    发现是EQNEDT32.EXE这个模块
  • 2.因为漏洞是出现在EQNEDT32.EXE里面, 所以我们可以先将其调试器修改为winDbg, 这样在加载这个模块的时候就会被附加到winDbg窗口.
  • 注册表路径为:HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\IMAGE FILE EXECUTION OPTIONS
  • 3.因为弹出计算器的时候创建了新的进程,所以我们可以认为新的进程是由WinExec或者CreatProcess创建的。
  • 4.下bp断点kernel32!WinExec和CreateProcess, 然后 ‘g’
  • 5.分析WiinExec的参数和返回地址

    看到通过cmd的方式调用了calc
  • 6.再继续栈回溯看是哪个函数调用的WinExec
  • 7.查看函数栈, 从函数返回地址继续往上栈回溯

  • 8.这个时候需要用winDbg对这些函数下断点跟进, 看是哪个函数触发了计算器

  • 9.发现是sub_41160F函数弹出了计算器

    0x01

  • 1.重新运行exploit, 用winDbg运行到41160F处查看堆栈内容
  • 2.用IDA静态分析一下这个函数的指令

  • 3.本函数的参数

  • 用WinDbg单步执行完4111658这条指令查看函数返回地址是否被覆盖了

    第一次分析CVE有什么错误的地方请大家指正,我回头会修改

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功