2019年2月,卡巴斯基研究人员发现一个非常有意思的后门。通过进一步分析,研究人员发现该后门有一些特别的特征。可以利用漏洞在本地网络上传播,提供对被攻击网络的访问,在受害者机器上安装挖矿机和其他恶意软件。而且该后门是模块化的,也就是说其功能可以通过插件来不断地扩展。研究人员分析后将该恶意软件命名为Backdoor.Win32.Plurox。
Plurox是从C语言编写的,使用Mingw GCC编译,根据代码中一些调试行研究人员判断该恶意软件仍在开发测试阶段。
样本中的Debug行
后门使用TCP协议与C2服务器进行通信,插件是通过不同的端口来加载和直接接口的,C2地址是硬编码在僵尸主体中的。研究人员监控恶意软件活动发现了一共2个子网。在第一个中,Plurox只从C2中心接收挖矿机(auto_proc, auto_cuda, auto_gpu_nvidia modules
),在第二个子网中,除了挖矿机(auto_opencl_amd, auto_miner
)以外,还传递多个插件。
Plurox家族事实上是没有加密的,只有4字节的密钥用来进行常规的异或计算。调用C2服务器的包如下所示:
缓存中含有与包中的密钥XOR过的字符串。来自C2的响应中含有要执行的命令,和执行的数据,是用XOR来加密的。插件加载后,僵尸主机来选择必要的bitness并请求auto_proc
和auto_proc64
。响应消息中含有一个加密的插件MZ-PE。
研究人员分析的Plurox样本支持7种命令:
在监控过程中,研究人员共检测到多个Plurox插件,下面逐一进行分析:
恶意软件可以根据特定系统配置在受害者计算机上安装多种类的加密货币挖矿机。僵尸主机会发送含有系统配置的包到C2服务器,C2服务器会响应含有要下载的插件信息。研究人员一共发现了8个挖矿模块,分别是:
UPnP模块会从C2服务器的/24的子网中接收消息,提取所有的IP地址,并查实在使用UPnP协议的路由器上当前选定的IP地址的135(MS-RPC)和445(SMB)端口进行转发。如果成功,就报告结果给C2服务器,并等待300秒(5分钟)然后删除转发的端口。研究人员猜测该插件可以被用来攻击本地网络。攻击者只需要5分钟就可以对这些端口上运行的服务的漏洞利用进行排序。如果管理员注意到针对主机的攻击,就会看到直接来自路由器的攻击,而不是来自本地机器的攻击。成功的攻击可以帮助攻击者在本地网络上立足。
根据描述,除了转发的端口是139以外,该插件和EternalSilence非常相似。Akamai之前对EternalSilence也有过分析:
{“NewProtocol”: “TCP”, “NewInternalPort”: “445”, “NewInternalClient”: “192.168.10.165”,
“NewPortMappingDescription”: “galleta silenciosa“, “NewExternalPort”: “47622”}
下面是Plurox插件的模板:
<NewProtocol&rt;TCP</NewProtocol&rt;
<NewInternalPort&rt;%d</NewInternalPort&rt;
<NewInternalClient&rt;%s</NewInternalClient&rt;
<NewEnabled&rt;1</NewEnabled&rt;
<NewPortMappingDescription&rt;<strong&rt;galleta silenciosa</strong&rt;</NewPortMappingDescription&rt;
在上面的两个例子中,对应的地方都有标注。
SMB模块负责使用EternalBlue漏洞利用在网络上传播恶意软件。这与Trojan.Win32.Trickster的wormDll32模块是相同的,但是代码中没有调试行,而且payload是用socket加载的。
左: Plurox SMB插件注入的代码;右:WormDll注入的代码
左:Plurox SMB插件NetServerEnum;右:Trickster WormDll NetServerEnum
从上面的样本分析可以看出,不仅注入的代码很相似,就连标准步骤的代码也是相似的。基于此,研究人员认为分析的样本是Trickster插件的代码是相同的,这就表明Plurox和Trickster的创建者有某种关联。
https://securelist.com/plurox-modular-backdoor/91213/