黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 网管频道 >> 入侵检测 >> 正文
·完美空间提供500M免费AS04-10·企业安全之YY内网准入以04-09
·企业安全之意识与策略04-09·剑走偏锋:IIS漏洞利用04-09
·我来免费网提供100M免费04-09·1122mb.com提供20G超大免04-08
·映像劫持与反劫持技术04-07·让所有"暴力删除工具"无04-07
·入侵88red系统的详细过程04-07·Sql Injection脚本注入终04-07
·vbs+delphi 反弹后门生成04-07·飞讯网提供100MB免费PHP04-07
·突破SQL注入攻击时输入框04-04·结合内核和病毒技术的最04-04
·Real Player rmoc3260.d04-04·亿万网络今月最后为您提04-04
·php+mysql 5 sql inject04-03·Real Player rmoc3260.d04-03
·oblog文件下载漏洞04-03·免费啦提供1G-2G免费全能04-03
·完全解析网页后门和挂马04-02·一句话开3389(只测试过04-02
·萧萧免费空间网提供100M04-02·谷道免费空间网提供1G免04-01
·从本地入手解决双线路由03-31·sablog 1.6 多个跨站漏洞03-31
·富文本编辑器的跨站脚本03-31·Cookie注入是怎样产生的03-31
[推荐]基于IE ActiveX 的 0-days 基础揭密
        ★★★★★

基于IE ActiveX 的 0-days 基础揭密

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-11-18 9:55:55

昨天晚上临睡之前,看见有一篇文章很好但是英文的,我的英文水平不行翻译不了所以找到我的好朋友宋成广帮助翻译了此文!
在此我非常感谢我的好朋友!!!愿我们的技术共同进步!!!
原文就是:IE ActiveX-based 0-days basics Demystified


写此篇文章的目的并不是要简单的阐述如何找到IE的溢出漏洞或其他未知弱点,我只是希望ActiveX控件的漏洞更少一些。写这篇文章出于教学研究目的,对读者产生的影响本人概不负责。这是一篇简短的文章,它将简短的概述未知的溢出漏洞。需要你已经了解溢出和ActiveX控件的基础知识,最好了解一些"迷惑代码"的知识。这篇文章只概述基础,我也很高兴写一些我对黑客行为的认识。如果你真的想了解一点Windows操作系统,这篇文章是很有用的。这并不是一篇教你如何去找新的溢出漏洞的教学文章。最后,我要重点说明一下黑客的概念。黑客和安全没有必然联系。黑客不会去入侵远程系统。如果你打算借此去做坏事,请立刻放弃。所谓的"黑客世界"并不存在,所以不要试图在其中炫耀自己。黑客的真正意义是对知识的渴求、对世间美丽事物的赞赏,并追求和别人不一样的生活。黑客的意义还有很多,如果你不能马上理解,请不要用这篇文章持反对意见。黑客并不是要在这个世界里展示自己,如果他愿意,他可以不再使用电脑,或许根本就没有用过电脑。这是个很难理解的世界,人们来到了这个世界并忘掉了他们心中的真理。

讲过了重要的前言,我们开始行动。我们的任务是找出IE浏览器的未知弱点。我们要寻找的漏洞基于不适当的ActiveX控件操作。这篇文章并不能教给你全部,简单想一下也知道那是很难的事。
首先我们仔细察看一下有用的object,它存在于我们的网页中。这意味着我们可以像下面这样使用它:

<object id="excel"classid="CLSID:0002E510-0000-0000-C000-000000000046">
...
</object>

以上代码的作用是在网页中插入一个Excel表格,通常语法如下:

<object id=target classid="CLSID:{some_classid}" > </object>

可我们怎样才能找到有弱点的object呢?
当然,有很多方法的。有的人使用fuzzer去逐个测试可能使用的方法并试图使用基本的溢出手段使他们崩溃。还有人在控件本身上下功夫,换句话说,就是找到控件本身的漏洞。集中研究控件本身,在我来看是最好的方法(虽然不是最快的)。试图溢出控件可能很困难,但它能让你学到更多的知识。我严重推荐您使用自己的fuzzer。所有的软件都不是完美的,也不可能完美。很多我知道的0-day 漏洞都可以通过未知的/容易忽略的测试。
我应该对object了解些什么呢?
典型如此:

Class SomeClass
GUID: {some-guid}
Number of Interfaces: 有多少接口?
Default Interface: 默认接口是什么?
RegKey Safe for Script: F/T
RegKey Safe for Init: F/T
KillBitSet: F/T

最后三个因素是最重要的。每个因素都影响到系统安全性。但在这里我并不想提及。你应该重点关注我后面要表述的内容。
崩溃是怎么产生的?
我小的时候经常用积木建造小城堡,现在我们仔细考虑一下这个城堡。为什么它要建在沙子上?我们回头考虑ActiveX控件。一个指定了特殊参数(精心设计的不按参数规则要求的参数,有特殊目的)的控件函数如下:

obj = document.getElementById('target').object;
obj.somefunction("%n%n%n%n%n%n%n%n%n%....");

最终产生的溢出效果正如很多文章中提及的堆栈溢出并执行shellcode(这需要了解逆向工程、调试、缓冲区溢出、汇编等知识),在此我不想复述。准备好我们的代码后,我们就可以开始测试溢出了。我们建立一个包含我们的代码的测试网页并检查结果。在初步测试中汇集了很多信息和最终错误日志是好的结果。有错误发生的时候错误日志是很有帮助的。我的经验告诉我,经常仔细观察真实的一面对于溢出正常工作很有必要。第一次溢出虽然没有执行代码也会导致被溢出的程序崩溃,这是很正常的。这需要分析并且相应信息应该记录到日志里。

尽管如此,我们并不仅仅要做到可以远程溢出,我们的任务是得到系统的控制权。代码不仅要制造溢出,而且有时shellcode要负责帮助我们保护代码不被发现。这主要由代码迷惑来实现,它能使我们的代码很难被分析。专家(补丁明确前)必须穿过障碍连接到代码。有很多灵活的方法可以隐藏代码。

既然任务是得到远程主机的控制权,我们就要精心准备一段代码去执行并在远程主机中安装rootkit。要穿过杀毒软件的限制,我们需要考虑更多问题。应该有方法不被杀毒软件检测到入侵。既然我们要溢出IE并隐藏到系统深处,我们应该熟悉基于windows的shellcode。第一,必须学习注册表基础、启动和关闭过程及windows服务。第二,我们必须知道如何使用对象浏览器,进程浏览器,文件监视器及核心调试工具。第三,我们还应该学习关于windows启动设置(boot.ini,ntdetect,…),Ntoskrnl,Regsitry Hive及设备驱动。系统中的隐藏需要执行层(executeive 和kernel)的知识、如何建立并删除进程和线程及内存管理和进程间的通讯的知识。多学习一些关于线程插入和虚拟内存管理的知识是非常重要的。当你精通了以上本领以后,你的知识将成为你强有力的武器。但是,请记住,理解和领悟(不仅仅是领悟电脑,要在生活中得到领悟,在提问中得到领悟,在"赞赏花花草草"中得到领悟)是你的特权但你不应该用他们来和别人作对。

现在只剩下一些从攻击者角度而言的有关ActiveX控件的东西。ActiveX控件有很多,其中多数是不会带来风险的。ActiveX控件是windows系统中很小的可执行文件,借此可以远程运行。ActiveX控件是可移动的。必须要知道的是,ActiveX控件的弱点并不只表现在IE浏览器中,很多软件也使用它。目前,我掌握很多ActiveX控件的0-day 弱点。这些弱点可以很容易产生溢出并影响很多软件,并只限于IE浏览器。可以说,制造一个危险的蠕虫病毒对于黑客专家来说并不是难事。这就是为什么需要一种新的解决方案。

"迷惑代码"也值得一提。攻击者可以试图使用"迷惑代码"隐藏真正的意图并使安全分析人员对代码产生迷惑。代码不容易被理解是很重要的。有很多蠕虫简单地在许程序的不同地方汇集代码,这样的代码是很难被分析的(至少在刚开始看的时候)。"迷惑代码"在未来的蠕虫病毒中也可以在.net(移动平台代码,类似WSN)中使用。

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886