the heart of lucifer

新型针对路由器的Linux BOT或将波及其它IOT设备

据ESET报道,最近发现了一种新的针对嵌入式设备的BOT,通过分析将其恶意行为定义为Linux / Remaiten(一种可以通过互联网指令进行远程控制的后门服务)。到目前为止,已经发现了三个版本,分别是2.0,2.1和2.2。相比之前的样本,它具有一些改进,并提供了一些新的功能。根据代码中的线索,作者将这个新的恶意软件命名为“KTN-Remastered” 或者 “KTN-RM”。这里将会分享最新样本相比之前样本的一些新的特性。

先进的传播方式

1、历史样本

历史版本传播方式

历史版本传播方式

2、本次样本

本次样本传播方式

本次样本传播方式

下载者技术分析

下载者是一个比较小的ELF可执行文件,当在受害者设备上运行后,会向C&C服务器发送如下指令(主要是CPU架构):

  • mips
  • mipsel
  • armeabi
  • armebeabi

C&C服务器会根据客户端的请求返回指定CPU架构的BOT文件(ELF格式)。如下图:

下载者从C&C获得的BOT二进制文件

下载者从C&C获得的BOT二进制文件

下载者连接C&C服务器

下载者连接C&C服务器

这里分析的环境是mips架构的,下载者会下载mips架构的BOT,并在控制台输出相关的信息。

下载者从C&C服务器请求MIPS架构的BOT

下载者从C&C服务器请求MIPS架构的BOT

BOT行为分析

BOT在默认情况下会以后台服务的形式启动,一旦启动,程序会将自己的名字更改为看起来比较合法的名字(在2.0和2.1版本中使用“-bash”,2.2版本中使用“-sh”)。

BOT的启动

BOT的启动

接下来运行的create_daemon函数将会在预定义的目录(在预定义目录列表中第一个拥有写入权限的目录)中创建一个名为“.kpid”的文件,将其PID写入到该文件中:

预定义文件目录列表

预定义文件目录列表

如果名为“.kpid”的文件存在,则会结束“.kpid”文件中指定PID的进程实例,然后创建一个新的进程实例继续运行,并将其PID写入到“.kpid”文件中。

.kpid文件创建跟踪

.kpid文件创建跟踪

连接到C&C服务器

服务器的地址列表和端口是被硬编码在二进制文件中,BOT会随机选取一个服务器地址,连接指定的端口。

BOT连接的C&C服务器

BOT连接的C&C服务器

当成功连接到C&C服务器后,BOT则会监测IRC(Internet Relay Chat:互联网中继通讯)通道的存在,C&C服务器会返回欢迎信息以及相关的指令码,由受影响设备上的BOT解析与处理。

C&C BOT欢迎信息

C&C BOT欢迎信息

IRC命令处理

BOT可以响应多种IRC命令,这些命令的处理被保存在一个数组中。

IRC命令

IRC命令

这里需要关注的是“PRIVMSG”命令,因为它被用于执行具有威胁的动作,例如洪水攻击、下载文件、远程登录扫描等,这些命令被保存在静态数组中。

BOT可用的命令

BOT可用的命令

在样本文件中静态存储着对威胁命令的解释字符串,可以帮助理解。

洪水攻击指令解释字符串

洪水攻击指令解释字符串

Telnet扫描、下载文件、结束BOT的指令解释字符串

Telnet扫描、下载文件、结束BOT的指令解释字符串

嵌入的下载者

样本中包含多个CPU架构的轻量级下载者,可以向受害设备上传与其CPU架构相符的下载者,并运行,由下载者从C&C服务器下载BOT的二进制样本。

嵌入的有效载荷

嵌入的有效载荷

载荷的结构

载荷的结构

Telnet扫描

Telnet扫描与猜测

Telnet扫描与猜测

C&C发送“QTELNET”命令后,BOT便开始进行Telnet扫描,可归结为如下阶段进行:

  • 随机选取一个公网的IP地址,并连接到端口23。
  • 尝试使用用户名和密码组合进行账户猜解。
  • 获取受害设备的CPU架构。
  • 发送并执行正确的下载者。

目标CPU架构是通过在命令行执行“cat $SHELL”($SHEL指向为目标系统的执行文件),获取文件内容,然后根据ELF文件结构解析得出。

获取目标平台的CPU架构

获取目标平台的CPU架构

解析ELF文件头部结构

解析ELF文件头部结构

之后,BOT根据设备的CPU架构选择有效载荷。

根据设备架构选择有效载荷

根据设备架构选择有效载荷

样本会在“/dev/netslink/”、“/var/tmp/”、“/tmp/”、“/”、“/home/”中选择一个可写入的目录中创建几个空的可执行文件,文件名分别为“.t”、 “retrieve”和 “binary”。“retrieve”文件中将会被写入下载者,“binary”文件中将会被写入从C&C下载的BOT二进制文件,目前版本“.t”文件没有使用。

样本创建空的可执行文件的方式如下:

1) 复制busybox文件到指定文件。
2) 通过>file命令清空文件。

样本通过在Telnet上回显十六进制编码字符串序列的方式将下载者写入到嵌入式设备制定的文件中(retrieve)。

通过ECHO 传输有效载荷的十六进制编码字符串

通过ECHO 传输有效载荷的十六进制编码字符串

传输完下载者后,样本运行下载者,并通过下载者回显方式将BOT文件的内容写入到“binary”文件,最后执行BOT实例。

运行下载者和BOT实例

运行下载者和BOT实例

向C&C发送当前状态

在进行Telnet扫描过程中,BOT会向C&C服务器发送当前的扫描进度,以及新发现的设备IP,用户名和口令,以及是否已经被感染,方便管理员对设备进行管理。

向C&C发送扫描的设备信息

向C&C发送扫描的设备信息

杀死其他BOT

还有一个命令很重要,为“KILLBOTS”,BOT会枚举正在运行的实例,并根据相关条件决定是否应该结束,主要和进程名称有关(不同的版本,名称可能有所不同)。

要杀死的进程名列表

要杀死的进程名列表

要忽略的进程名列表

要忽略的进程名列表

样本仅会杀死通过僵死的shell创建的进程,并会将进程名发送给服务器,以便服务器可以通过黑白名单进行管理。

总结

通过分析发现此样本的适应范围非常广,涉及到所有的平台,有可能也会波及到IOT设备,其使用了独特的方式进行传播与扩散,同时具备了比较先进的可管理功能。针对此种恶意软件,安全的监测与部署方式进行相应的改进。

附件

BOT样本

Version 2.0

Version 2.0

Version 2.0

Version 2.1

Version 2.1

Version 2.1

Version 2.2

Version 2.2

Version 2.2

下载者样本

Version 2.0

下载者样本1

下载者样本1

Version 2.1

下载者样本2

下载者样本2

Version 2.2

下载者样本3

下载者样本3

C&C通讯

C&C通讯

C&C通讯

参考来源:

Meet Remaiten – a Linux bot on steroids targeting routers and potentially other IoT devices

转自绿盟科技博客: 原文链接.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注