ELF_PLEAD——BlackTech 黑客组织针对 Linux 的恶意软件
原文链接:https://blogs.jpcert.or.jp/en/2020/11/elf-plead.html
译者:知道创宇404实验室翻译组
前言
在过去的一篇文章中,我们介绍了Linux恶意软件ELF_TSCookie,它被一个攻击组织BlackTech使用。这个组织也使用其他影响Linux操作系统的恶意软件。我们之前介绍的Windows的PLEAD模块也有Linux版本(ELF_PLEAD)。本文将ELF_PLEAD模块与PLEAD模块进行了比较。
PLEAD模块和ELF_PLEAD的对比
ELF_PLEAD和PLEAD模块许多部分是共享代码的,并且包括通信在内的大多数功能都是相似的。图1显示了PLEAD模块和ELF_PLEAD的主要功能的比较。

图1:PLEAD模块和ELF_PLEAD的代码比较
(左:PLEAD,右:ELF_PLEAD)
从处理流程来看,这两种恶意软件非常相似。下面将从以下几个方面介绍ELF_PLEAD的特点:
- Configuration
- Communication protocol
- Commands
Configuration
ELF_PLEAD具有大小为0x1AA的配置。图2是配置示例。它包含C&C服务器和加密密钥之类的信息。(有关配置的详细信息,请参阅附录A。)

图2:配置示例
该配置经过RC4加密,加密配置之前的32字节字符串是加密密钥本身。图3是加密配置及其密钥的示例。

图3:加密配置和加密密钥
Communication protocol
PLEAD模块使用HTTP协议与其C&C服务器通信,ELF_PLEAD使用其自定义协议。除此之外,他们的数据格式和交换加密密钥的方法几乎相同。图4描述了ELF_PLEAD执行的通信流。

图4:ELF_PLEAD的通信流
首次通信时,ELF_PLEAD交换RC4密钥的一部分。之后,由交换机生成的RC4密钥将用于随后的通信。发送的数据经过RC4加密,然后进行LZO压缩。(有关通信协议的详细信息,请参见附录B。)
Commands
ELF_PLEAD配备有5个命令组,如下所示。(有关命令功能的详细信息,请参见附录C。在某些示例中,命令编号可能会有所不同。)
- CFileManager(组号0):用于文件操作的命令
- CFileTransfer(组号1):用于发送/接收文件的命令
- CRemoteShell(组号2):远程Shell的命令
- CPortForwardManager(组号3):代理模式的命令
- No name(组号0xFF):用于恶意软件控制的命令

图5:命令组名称
很明显,这些功能与PLEAD模块几乎相同。
总结
我们已经确认,BlackTech使用了针对Linux OS和Windows OS的各种恶意软件,包括TSCookie,PLEAD和KIVARS。如果您在Windows环境中发现了此类恶意软件,建议也检查Linux环境。
附录A:ELF_PLEAD配置
表A:配置
| Offset | Description | Remarks |
|---|---|---|
| 0x000 | RC4 Key | Used for encrypting communication |
| 0x004 | ID | |
| 0x024 | Port number 1 | |
| 0x026 | Port number 2 | |
| 0x028 | Port number 3 | |
| 0x02A | C&C server 1 | |
| 0x0AA | C&C server 2 | |
| 0x12A | C&C server 3 |
在某些示例中,配置格式可能会有所不同。
附录B:交换数据的内容
表B-1:发送数据的格式
| Offset | Length | Contents |
|---|---|---|
| 0x00 | 4 | RC4 Key (Key4) |
| 0x04 | 4 | Hash value |
| 0x08 | 4 | RC4 key (Key1) |
| 0x0C | 2 | Length of data sent |
| 0x0E | 2 | Length of data at offset 0x10 before compression |
| 0x10 | - | Encrypted data (RC4 +LZO) (See Table A-2 for details.) |
表B-2:加密数据的格式
| Offset | Length | Contents |
|---|---|---|
| 0x00 | 2 | 0xFF |
| 0x02 | 4 | RC4 key (Key2) |
| 0x06 | - | Random data (at least 128 bytes) |
表B-3:接收数据的格式
| Offset | Length | Contents |
|---|---|---|
| 0x00 | 4 | RC4 key (Key4) |
| 0x04 | 4 | Hash value |
| 0x08 | 4 | RC4 key (Key1) |
| 0x0C | 2 | Length of data sent |
| 0x0E | 2 | Length of data at offset 0x10 before compression |
| 0x10 | - | Encrypted data (RC4 +LZO) (See Table A-4 for details.) |
表B-4:接收到的数据中加密数据的格式
| Offset | Length | Contents |
|---|---|---|
| 0x00 | 2 | 0x01FF |
| 0x02 | 4 | RC4 key (Key3) |
附录C:ELF_PLEAD命令
表C-1:不带组名的命令(组号0xFF)
| Value | Contents |
|---|---|
| 4 | Send random data |
| 5 | Reconnect |
| 6 | Restart |
| 7 | End |
| 8 | End |
| 9 | Change socket |
| 11 | Change C2 server |
表C-2:CFileManager的命令(组号0)
| Value | Contents |
|---|---|
| 32 | Send list of files |
| 37 | Send file size, mode, timestamp |
| 39 | Change file name |
| 41 | Delete file/directory |
| 43 | Upload file |
| 45 | Execute file |
| 49 | Create directory |
| 51 | Move file |
| 53 | Delete directory |
表C-3:CFileTransfer的命令(组号1)
| Value | Contents |
|---|---|
| 64 | Send file/directory information |
| 67 | Create directory |
| 70 | Download file |
| 71 | Send file information |
| 75 | Upload file |
表C-4:CRemoteShell的命令(组号2)
| Value | Contents |
|---|---|
| 80 | Launch remote shell |
表C-5:CPortForwardManager的命令(组号3)
| Value | Contents |
|---|---|
| 96 | Set up proxy |
| 100 | Connect proxy |
| 102 | Send proxy data |
| 104 | - |
| 106 | - |
| 108 | End proxy |
附录D:C&C服务器
mx.msdtc.tw
附录E:恶意软件哈希值
- 5b5f8c4611510c11d413cb2bef70867e584f003210968f97e0c54e6d37ba8d8d
- ca0e83440b77eca4d2eda6efd9530b49ffb477f87f36637b5e43f2e428898766
以上是 ELF_PLEAD——BlackTech 黑客组织针对 Linux 的恶意软件 的全部内容, 来源链接: utcz.com/p/199778.html

