安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > 逆向工程 > 针对VBS远控木马的技术分析

针对VBS远控木马的技术分析

时间:2014-10-28来源: 作者:360安全卫士点击:
我们团队最近捕获到一个vbs后门脚本,发现比较有意思,根据以往遇到的脚本,绝大多数都是蠕虫、下载者(从木马服务器下载一个远控)这类或者是配合木马本身做自删除中间文件,极少遇到本身就是后门或是远程控制类木…

我们团队最近捕获到一个vbs后门脚本,发现比较有意思,根据以往遇到的脚本,绝大多数都是蠕虫、下载者(从木马服务器下载一个远控)这类或者是配合木马本身做自删除中间文件,极少遇到本身就是后门或是远程控制类木马,原因是这类木马的局限性较大,一些复杂功能不能完整编写。简单分析下。 //内容来自AnYun.ORG

木马基本信息 //内容来自安云网

MD5:0ad2a50ac1a1a98ce3db134e795e2974

//本文来自安云网

大小:97,525 字节

//ANYUN.ORG

目标端口:1346
//ANYUN.ORG

上线域名:略
//ANYUN.ORG

原始文件局部一览:

//内容来自安云网

//安云网咨询系统

根据脚本本身,拿python写了一个简单的解密片段得到明文vbs恶意文件,或者更简单的方法就是把executeGlobal直接写到另一个文件里保存下来。

//ANYUN.ORG

'executeGlobal (CKglagJDVsalqnU)
set fso =createobject("scripting.filesystemobject")
fso.createtextfile("C:\\1.txt").write CKglagJDVsalqnU //copyright AnYun.ORG 

木马执行

//内容来自AnYun.ORG

VBS脚本启动的时候被Wscript.exe分析执行,即Wscripts是VBS脚本的解释器。

//ANYUN.ORG

木马协议特征: //本文来自安云网

该木马传输主要是同过http协议传输,同时以字符串“<|>”作为信息分割,通过WMI查询本地计算机信息以及安全信息。 //安云网咨询系统

set objsecuritycenter = getobject("winmgmts:\\localhost\root\" & sc)
Set colantivirus = objsecuritycenter.execquery("select * from antivirusproduct","wql",0)
for each objantivirus in colantivirus
    security  = security  & objantivirus.displayname & " ." 

//ANYUN.ORG

该后门已知功能包括: //安云网,anyun.org

//copyright AnYun.ORG

本地监听 //copyright AnYun.ORG

本地监听到上线数据包。 //本文来自安云网

上线数据信息是放在user-Agent里面 //安云网,anyun.org

//内容来自安云网

上线后接受远程服务器的指令:

//copyright AnYun.ORG

//本文来自安云网

利用python写个简易的脚本,模拟服务端,远程执行cmd命令,

//内容来自AnYun.ORG

得到的效果如下(虚拟机中显示):

//ANYUN.ORG

//内容来自AnYun.ORG

可以看出除了传统PE木马外,木马作者配合其他形式脚本,制作出来的木马能起到免杀效果,未来可能会出现其它解释性语言编写木马也说不定。

//copyright AnYun.ORG

python解密code片段 //ANYUN.ORG

def decode_code(arg,key):
   return chr(ord(arg)-ord(key[0]))
encodeString="加密长字符串"
split_key = "~*"
key = "PqUYslk7QB7zwn7g6BiT7lsXlOixZ7ubWR2"
text=''
encode_list=encodeString.split(split_key)
for i in encode_list:
   text=text+decode_code(chr(int(i)-847),key)
with open('code','w') as f:
   f.write(text)
from SimpleHTTPServer import SimpleHTTPRequestHandler
from BaseHTTPServer import BaseHTTPRequestHandler
from BaseHTTPServer import HTTPServer
class MyHTTPRequestHandler(BaseHTTPRequestHandler):
   def do_POST(self):
       text=self.deal_post_data()
       if text is not None:
           print text
       enc='utf-8'
       self.send_response( 200 )
       self.send_header("Content-type", "text/html;charset%s" %enc )
       ct = r'cmd-shell<|>dir c:\windows'
       self.send_header('Content-length', str(len(ct)))
       self.end_headers()
       self.wfile.write(ct)
   def deal_post_data(self):
       remainbytes = int(self.headers['content-length'])
       if remainbytes:
           data = self.rfile.read(remainbytes)
           return data
if __name__ == '__main__':
   port = 1346
   handler = SimpleHTTPRequestHandler
   httpd = HTTPServer(('', port ), MyHTTPRequestHandler)
   print "Server is running at port", port
   httpd.serve_forever() //ANYUN.ORG 

[本文由360安全卫士原创并投稿,转载请注明来自FreeBuf.COM]

//内容来自AnYun.ORG

//copyright AnYun.ORG

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
相关内容
推荐内容