OD: ActiveX Vulnerabilities
通过一个精心构造的页面 exploit 第三方软件中的 ActiveX 已经成为一种惯用攻击手段,众多知名软件公司都曾被发现其注册的 ActiveX 中存在严重的缓冲区溢出漏洞,一个被广泛使用的第三方软件漏洞的危害性不亚于 OS 级别的漏洞!
每一个 ActiveX 控件被注册进入系统之后,就会在注册表中建立一个键值来标识自己,这个键值就是 CLSID(Class ID),位于:HKEY_CLASSES_ROOT\CLSID,而能被浏览器加载的控件信息位于:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility
满足下列条件的 ActiveX 控件才能被浏览器正常调用:
* 对已经安装进系统的控件,必须被标记为可安全执行脚本(as safe for scripting,CLSID 项下若有 Implemented Catagories 选项,则为可安全执行脚本)。
* 对未安装进系统的控件,初次调用时浏览器会给出提示警告,在用户确定并同意后,才会下载安装该控件。
当可安全执行脚本选项被取消时,IE 会警告用户:该 ActiveX 控件可能不安全,根据用户的选择,该控件仍可能被调用。
当 ActiveX 控件的 KillBit 被设置后,只要不启用 IE 中的“对未标记为安全的 ActiveX 控件初始化并执行脚本”选项,IE 就不会调用该控件。所以一旦一个控件被设置了 KillBit,就很难再被浏览器自动调用(注:论文 Acctcking Interoperability 中说明某些情况下 KillBit 机制可以被绕过)。
设置 KillBit 的方法:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\<CLSID>
Compatibility Flags = 0x400
很多程序例如 VC++6.0 自带的工具 OLEViewer 可以查看控件中的信息。
OLEViewer 中的 Type Libraries 选项中包含在系统中注册过的所有 ActiveX 控件信息。
一个 ActiveX 控件文件可以同时向系统中注册多个控件类,从 OLEViewer 中打开一个 ActiveX 后,新的窗口中以 coclass 为前缀即为控件类。
选中某个控件类,可以看到其 uuid;展开某个控件类,通过 Methods 可以查看其内部的接口集合。
选中接口名称,可以在右侧窗口中显示出接口信息。其中无参接口为属性接口,带有 propget 描述,测试时用赋值来传递数据给接口(Name.Interface=data);带参数的接口为函数/方法接口,带有 propput 描述,测试时用参数形式来传递数据(Name.Function(data))。
手工 Fuzz 的流程为:
建立变量,string//负数/小数/大数…
将变量传递给用户接口
保存代码到 web 服务目录下
OllyDbg 挂接 IE 并访问测试文件
分析
自动化的 ActiveX Fuzz 可以使用以下软件:
* COMRaider,带 GUI,由 iDefense LAB 的 David Zimmer 出品,很出色。
* AxMan,必须配合 IE 一起使用。
* Axfuzz,开源工具,可以列举 COM 的所有属性,进行简单 Fuzz。可以阅读这个工具的源码来学习如何编写 ActiveX 插件。
COMRaider 已将测试 ActiveX 控件所需的编写模板、获取用户接口、制定参数、测试结果监视等功能全部整合,能自动区分当前系统中能被浏览器正常调用的 ActiveX 控件,并分析出被测试控件的所有外部接口。
书中有几个实验:
* 超星阅读器 4.0 版本中的 pdg2.dll 的 LoadPage() 缓冲区溢出漏洞分析(Heap Spray)
* 微软 COMCT232.ocx 远程文件判断漏洞(实现穷举目录内容功能)
OD: ActiveX Vulnerabilities的更多相关文章
- OD: Kernel Vulnerabilities Analyze
内核漏洞大多出没于 ring3 到 ring0 的交互中.从 ring3 进入 ring0 的通道,以及操作系统提供的 API 都有可能存在漏洞.例如:驱动程序中 IoControl 的处理函数,SS ...
- OD: Kernel Vulnerabilities
内核漏洞概述 内核漏洞的分类 运行在 Ring0 上的操作系统内核.设备驱动.第三方驱动能共享同一个虚拟地址空间,可以完全访问系统空间的所有内存,而不像用户态进程那样拥有独立私有的内存空间.由于内核程 ...
- OD: File Vulnerabilities & Protocols & Fuzz
IE.Office 等软件有个共同点,即用文件作为程序的主要输入,但攻击者往往会挑战程序员的假定和假设. 文件格式 Fuzz 就是利用畸形文件测试软件的稳健性,其流程一般包括: * 以一个正常文件作为 ...
- OD: Vulnerabilities Analyze Skills
第五篇了,漏洞分析案例 漏洞利用的灵活程度让这门技术变得似乎没有什么原则可言,只有实践后总结提高才能挥洒自如. 漏洞分析方法 目标:弄清攻击原理.评估潜在利用方式及风险等级.扎实的漏洞利用技术是进行漏 ...
- ActiveX控件dsoFramer的使用(word、excel、PPT)
dsoframer是微软提供一款开源的用于在线编辑.调用Word. Excel .PowerPoint等的ActiveX控件.国内很多著名的OA中间件,电子印章,签名留痕等大多数是依此改进而来的. 一 ...
- Flash Activex NPAPI PPAPI 各种网页插件完整安装包下载地址
内容全部是自己手工原创写作的参考内容,完全排除从其他网站COPY的内容信息.如有雷同实属巧合. 奉献给有需求的人士,也给各位解决FLASH安装头疼的问题,正常在线下载安装运气不好的安装半天.运气好 ...
- 盗墓笔记—阿里旺旺ActiveX控件imageMan.dll栈溢出漏洞研究
本文作者:i春秋作家——cq5f7a075d 也许现在还研究Activex就是挖坟,但是呢,笔者是摸金校尉,挖坟,呸!盗墓是笔者的本职工作. 额,不扯了,本次研究的是阿里旺旺ActiveX控件imag ...
- 第一次ActiveX Fuzzing测试
接着上一篇的看雪Exploit me试题. 这道题给出了一个ActiveX的DLL,挖掘这个DLL中的漏洞. 由于从来没有接触过ActiveX的Fuzzing,所以找了一些文章来看.自己动手试验了一下 ...
- Registering DLL and ActiveX controls from code
http://delphi.about.com/od/windowsshellapi/l/aa040803a.htm How to register (and unregister) OLE cont ...
随机推荐
- android异常之emulator-arm.exe已停止工作
我遇到的这个问题通过降低了AVD的分辨率后解决了,估计是电脑的显卡不行.
- extjs之TypeError: d.read is not a function解决方案
在创建如下代码时报出此错:TypeError: d.read is not a function Ext.define('shebyxgl_sheb_model', { extend: 'Ext.da ...
- JS笔记1
1.每个函数对象都有一个length属性,表示该函数期望接收的参数个数.它与函数的arguments不同,arguments.length表示函数实际接收的参数个数. 2.javascript 中有五 ...
- PHP开发套件
Windows系统下开发 环境配置: PHPstudy----立即下载 开发工具: PHPstorm----立即下载 引用一个注册服务器地址:潘田--phpstorm 2016.1注册码 当然推荐大家 ...
- Python新手学习基础之数据结构-序列1
序列概念 序列,顾名思义就是有顺序的列,在Python里序列类型的数据结构包括字符串,列表和元组.既然都是序列类型,说明他们有很多共通点,他们的每一个元素都可以通过指定的偏移量方式(索引操作)来获得, ...
- window.location.href/replace/reload()--页面跳转+替换+刷新
一.最外层top跳转页面,适合用于iframe框架集 top.window.location.href("${pageContext.request.contextPath}/Login_g ...
- js中typeof的用法
一. 经常会在js里用到数组,比如 多个名字相同的input, 若是动态生成的, 提交时就需要判断其是否是数组. if(document.mylist.length != "undefine ...
- ExtJs5_使用图标字体来美化按钮
sencha 的例子中,有使用图标字体来美化按钮的例子,这个用起来又方便风格又统一,例如下图: 上面图标字体的使用方法也很简单,只要下载Font Awesome的css和图标文件,放到项目里就可以了. ...
- [转]C# FileSystemWatcher监控指定文件或目录的文件的创建、删除、改动、重命名等活动
觉得这个很常用..比如一些软件. http://www.rabbit8.cn/DoNet/407.html FileSystemWatcher控件主要功能: 监控指定文件或目录的文件的创建.删 ...
- 函数部分应用Partial application
def adder(m:Int,n:Int)=m+n val add2 = adder(2,_:Int) println(add2(3)) val add3 = adder(_:Int,3) prin ...