贺才良,周安民,刘 亮
(四川大学 信息安全研究所,四川 成都610064)
微软公司在1996年开发了ActiveX控件技术,它是在组件对象模型(COM)的基础上发展而来的。ActiveX控件的诞生与使用,大大扩展了IE浏览器的功能,使得IE浏览器处理Web文件的能力大大增强。
随着ActiveX控件的应用越来越多,ActiveX漏洞曝光也从未间断。自2006年开始每年都有大量的ActiveX漏洞曝光,其中大部分是高危漏洞,各种利用ActiveX漏洞的恶意软件、木马、病毒随处可见,其引发的安全问题不容忽视。近年来ActiveX漏洞又有回升的趋势,2011年1月~10月已公布的ActiveX漏洞就已经达到了89个[1]。在这些数据当中还不包括未曝光和未被统计的漏洞,ActiveX漏洞的严重程度可见一斑。因此针对ActiveX控件的安全研究十分地关键。
2011下半年,UUSee网络电视频频爆出ActiveX控件漏洞,灰帽子实验室在6月2日曝光了UUSee的UUPlayer.ocx ActiveX控件中DoCmd函数存在缓冲区溢出漏洞[2]。由于UUSee网络电视拥有庞大的用户群,故该漏洞属于“高危”型漏洞。鉴于该漏洞的典型性,本文以此为例对ActiveX漏洞进行逆向分析,调试的环境如表1所示。

表1 UUPlayer.ocx控件漏洞调试环境
用OllyDbg附加IE进程并运行,用IE打开POC文件。程序崩溃,OllyDbg捕捉到一个访问异常,EIP寄存器指向了一个非法地址。采用栈回溯的方法在地址0x73D47AC1下硬件执行断点。通过“跳过-异常-进入”方法跟踪到调用漏洞函数指令处:

发现eax指向UUPlayer这个控件的地址空间,观察此时的堆栈,一个可疑字符串出现在栈顶作为CALL EAX的调用参数,跟进此函数。以下列出了该函数中关键的反汇编代码段。……