CVE编号:CVE-2010-2883
受影响软件:Adobe Reader 8.2.4—9.3.4
描述:
该漏洞存在于Adobe Reader的字体解析模块CoolType.dll中,当Adobe Reader在处理CoolType字体文件的sing表时存在栈溢出漏洞,允许远程执行任意代码,并且可以绕过DEP等多种windows保护机制
利用:
在metasploit中使用该漏洞进行******之前,请安装Metasploit Framework 3.4.1,该安装程序可在http://www.metasploit.com/framework/download/上下载,分别有windows、linux及unix三种版本,可选一种下载安装(本例使用windows平台进行测试)。安装后在桌面会生成Metasploit Console及Metasploit Update快捷方式,首先双击运行Metasploit Update更新漏洞库,更新完后即可双击Metasploit Console运行metasploit进行***测试。
1.打开metasploit并输入命令show exploits会显示出目前可以使用的exploits;
2.输入use windows/fileformat/adobe_cooltype_sing即选择使用该漏洞,然后输入show options查看使用详细信息;
3.查看该漏洞默认的配置信息C:\Program Files\Metasploit\Framework3\msf3\data\exploits路径为样本生成的路径,生成的样本名称为msf.pdf,然后配置配置下载执行的payload即shellcode,并配置好自己的url,注意此处url为可用的下载地址;
4.配置信息完毕,即可生成漏洞利用样本文件,输入exploit即可生成,输入完毕后在先前配置的C:\Program Files\Metasploit\Framework3\msf3\data\exploits路径下找到msf.pdf即可进行******测试;
当目标用户运行该pdf文件的同时,会从指定的url上下载并执行该应用程序。
分析:
典型的直接调用strcat这类不安全的字符串操作函数而造成的缓冲区溢出漏洞,以上exploit通过覆盖栈上的函数指针来达到漏洞利用的目的。
.text:0803DC6D push offset aSing ; "SING" .text:0803DC72 push edi ; int .text:0803DC73 lea ecx, [ebp+var_24] .text:0803DC76 call sub_8021AC6 .text:0803DC7B mov eax, [ebp+var_24] ; eax指向SING表 .text:0803DC7E cmp eax, esi .text:0803DC80 mov byte ptr [ebp+var_4], 2 .text:0803DC84 jz short loc_803DCBD .text:0803DC86 mov ecx, [eax] .text:0803DC88 and ecx, 0FFFFh .text:0803DC8E jz short loc_803DC98 ; .text:0803DC90 cmp ecx, 100h .text:0803DC96 jnz short loc_803DCB9 .text:0803DC98 .text:0803DC98 loc_803DC98: ; .text:0803DC98 add eax, 10h ; eax = offset of SING + 0x10, 即指向了SING表的uniqueName字段 .text:0803DC9B push eax ; .text:0803DC9C lea eax, [ebp+0] ; eax指向栈内存的指针, 用于存储数据 .text:0803DC9F push eax ; Dest .text:0803DCA0 mov byte ptr [ebp+0], 0 .text:0803DCA4 call strcat ; 直接拷贝uniqueName到栈空间,没有对数据长度进行任何的校验 .text:0803DCA9 pop ecx |
检测:
在Adobe的文档中实际规定uniqueName的长度最多为28字节,通过解析CoolType字体文件,找到uniqueName字段即可进行检测。
转载于:https://blog.51cto.com/611916/466582