快捷搜索:   nginx

网页木马深度剖析以及手工清除

前 言 
 
    杀毒软件风靡全球的今天,各式各样的病毒仍然在网络上横行,其形式的多样化,自身之隐蔽性都大大的提高。其中,网页病毒、网页木马就是这个新型病毒大军中危害面最广泛,传播效果最佳的。之所以会出此篇,也是在考虑到太多的人都在网页病毒中“应声倒下”,却不知自己是如何中毒,以及中毒后如何去处理。就此问题,我们开始以下,对网页病毒、网页木马这一“新概念”做个详细的剖析。 
注:为什么会用这么大的篇幅去介绍网页病毒、网页木马的常识和运行机理,而非机械地去介绍如何如何做,大家在通读全文后便有个新的了解。 
 

第一章 恶意网页的基本常识 
 

第一节 什么是网页病毒 
 
    网页病毒是利用网页来进行破坏的病毒,它存在于网页之中,其实是使用一些script语言编写的一些恶意代码利用IE的漏洞来实现病毒植入。当用户登录某些含有网页病毒的网站时,网页病毒便被悄悄激活,这些病毒一旦激活,可以利用系统的一些资源进行破坏。轻则修改用户的注册表,使用户的首页、浏览器标题改变,重则可以关闭系统的很多功能,装上木马,染上病毒,使用户无法正常使用计算机系统,严重者则可以将用户的系统进行格式化。而这种网页病毒容易编写和修改,使用户防不胜防。 
目前的网页病毒都是利用JS.ActiveX、WSH共同合作来实现对客户端计算机,进行本地的写操作,如改写你的注册表,在你的本地计算机硬盘上添加、删除、更改文件夹或文件等操作。而这一功能却恰恰使网页病毒、网页木马有了可乘之机。 
而在我们分析网页病毒前,先叫我们知道促使病毒形成的罪魁祸首:Windows 脚本宿主 和Microsoft Internet Explorer漏洞利用 
 
第二节 Windows 脚本宿主,Internet Explorer漏洞以及相关 
 
WSH,是“Windows scripting Host”的缩略形式,其通用的中文译名为“Windows 脚本宿主”。对于这个较为抽象的名词,我们可以先作这样一个笼统的理解:它是内嵌于 Windows 操作系统中的脚本语言工作环境。 
  Windows scripting Host 这个概念最早出现于 Windows 98 操作系统。大家一定还记得 MS-Dos 下的批处理命令,它曾有效地简化了我们的工作、带给我们方便,这一点就有点类似于如今大行其道的脚本语言。但就算我们把批处理命令看成是一种脚本语言,那它也是 98 版之前的 Windows 操作系统所唯一支持的“脚本语言”。而此后随着各种真正的脚本语言不断出现,批处理命令显然就很是力不从心了。面临这一危机,微软在研发 Windows 98 时,为了实现多类脚本文件在 Windows 界面或 Dos 命令提示符下的直接运行,就在系统内植入了一个基于 32 位 Windows 平台、并独立于语言的脚本运行环境,并将其命名为“Windows scripting Host”。WSH 架构于 ActiveX 之上,通过充当 ActiveX 的脚本引擎控制器,WSH 为 Windows 用户充分利用威力强大的脚本指令语言扫清了障碍。 
 WSH也有它的不足之处,任何事物都有两面性,WSH 也不例外。应该说,WSH 的优点在于它使我们可以充分利用脚本来实现计算机工作的自动化;但不可否认,也正是它的这一特点,使我们的系统又有了新的安全隐患。许多计算机病毒制造者正在热衷于用脚本语言来编制病毒,并利用 WSH 的支持功能,让这些隐藏着病毒的脚本在网络中广为传播。借助WSH的这一缺陷,通过JAVAscript,VBscript,ACTIVEX等网页脚本语言,就形成了现在的“网页危机”。 
促使这一问题发生的还有问题多多Internet Explorer 的自身漏洞。比如:“错误的MIME?Multipurpose Internet Mail Extentions,多用途的网际邮件扩充协议头”,“Microsoft Internet Explorer浏览器弹出窗口Object类型验证漏洞”。而以下介绍的几个组件存在的问题或漏洞或是在安全问题上的过滤不严密问题,却又造成了“网页危机”的另外一个重要因素。 
l Java语言可以编写两种类型的程序:应用程序(Application)和小应用程序(Applet)。应用程序是可以独立运行的程序,而Applet不能独立运行,需要嵌入HTML文件,遵循一套约定,在支持Java的浏览器(如:Netscape Navigator 2.02版本以上,HotJava,Microsoft Internet Explorer 3.0版本以上)运行,是Java一个重要的应用分支,也是当时Java最令人感兴趣的地方(它一改网页呆板的界面),就是在WWW网页(Home Page / Pages)设计中加入动画、影像、音乐等,而要达到这些效果使用最多的是Java Applet和Java script (这是一种Java的命令语言)。 
l Javascript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或文件引用在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择,具有基于对象、简单、安全、动态、跨平台性等特性。 
l ActiveX是Microsoft提出的一组使用COM(Component Object Model,部件对象模型)使得软件部件在网络环境中进行交互的技术。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程序。在Applet中可以使用ActiveX技术,如直接嵌入ActiveX控制,或者以ActiveX技术为桥梁,将其它开发商提供的多种语言的程序对象集成到Java中。与Java的字节码技术相比,ActiveX提供了“代码签名”(Code Signing)技术保证其安全性。 
 
第三节 网页病毒的攻击方式 
 
既然是网页病毒,那么很简单的说,它就是一个网页,甚至于制作者会使这个特殊网页与其他一般的网页别无他样,但在这个网页运行与本地时,它所执行的操作就不仅仅是下载后再读出,伴随着前者的操作背后,还有这病毒原体软件的下载,或是木马的下载,然后执行,悄悄地修改你的注册表,等等…那么,这类网页都有什么特征呢? 
§ 1.美丽的网页名称,以及利用浏览者的无知. 
不得不承认,很多恶意网页或是站点的制作者,他们对浏览者的心理分析是下功夫的,对域名的选择和利用绝对是很到位的。很多上网的男性网民大都对MM照片感兴趣,这就是他们利用的一个渠道。如你看到了一个域名:www.lovemm.com,或是http://plmm.yeah.net等等. 你会动心去看么。如果不会,再看这个域名:/Article/UploadFiles/200603/20060301160330179.gif 这个地址你会去看么?很显然,咋一看,图片!一张可能是MM的图片,又有懂点安全知识的人说了,放心它不可能是BMP图片木马,你用这个地址打开一定是张.GIF格式的图片。好,你可以去尝试一下。再看另外一个域名,很显然是经过构造的。/Article/UploadFiles/200603/20060301160331961.gif 你还能“火眼金睛”吗?不知道结果是什么,那你就放心的去点击它看看。 
 
§ 2.利用浏览者的好奇心 
在这里我要说一句,这样的人中毒也是自找。对什么都要好奇这可不是个好习惯。有些东西不是你想看就可以去看的。[作者注]有这个习惯的都改改.^_^! 
 
§ 3.无意识的浏览者 
这类人,对他们的同情,我们表示遭遇。^_^!  
 
在我们基本了解了网页病毒、网页木马的运行机体环境后,让我们开始重点分析一下网页病毒是如何对我们的计算机进行攻击,并染毒,并自我保护的。 
 
 

第二章 网页病毒、网页木马机理深度剖析 
 

第一节 网页病毒、网页木马的制作方式 
 
Ⅰ.Javascript.Exception.Exploit 
利用JS+WSH的完美结合,来制作恶意网页的方法几乎是所有恶意站点必有的“功能”。 
 
Ⅱ. 错误的MIME Multipurpose Internet Mail Extentions,多用途的网际邮件扩充协议头. 
几乎是现在网页木马流行利用的基本趋势,这个漏洞在IE5.0到IE6.0版本中都有,对这么一个全能的漏洞,大家怎能不重视? 
 
Ⅲ..EXE to .BMP + Javascritp.Exception.Exploit 
具体的.EXE转化到.BMP的文章我想大家都见到过,而且不只一次。应用方法很简单:诱骗浏览者上当。 
 
Ⅳ. iframe 漏洞的利用 
当微软的IE窗口打开另一个窗口时,如果子窗口是另一个域或安全区的话,安全检查应当阻止父窗口访问子窗口。但事实并非如此,父窗口可以访问子窗口文档的frame,这可能导致父窗口无论是域或安全区都能在子窗口中设置Frame或iframe的URL。这会带来严重的安全问题,通过设置URL指向javascript协议,父窗口能在子域环境下运行脚本代码,包括任意的恶意代码。攻击者也能在“我的电脑”区域中运行脚本代码。这更会造成严重的后果。 
 
Ⅴ.通过安全认证的CAB,COX 
此类方法就是在.CAB文件上做手脚,使证书.SPC和密钥.PVK合法 
原理:IE读文件时会有文件读不出,就会去“升级”这样它会在网页中指定的位置找 .cab 并在系统里写入个CID读入.cab里的文件。  
方法:.cab是WINDOWS里的压缩文件,我们知道IE里所用的安全文件是用签名的CAB也不例外,所做的CAB是经过安全使用证书引入的。也就是说IE认证攻击,只所以每次都能入侵我的脑,是因为它通过的是IE认证下的安全攻击,这样不管我怎么做都没办法。  
 
Ⅵ.EXE文件的捆绑 
现在的网页木马捆绑机几乎是开始泛滥了,多的数不胜数。再将生成的MHT文件进行加密,好,这样一来,连我们最信任的杀毒软件也无效了。
第二节 网页病毒、网页木马的运行机理分析 
 
Ⅰ.Javascript.Exception.Exploit 
精华语句: 
Function destroy(){  
try  
{  
//ActiveX initialization 初始化ActiveX,为修改注册表做准备  
a1=document.applets[0];  
//获取applet运行对象,以下语句指向注册表中有关IE的表项 
a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");  
a1.createInstance();  
Shl = a1.GetObject();  
a1.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}");  
a1.createInstance();  
FSO = a1.GetObject();  
a1.setCLSID("{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}");  
a1.createInstance();  
Net = a1.GetObject();  
try  

开始做坏事 

}  
catch(e)  
{}  
}  
catch(e)  
{}  
}  
function do()  
{  
//初始化函数,并每隔一秒执行修改程序 
setTimeout("destroy()", 1000); //设定运行时间1秒 

Do() //坏事执行函数指令 
 
全部是JS编写,没有什么高深的技术,但它却可以把你的计算机注册表改的是乱78糟,在你的计算机里留下各式各样的垃圾,甚至于连声招呼都不打就G了你的硬盘。所列出的整段函数看起来简单明了,声明函数,初始化环境,取得注册对象,执行读,写,删权限,定义操作时间(快得叫你连反映都没有)。 
 
Ⅱ. 错误的MIME Multipurpose Internet Mail Extentions,多用途的网际邮件扩充协议头. 
精华语句: 
Content-Type: multipart/related; 
type="multipart/alternative"; 
boundary="====B====" 
--====B==== 
Content-Type: multipart/alternative; 
boundary="====A====" 
--====A==== 
Content-Type: text/html; 
Content-Transfer-Encoding: quoted-printable 
 
--====A====-- 
--====B==== 
Content-Type: audio/x-wav; 
name="run.exe" 
Content-Transfer-Encoding: base64 
Content-ID: ---以下省略AAAAA N+1个--- 
 
把run.exe的类型定义为audio/x-wav,这下清楚了,这是利用客户端支持的 MIME(多部  
分网际邮件扩展,Multipart Internet Mail Extension) 类型的漏洞来完成的。当申明邮件  
的类型为audio/x-wav时,IE存在的一个漏洞会将附件认为是音频文件自动尝试打开,,结果导致邮件文件x.eml中的附件run.exe被执行。在win2000上,即使是用鼠标点击下载下来的 x.eml,或是拷贝粘贴,都会导致x.eml中的附件被运行。整个程序的运行还是依靠x.eml这个文件来支持。Content-Transfer-Encoding: base64 Content-ID: 从这我们可以看出,由于定义后字符格式为base64,那么一下的代码全部为加密过的代码,里面可以是任何执行的命令: 
〈script language=vbs〉  
On Error Resume Next· 容错语句,避免程序崩溃  
set aa=CreateObject("Wscript.Shell")·建立Wscript对象  
Set fs = CreateObject("scripting.FileSystemObject")·建立文件系统对象  
Set dir1 = fs.GetSpecialFolder(0)·得到Windows路径  
Set dir2 = fs.GetSpecialFolder(1)·得到System路径  
……省略…… 
下面代码该做什么各位都该清楚吧.这就是为什么很多人中毒后不能准确的清除全部的病毒体的原因,也是很多杀毒软件的一个通病。病毒监控只杀当时查到的,新建的却置之不理。
Ⅲ. iframe 漏洞的利用 
㈠ 
 

多方便的办法,浏览者的COOKIES就这样轻松的被取走。 
 
㈡ 
 
〈iframe src=run.eml width=0 height=0〉〈/iframe〉 
常见的木马运用格式,高度和宽度为0的一个框架网页,我想你根本看不到它。除非你的浏览器不支持框架! 
 
㈢ 
 

又是一个框架引用的新方式,对type="text/x-scriptlet" 的调整后,就可以实现和eml格式文件同样的效果,更是防不胜防。 
 
 
Ⅳ. Microsoft Internet Explorer浏览器弹出窗口Object类型验证漏洞 漏洞的利用 
精华代码: 
 
----- code cut start for run.asp ----- 
 
 
----- code cut end for run.asp ----- 
[作者注] 我想,这个方法是现行的大部分木马网页中使用的频率最高的一个。效果绝对是最好的。不管是你IE5.0还是IE6.0还是+SP1补丁的。我们都敢大声的说:IE6.0+SP1也不是万能的。呵呵,是不是想改用mozilla了? 
 

总结: 
几乎所有类型的网页病毒都有一个特性,就是再生,如何再生,让我们从注册表中的启动项开始分析:注册表中管理启动的主键键值分别为: 
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunServices]  
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunServicesOnce]  
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run]  
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunOnce]  
[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run]  
[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunOnce]  
[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunServices] 
确认主键下没有加载任何分键值.另外,在启动配置器里的autoexec.bat ,win.ini,system.ini以及在WIN 9X下的winstart.ini文件,其中的存在LOAD=键的,它的值是空,不是空格,只有=号。Autoexec.bat没有加载任何程序,在「开始」菜单/程序/启动 文件夹下不存在任何程序,那样才能有效的去掉一个病毒的再生功能。不叫它开机运行,或者不在运行,那我们就可以把它从计算机上请出去。 
 
 
第三节 网页病毒、网页木马的运行效果分析 
 
第一、电脑中的默认主页会被无故更改,并且IE工具栏内的修改功能被屏蔽掉;  
第二、在电脑桌面上无故出现陌生网站的链接,无论怎么删除,每次开机都依旧会出现,如果单击鼠标右键,出现的工具栏中有也会有大量陌生网站的链接;  
第三、开机后,无法进入DOS实模式; 仅对WIN 9X 系统 
第四、电脑桌面及桌面上的图标被隐藏;  
第五、注册表编辑器被告知“已锁定”,从而无法修改注册表;  
第六、上网之前,系统一切正常,下网之后系统就会出现异常情况,如系统盘丢失、硬盘遭到格式化等,查杀病毒后仍无济于事;  
第七、上陌生网站后,出现提示框“您已经被XX病毒攻击”,之后系统出现异常; 
第八、登陆站点后,发现一个窗口迅速打开后又消失,自己的计算机系统文件夹内多了几个未知的好象是系统文件的新文件。 

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论