Akamai 最近通过全球部署的蜜罐,发现了一个为游戏行业量身定制的具有 DDoS 能力与加密货币挖掘能力的僵尸网络 KmsdBot。

发现 KmsdBot

由于蜜罐是对外开放的,会有大量的攻击行为被发现,其中有很多下载恶意软件的命令。其中有一个引起了分析人员的注意:

下载日志

攻击者利用 FTP 下载所需的恶意样本,FTP 服务器上还有很多其他样本。

支持各种架构

从目录上看恶意软件支持各种 CPU 架构,但其实有些包含二进制文件,有些是空目录。攻击者可能在陆续扩展所支持的架构,扩大攻击目标范围。

download.php 脚本中包含恶意代码,用于在 Web 服务器上下载恶意软件。

恶意代码

部分架构(如 x86_64 和 386)下有恶意样本能够下载,如下所示:

大小相似的二进制文件似乎是同一恶意软件代码的修改版

这些样本都是 Go 开发的二进制文件:

分析

这些二进制文件的包名称都是 /root/client,这意味着它们可能都是相同的恶意软件,只是版本不同。他们中有一个文件能够完成 C&C 通信、软件更新与加密货币挖掘,另一个文件可以进行攻击。

恶意软件的攻击目标是一家名为 FiveM 的游戏公司,支持用户为 Grand Theft Auto Online 部署自定义私服。下图为样本打开 UDP 套接字后,使用 FiveM Token 构建数据包,浪费服务器资源。

构建数据包

扫描传播

ksmdx 样本中包含扫描、更新与挖矿的功能:

ksmdx 会向 C&C 服务器发送 Bruh Started:的 HTTP POST 请求,以此进行失陷主机上线。

HTTP 日志中的请求为:

在 45833 端口上可以看到 POST 请求:

POST 请求

向 C&C 服务器发送 !scan 命令即可获取 SSH 服务凭据爆破列表:

爆破列表

C&C 通信

蜜罐日志中能够看到恶意软件从一个新的 IP 地址对蜜罐发起攻击,上传了新的恶意样本,内置了新的 C&C IP 地址。

查看流量可以发现失陷主机使用空字节初始化连接,C&C 服务器响应 0x01,随后失陷主机返回 0x02。

使用 netcat 可以进行简单测试:

通信流量如下所示:

挖矿

sym.main.randomwallet() 函数中内置了数个钱包地址,在连接矿池时会随机选择。分析人员在分析时,并未发现任何挖矿行为,僵尸网络只进行了 DDoS 攻击。当然,攻击者仍然可以通过 ./ksmdr -o pool.hashvault.pro 命令来启动挖矿。

对样本分析后,可以确定很多文件都是同一代码库的不同版本,僵尸网络仍然在积极迭代更新。

攻击流量分析

在四层 TCP/UDP 攻击数据包中,随机数据作为 Payload。在七层 HTTP 攻击数据包中,针对特定路径发起 GET/POST 请求。

攻击请求

攻击请求

攻击请求

在函数 sym.main.connect() 中定义了 C&C 通信,如下所示:

C&C 通信

C&C 通信

TCP 洪水数据包

结论

KmsdBot 最初针对游戏公司进行攻击,目前已经转向大型奢侈品品牌。尽管攻击方式仍然是原始的 SSH 服务爆破,但仍然应该引起注意。