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 服务爆破,但仍然应该引起注意。