原文链接: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的主要功能的比较。
从处理流程来看,这两种恶意软件非常相似。下面将从以下几个方面介绍ELF_PLEAD的特点:
- Configuration
- Communication protocol
- Commands
Configuration
ELF_PLEAD具有大小为0x1AA的配置。图2是配置示例。它包含C&C服务器和加密密钥之类的信息。(有关配置的详细信息,请参阅附录A。)
该配置经过RC4加密,加密配置之前的32字节字符串是加密密钥本身。图3是加密配置及其密钥的示例。
Communication protocol
PLEAD模块使用HTTP协议与其C&C服务器通信,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):用于恶意软件控制的命令
很明显,这些功能与PLEAD模块几乎相同。
总结
我们已经确认,BlackTech使用了针对Linux OS和Windows OS的各种恶意软件,包括TSCookie,PLEAD和KIVARS。如果您在Windows环境中发现了此类恶意软件,建议也检查Linux环境。
附录A:ELF_PLEAD配置
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:交换数据的内容
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.) |
Offset | Length | Contents |
---|---|---|
0x00 | 2 | 0xFF |
0x02 | 4 | RC4 key (Key2) |
0x06 | - | Random data (at least 128 bytes) |
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.) |
Offset | Length | Contents |
---|---|---|
0x00 | 2 | 0x01FF |
0x02 | 4 | RC4 key (Key3) |
附录C:ELF_PLEAD命令
Value | Contents |
---|---|
4 | Send random data |
5 | Reconnect |
6 | Restart |
7 | End |
8 | End |
9 | Change socket |
11 | Change C2 server |
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 |
Value | Contents |
---|---|
64 | Send file/directory information |
67 | Create directory |
70 | Download file |
71 | Send file information |
75 | Upload file |
Value | Contents |
---|---|
80 | Launch remote shell |
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
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1401/