ActiveX 控件漏洞挖掘方法.docx

上传人:牧羊曲112 文档编号:4882743 上传时间:2023-05-21 格式:DOCX 页数:7 大小:253.44KB
返回 下载 相关 举报
ActiveX 控件漏洞挖掘方法.docx_第1页
第1页 / 共7页
ActiveX 控件漏洞挖掘方法.docx_第2页
第2页 / 共7页
ActiveX 控件漏洞挖掘方法.docx_第3页
第3页 / 共7页
ActiveX 控件漏洞挖掘方法.docx_第4页
第4页 / 共7页
ActiveX 控件漏洞挖掘方法.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《ActiveX 控件漏洞挖掘方法.docx》由会员分享,可在线阅读,更多相关《ActiveX 控件漏洞挖掘方法.docx(7页珍藏版)》请在三一办公上搜索。

1、ActiveX是微软公司提出,并在1996年被正式命名的组件技术。该技术提供了 一种通用的开放程序接口,使用这种技术开发的ActiveX控件可以直接集成到 IE浏览器或第三方应用程序中,但由于第三方编程等问题,控件的漏洞越来越 多,很容易被攻击者利用进行破坏及窃取信息等活动,给个人和企业带来很大损 失。本文结合H3C攻防研究团队在攻防研究过程中的经验和体会,阐述ActiveX 控件漏洞产生的原理及漏洞挖掘方法。ActiveX控件概念1. ActiveX 产生ActiveX是以微软COM模型(Component Object Model)为理论基础建立起来的 技术,通过建立带有接口的对象,Act

2、iveX控件能被其他COM组件或者程序调用。ActiveX控件技术提供了一个集成平台,为开发人员、用户提供了一个快速简便 的在Internet或Intranet程序集成的方法。传统的浏览器只能将HTML网页读 出并显示,呈现给用户的是一个静止的、无变化的呆板网页。使用ActiveX控 件可以轻松方便的在Web页中插入多媒体、交互式对象、各种文档格式以及复 杂程序,使浏览器显示的网页变得“聪明活泼”,既能进行计算产生新信息,又 使显示更具娱乐性。2. ActiveX控件基本属性ActiveX控件由三大要素组成:属性、方法、事件。属性:控件的基本特性,描述控件的信息。方法:控件提供给外界的接口,A

3、ctiveX控件需要提供函数接口名称及参数, 使用者可以通过这些来设置控件的某些性质、执行某项动作或者进行某些运算。事件:控件对外部操作或内部处于某种状态时向控件所发出的操作指令,如 用户鼠标点击、控件应答鼠标事件、显示特殊的多媒体文件等。3. ActiveX控件工作原理ActiveX控件要想正常使用,必须工作在一个名为Container (容器)的独立软件 中。这种软件可以是应用软件,如迅雷、媒体播放器;也可以是浏览器,如IE; 还可以是文字处理软件,如pdf、word等。ActiveX控件通过组件的方式进行工 作,如果一个网页或程序中想增加一项特殊的功能,不需要重写整个程序,只要 灵活地插

4、入一个具有此项功能的ActiveX控件即可。要调用ActiveX控件,首先要创建控件实例对象,对控件进行实例化后,才可以 设置和操作ActiveX控件的属性和方法。ActiveX控件能在ASP,JSP等页面中通 过object标签创建,object标签包含类id(clsid)或名称id(progid),识别 需要实例化的ActiveX控件。以IE浏览器为例,说明容器(这种情况下IE就是ActiveX控件的容器)如何调 用ActiveX控件。当IE浏览器发出请求时,Web服务器向浏览器回传内嵌ActiveX 控件的页面,由浏览器负责解释。在解释过程中浏览器首先用该控件在页面中注 明的id值或名称

5、在本地注册表内进行查询,若已经存在,则说明该控件已经在 安装,然后通过注册表中的相关信息使用该控件;否则就要根据页面中提示的该 控件所在服务器的地址,下载并完成在本地的安装注册,使该控件成为本地资源, 供以后使用。ActiveX控件漏洞的产生目前ActiveX控件主要和IE浏览器配合使用,网站的开发者为了丰富网页的内 容,使用自己或者第三方已经开发好的控件。由于控件提供方的开发水平和安全 意识参差不齐,导致提供的ActiveX控件存在很大的安全隐患。使用ActiveX控件需要下载到本地进行安装并且提供对外调用的方法。所以对于 每一个ActiveX控件,可能有如下几个方面的安全漏洞:调用的控件可

6、以创建、修改或者删除本地文件、修改注册表等信息;调用的控件可以获取本地信息,如某文件信息、用户名、密码、IP地址等;调用的控件可以通过欺骗行为使用户访问恶意网页、下载恶意程序等;调用的控件存在缓冲区或者格式化字符串漏洞导致浏览器或者系统异常。ActiveX控件漏洞挖掘方法目前,对于ActiveX控件的漏洞挖掘,主要有两种方式:使用Fuzz测试工具:比较出名的有ComRaider、Axman等。由于ActiveX控件 存在统一的编程接口,所以可以通过系统调用获取控件中的属性和方法,编写出 自动化测试工具,根据控件的参数情况,自动填充异常数据,检验是否存在漏洞。 这种方法重点测试ActiveX控件

7、是否存在缓冲区溢出漏洞;人工分析方法:通过控件解析器如ComRaider、OLEView等,解析出控件的方 法和属性,再根据每个方法的参数和返回值等,手工构造测试用例,依次对各个 属性和方法进行异常测试,根据页面的返回情况,确定是否存在安全漏洞。这种 方法重点测试ActiveX控件是否存在逻辑类漏洞。1. 使用Fuzz测试工具挖掘ActiveX控件漏洞Fuzz测试是一种软件测试技术,通常用来发现软件或者协议存在的安全漏洞。 Fuzz测试属于黑盒测试,其测试基本思路就是给程序输入随机或者异常数据, 观察程序的反应,如果程序发生异常,如异常中止,打印告警等,则说明程序可 能存在安全漏洞。在Acti

8、veX控件漏洞挖掘中,最常用的Fuzz测试工具是ComRaider。ComRaider 可以根据接口所提供的参数类型构造不同的Fuzz脚本,并且还能通过调试器来 调试。可以根据参数类型的不同,构造字符串溢出漏洞、整数溢出漏洞、格式化 字符串漏洞等。下面通过ComRaider自带的vuln.dll控件说明如何构造Fuzz 测试用例。首先在注册表注册vuln.dll;运行COMRaider,选择开始并测试vuln.dll控件(图1);图 1 启动 COMRaider使用ComRaider解析出控件的属性和方法,如图2所示,可以看到该攻击的ID,包含的方法等信息;图2使用COMRaider解析控件的

9、属性和方法选择一个方法如methodi,进行Fuzz测试(图3)。在该方法上单击右键,选 择“Fuzz number”后,会生成Fuzz测试文件;图3选择控件方法产生Fuzz测试文件点击“next”按钮,进入下个页面,准备进行Fuzz测试。图4中红框内是Fuzz 测试文件(这里是字符串类型),单击右键可以查看每个Fuzz文件。每一个Fuzz 文件,就是调用该控件的方法,构造存在问题的网页。Fuzz测试用例主要是构 造超长字符串;图4选择Fuzz测试文件准备测试点击“Begin Fuzz”按钮,ComRaider依次执行Fuzz测试脚本,检验测试脚 本能否导致控件异常。如图5所示,测试结束后,如

10、果发现异常,在测试结果 result列中会显示“Caused Excepting ”。在下面一栏中,显示了异常的指令、 模块等,双击该条目,会出现详细的异常信息,包括出问题的地址,各个寄存器 的值,栈内存,堆内存的情况;图5 Fuzz测试完成显示测试结果选择某个出问题的测试例,单击右键,见图6,可以点击View File查看Fuzz 测试用例脚本,或通过Lauch inOlly在Ollydbg中进行调试,查找出问题的原 因;图6显示Fuzz测试用例及调试菜单重复上述过程,选择组件的不同方法或者不同组件进行测试,检验组件是否存 在安全漏洞。除了 ComRaider工具外,还有几款ActiveX控

11、件fuzz测试工具,如AxMan、AxFuzz、 Combust等,这些工具虽然实现、界面不相同,但是原理基本相同。2. 人工挖掘ActiveX控件漏洞根据前面提到的ActiveX控件可能存在的漏洞,可以将ActiveX控件漏洞分为两 大类。1)控件的方法中存在逻辑漏洞,主要包括以下几个方面:系统或者本地文件被覆盖,删除;注册表表项被修改,删除;泄漏本地文件信息或者重要系统信息;访问恶意网页,下载恶意程序。2)控件的方法中存在溢出漏洞,主要包括如下几方面:字符串缓冲区溢出漏洞;整数溢出漏洞;格式化字符串漏洞。前面介绍的Fuzz测试工具,主要测试ActiveX控件的溢出类漏洞。对于控件中 存在的

12、逻辑漏洞,由于输入参数并不会对控件造成异常,所以,Fuzz工具无法 判断控件是否存在漏洞。这时,可以通过人工挖掘ActiveX控件漏洞方式测试控 件的逻辑类漏洞。人工挖掘ActiveX控件漏洞投入可能会比较大,不如Fuzz测 试工具快捷,但是,这种测试方式准确,灵活性强,可能挖掘出工具无法发现的 更深层次漏洞。ActiveX控件逻辑漏洞产生的原因是:一般控件中提供了一些方法,主要功能包 括创建文件、删除文件、下载文件、修改注册、获取系统信息等,由于没有对传 入参数的内容进行检测,导致覆盖、删除本地重要文件,修改注册表,下载恶意 网页,泄漏系统重要信息等。通过工具解析出ActiveX控件的属性和

13、方法后,根据方法名称,大致判断函数的 功能,然后根据参数情况,构造相应的测试用例。可能存在漏洞的函数名称一般 具有如下规律:创建文件类:函数名如 saveto、tofile、writeto、save、write 等;删除文件类:函数名如delete、deletefile等;注册表相关类:函数名如 GetRegValue、SetRegValue、SetRegdit 等;文件信息泄漏类:函数名如 get、show、read、getinfo、getfile、readfile 等;访问下载恶意网页类:函数名如download、url、hostname、getfile等。对于人工漏洞挖掘方法,一般按照如

14、下步骤进行:下载并安装欲测试的控件;使用Com Explorer或者注册表查看该控件的属性,重点关注如ProgID、CLSID 等;用ComRadier查看控件中提供的变量、函数、函数参数、返回值等;根据函数的功能,重点关注上面提到的可能存在漏洞的函数,编写漏洞利用网 页,通过IE运行网页,检验控件是否存在漏洞。对于溢出类漏洞,人工分析和使用Fuzz测试工具原理基本相同。溢出类漏洞的 手动分析不需要特别关注函数的名称,可以重点关注函数中的参数,根据参数的 类型,分别进行溢出测试。综上所述,进行ActiveX控件漏洞挖掘,可以从几个步骤入手:第一步:使用现有的Fuzz测试工具和人工测试相结合的方

15、式,挖掘系统中的控 件漏洞。可以先采用自动化的测试方式,重点关注自动化出问题的控件,再通过 人工测试和调试,确定控件是否存在问题;第二步:重点关注一些使用比较广泛的软件携带的控件,这些控件使用面广,存 在漏洞的可能性及危害性更大;第三步:随着挖掘的深入和能力的提高,可以对现有的Fuzz测试工具进行改进, 实现更加智能的Fuzz测试工具,完成测试动自动化。目前的ActiveX控件Fuzz 测试主要是构造溢出类漏洞。而ActiveX控件漏洞中,大部分是文件覆盖、删除、 下载等漏洞,可以从这方面考虑改进Fuzz测试工具。结束语 本文总结了 ActiveX控件漏洞挖掘的理论和方法,通过这些方法,可以提高 AtitvcX控件漏洞挖掘的效率和准确性。目前ActiveX控件多是第三方开发,并 嵌入到IE浏览器中使用,所以,存在很多安全漏洞并广泛被黑客利用,通过跟 踪挖掘常用的ActvieX控件,可以及时发现控件中存在的安全漏洞并给出防御措 施,减少黑客使用存在漏洞的ActiveX控件攻击受害者。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号