【木马分析】来自SambaCry创作者的又一杰作:CowerSnail木马分析

阅读量115036

|

发布时间 : 2017-08-15 11:30:57

x
译文声明

本文是翻译文章,文章来源:securelist.com

原文地址:https://securelist.com/cowersnail-from-the-creators-of-sambacry/79087/

译文仅供参考,具体内容表达以及含义原文为准。

https://p4.ssl.qhimg.com/t01d871526225c6d760.jpg

译者:nstlBlueSky

预估稿费:160RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

在之前的文章中,我们详细分析了SambaCry这款Linux木马软件,该恶意程序的实现原理是利用了Samba协议的远程代码执行漏洞(CVE-2017-7494)。 在一个星期之后,卡巴斯基实验室的恶意软件分析师又检测到一个新的Windows恶意软件程序,通过分析研究发现,新发现的这款恶意软件竟和SambaCry是由同一个组织创建的,因为这两个程序使用的常用C&C服务器都是cl.ezreal.space:20480。

卡巴斯基实验室的分析师们将这款新检测到的恶意程序命名为Backdoor.Win32.CowerSnail,该恶意软件的MD5值如下所示:

5460AC43725997798BAB3EB6474D391F

CowerSnail 木马程序的设计是基于跨平台开发框架 Qt 编写的,这样做的好处是允许攻击者将 Unix 平台开发的恶意代码快速迁移至 Windows 平台环境中。另外,该框架还提供了不同操作系统之间的跨平台功能与源代码转移,从而使平台传输代码变得更加容易。然而,在便捷传输的同时也增加了生成文件大小,导致用户代码仅占 3MB 文件的很小比例。

下面,我们将给出关于CowerSnail 这款木马程序的详细分析。


第一阶段

首先,CowerSnail木马软件会首先去提高自身进程的优先级和当前线程的优先级,如下图所示:

http://p3.qhimg.com/t0122ddcbb69e8951a2.png

然后,它使用StartServiceCtrlDispatcher 这个API函数作为控制管理服务来启动主要的C&C通信线程。

http://p0.qhimg.com/t01e28d9c7b3cfca707.png

那么,如果C&C通信线程作为服务被成功启动,则木马软件将通过该服务与C&C服务器进行进一步的通信; 否则,CowerSnail木马软件则不会开始运行。 CowerSnail这款软件在实现上也可以接受各种输入的参数变量,例如C&C主机。 当这些参数不存在时,CowerSnail会从配置文件中提取所需的这些参数数据。

通过控制管理服务程序来启动调用主要的C&C通信方法在实现上将如下图所示(该方法通常被称为“例程”)。

http://p5.qhimg.com/t014ae6b41fb2c65770.png


C&C通信服务器

通过我们对流量的研究和分析,实验表明僵尸网络中的节点都是通过IRC协议与C&C服务器进行通信的。 这可以从“通道”命令特征以及随后所进行的ping交换数据中看出,这些通常发生在由IoT设备组成的IRC僵尸网络中。

http://p9.qhimg.com/t018a4c6f4bee315583.png

从下图中我们可以看到,在每个数据包中(除了“通道”命令之外)的前两个字节数据都是“PK”这个特征,紧跟在“PK”这个特征后面的双字节表示数据包中剩余数据的长度信息。

http://p0.qhimg.com/t012cf447337386ff0d.png

数据包中每个字段的名称都是用Unicode进行编码的,并且每个字段的前面一般都是字段的长度信息。从图中我们可以看到,状态栏字段后面的RequestReturn/Request这个双字节的字段显示的是变量RequestReturn所需的变量个数。在图中的这个例子中,我们可以看到RequestReturn字段所需的有三个变量,分别是'success','I'和'result'这三个变量,这些字段中的每一个字段又可以包含更多的嵌套变量。从下面的屏幕截图中我们可以看到数据包中包含了对SysInfo这个命令请求的响应数据,从图中我们可以看到,CowerSnail木马软件从受感染的电脑终端中获取到14(0xE)个有关SysInfo系统信息的子字段数据信息,依次为字段的名称、类型以及字段的值。

http://p4.qhimg.com/t01716735566a63357b.png

根据我们获取的流量以及分析得出,CowerSnail木马软件的请求包和响应包的结构略有不同,木马程序服务器的请求包的组成依次为Request-> arg-> type – >“Ping / SysInfo / Install”,以及嵌套到arg字段中的额外参数。

以下是几个变量类型的示例:

0x00000005 – 整数变量

0x0000000A – 字符串变量

在C&C服务器上注册被感染的终端主机之后(当然,这些注册信息包括发送有关被感染系统的SysInfo信息),CowerSnail木马程序会首先与C&C服务器交换互相执行ping命令,之后木马软件静默等待C&C服务器的指令。


命令

与SambaCry不同的是,默认情况下,CowerSnail木马程序不会去主动下载cryptocurrency Mining软件,而是提供一套标准的后门功能,这些功能主要有:

1. 接收更新(LocalUpdate)

2. 执行任何命令(BatchCommand)

3. 安装CowerSnail作为服务,这个操作是使用服务控制管理器命令行界面来执行安装操作

4. 从服务列表中卸载CowerSnail木马程序(卸载)

5. 收集系统信息(SysInfo):

a. 时间戳

b. 安装的操作系统类型(例如Windows)

c. 操作系统名称

d. 主机名

e. 有关网络接口的信息

f. ABI

g. 核心处理器架构

h. 有关物理内存的信息

http://p9.qhimg.com/t01839ff23d241ba9cb.png


结论

SambaCry木马软件是专门为基于类Unix的系统而设计的,而CowerSnail则是使用Qt编写的,这样做的好处是允许攻击者将 Unix 平台开发的恶意代码快速迁移至 Windows 平台环境中无。另外,该框架还提供了不同操作系统之间的跨平台功能与源代码转移,从而使平台传输代码变得更加容易。由于这两个程序使用的常用C&C服务器都是cl.ezreal.space:20480,由此我们可以推断这两个木马软件都是出自同一个黑客组织之手。网络黑客在创建这两个单独的特洛伊木马后,每个木马都设计用于特定的平台,每个木马软件都具有自己的特殊性,我们猜测这个黑客组织将来非常有可能会创建更多的恶意软件。

本文翻译自securelist.com 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
blueSky
分享到:微信

发表评论

内容需知
  • 投稿须知
  • 转载须知
  • 官网QQ群8:819797106
  • 官网QQ群3:830462644(已满)
  • 官网QQ群2:814450983(已满)
  • 官网QQ群1:702511263(已满)
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 360网络攻防实验室 安全客 All Rights Reserved 京ICP备08010314号-66