原文链接: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

Paper 本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1401/