Smoke Loader:主体、控制台、插件,以及盗版之殇 | xxxSmoke Loader:主体、控制台、插件,以及盗版之殇 – xxx
菜单

Smoke Loader:主体、控制台、插件,以及盗版之殇

二月 3, 2019 - 360netlab

Smoke Loader 是一个在黑市上公开销售的僵尸网络软件。其活动时间可以追溯到2011年,虽然近年来已经被多次曝光,但保持持续升级,非常活跃。在我们统计中,仅最近半年活跃的样本就超过 1,500 个。

我们在跟踪这一家族的过程中,捕获了一套完整的恶意程序套件,包括其主体Loader、控制台Panel,以及控制台中包含的插件。对这套样本的分析使我们对其运行机制有了更深入的了解,这将是本文的主要内容之一。

分析过程中,我们还遇到一组被修改过的特例样本。虽然有人认为这组样本是作者在对抗安全研究人员提取C2主控域名,但仔细分析后,我们认为这是第三方做“盗版”。这部分的分析和研判过程,是本文的主要内容之二。

Smoke Loader相关的分析文档已经很多,本文不会涉及已经被公开的部分。相关内容,读者可以参阅文末参考部分。

Smoke Loader 套件分析

套件中的文件结构见后图,说明如下:

图 1. Smoke Loader 目录结构

控制台

套件中的 Panel 目录,就是其控制台。将其部署后,得到一个Web控制界面,这是一个标准的Smoke Loader的控件台,样式布局和网上流传的控制台基本一致。

通过对照恶意软件自带功能说明,可以了解该控制台包括以下12大类功能:

其存储位置和执行方式也略有不同:

图 2. Smoke Loader 的Panel控制台,Web界面

图 3. Smoke Loader 自带功能介绍文件

图 4. Smoke Loader 用户自定义功能界面

插件

Smoke Loader的插件系统很灵活,除了首次启动会尝试下载所有自带插件及插件执行规则,还支持通过自带插件和插件规则。

通过解密plugin共拆解出16个插件,其中若干插件功能相同但适配不同版本操作系统。在我们的测试机上运行时,可以看到Smoke Loader的有效载荷成功创建了9个子进程,每个进程内运行了一个插件。注意,这些进程名虽然是 explorer.exe看似无害,但实际上已经被注入了插件载荷,是恶意进程。具体的注入方式细节,见参考[1]。

图 11. 控制台将数据库中的插件规则下发给 bot

图 12. 测试机中已经运行起来的插件们

更多插件的细节包括:

图 13. 挖矿插件运行示例

图 14. DDoS攻击插件支持的攻击类型

图 15. 表单窃取插件支持的浏览器列表

“对抗”还是“盗版”?

有人报告近期流行的Smoke Loader出现了版本[2],以对抗C2抽取系统,我们也观察到一组类似样本。

这组样本的目的,实际上不仅可能是“对抗”,我们分析后认为其目的是“盗版”。我们认为这个版本的改动来自第三方而非原作者,目的不是为了对抗安全研究人员分析,而是为了突破原始作者在售出的Loader中写死C2的限制。

这组样本共88个,有个共同点是其中残存了两个并不生效的C2:

从残存C2出发,我们在手头的其它样本中关联到了有着相同C2、并且生效的样本。我们将后者称为原始样本,前者称为修改版本。通过对比,我们注意到以下特点,并据此认定这组版本是经过二进制Patch的“盗版”:

Smoke Loader 在黑市有销售,一套完整的Smoke Loader公开售价约850美元。开发者采用许可证的销售模式,给每个买家发布一套定制好的系统,包含了Loader+Panel。值得注意的是,如果想变更C2就需要重新生成Loader,而每重新生成一个Loader需要10美元。这组“盗版”Loader就可以突破原作者的这个限制。

Patch后的盗版Loader支持全部功能。但这种Patch方案非常粗暴缺点很明显,硬编码使得一个Loader最多只能支持一个有效C2。样本的网络行为和我们的统计数据也都证实了这一结论。

“盗版”中的三处关键 Patch 代码

该版本中有三处关键的Patch代码,分析如下,截图见后:

图 16. Patch 1,替换了C2配置信息的解密函数

图 17. Patch 2, 使用空指令NOP覆盖以跳过第一C2验证机制

图 18. Patch 3, 使用空指令NOP覆盖以跳过第二C2验证机制

3. 其它有意思的细节

Loader

套件中的Loader_new_Cyberbunker.exe就是Loader本体。

Loader由注入器和有效载荷组成。注入器负责一些简单的沙箱和逆向对抗工作,并最终把有效载荷注入explorer进程。有效载荷是真正的工作代码。

2018版的注入器,会使用PROPagate的加壳注入方案,这一点在Talos的公开文档中已经提及。通常,Smoke Loader的买家在通过各种渠道传播恶意程序之前,还会继续使用自己的加壳方案对Loader加壳。所以,流行的样本基本上都会有两到三层壳。

图 5. 流行的Smoke Loader样本通常会有两到三层壳

上线包和C2指令通信格式

样本运行后,会发送一个数据包向控制台注册,称为上线包或者注册包。2018版注册包的数据结构在既往已公开分析中未见清晰定义,我们可以利用控制台代码中相应部分轻松搞定。

图 6. 解密后的上线包

图 7. 控制台代码中定义的上线包数据结构

通过分析,我们可以明确该上线包的格式如下:

图 8. Smoke Loader 上线包的格式

其中部分字段的意义如下:

图 9. Smoke Loader 能够感染主机的OS版本

图 10. Smoke Loader 支持的指令类型

4. IoC统计

我们对近半年收集到的 Smoke Loader样本做了一些简单的统计,详细数据请参考附录IOC:

破解版相关统计:

按照Affid (Seller ID)进行分组,样本的统计情况如下。其中Good、cece、new1 是这个渠道较大的消费者,三者合计占据了 88%。NA 是样本中该处为空的情况:

affid   count   %   Good    826     49.9%   cece    395     23.9%   [NA]    238     14.4% new1    77      4.7%   1501    21      1.3%   0       13      0.8%   Pitt    12      0.7%   1301    9       0.5%   sel1    7       0.4%   Form    5       0.3%   OTHER   52      3.1%   

5. IoC

Malware Sample md5
完成的md5列表超过 1,500 行,可以在 这里 下载。下面列出了前十条记录:

001dacf6608df69d485514a172fff05d   00521a5e800a85de875b703e9bc1f507   00891f91904955fb69fad4488f96741a   008d5eb400e41fcb87ef64db276013dc   009e213b63a4830adf5df372261ae6b0   00b8a47bdf14880ebeba6bebc3ea7dbc   00c5063e13752357b35c097c4c0f7059   00eef71e18381a537b1750c7f2983025   01162c00d54b976536d692173ef3e039   013748c007f80fb7cc2c42ca424e4733   

Malware C2
完整的C2 列表超过 250 行,可以在 这里 下载,下面是前十条记录。其中各字段的含义如下。

关于 C2 列表的一些细节:

#           NA                                             C2                   version  req_key  res_key          remaining_c2_if_exists                            affid md5_count 0                                                          http://makak.bit/2/  2018  0xe5400000  0xa6b397e0                                                         Good  826   1                                                          http://mytter.ru/2/  2018  0xe5400000  0xa6b397e0                                                         Good  826   2                                                       http://svoloch.club/2/  2018  0xe5400000  0xa6b397e0                                                         Good  826   3                                                            http://d3s1.me/2/  2018  0x3b22e540  0xa6b397e0                                                         cece  395   4                                                       http://kiyanka.club/2/  2018  0x3b22e540  0xa6b397e0                                                         cece  395   5                                                      http://proxy-exe.bit/2/  2018  0x3b22e540  0xa6b397e0                                                         cece  395   6                                                     http://5gssghhs2w.org/2/  2018  0xe5400000  0xa6b397e0                                                         new1   77   7                                                          http://dvhwzq.ru/2/  2018  0xe5400000  0xa6b397e0                                                         new1   77   8                                                          http://hdxaet.ru/2/  2018  0xe5400000  0xa6b397e0                                                         new1   77   9                                                      http://hghwwgh6.info/2/  2018  0xe5400000  0xa6b397e0                                                         new1   77   

参考资料


Notice: Undefined variable: canUpdate in /var/www/html/wordpress/wp-content/plugins/wp-autopost-pro/wp-autopost-function.php on line 51