黑客利用Apache Struts 2漏洞在服务器上传递Cerberu

前一阵,我们对Apache Strust 2的CVE-2017-5638漏洞进行了预警,最近F5实验室的研究人员发现Apache Struts 2 漏洞被网络罪犯用于传递Cerber勒索软件。实际上在Strut2漏洞公开之时,怀有歹心的人就利用了S2-045(CVE-2017-5638)远程代码执行漏洞来传递勒索软件——在服务器上部署勒索软件从去年下半年开始就已经成为如今的一个趋势了。

概述

一般僵尸网络的作者常用的攻击方式,首先是扫描互联网上的web漏洞,以便恶意程序或者后门能够利用此类漏洞。服务器一般都有着较强的性能和高带宽,而且很多是不带反病毒解决方案的。

所以一旦某个0day漏洞曝光,网上就会有一堆攻击者开始搞扫描工作,其中一大部分都是恶意攻击者。前一阵我们还预警了Apache Struts 2的漏洞CVE-2017-5638,这个漏洞影响的是Jakarta Multipart Parser。F5实验室的研究人员随即发现网上已经有人开始利用这个漏洞搞破坏了,攻击不下10例。而其中某一个案例格外引人注目。

恶意软件简单分析

该攻击活动是在S2-045漏洞被披露几天之后发现的,即2017年3月6日开始的。3月10日,F5的研究人员就开始观察该攻击活动。其攻击传染媒介似乎对原有的公开PoC做了轻微的修改。

黑客利用Apache Struts 2漏洞在服务器上传递Cerberu

图1.S2-045的正常网络活动

如今所有人都直到,S2-045漏洞的触发是通过Content-Typer header值进行的——在这一例中,服务器如果的确存在该漏洞,攻击者就采用执行shell命令的方式来进行攻击。

在这波攻击的第一阶段中,研究人员发现攻击者将shell命令用于感染PowerBot恶意程序——这款恶意程序采用PERL编写,其主要功能就是DDoS攻击(PerBot或ShellBot)。

这些攻击者在扫描互联网是否存在Struts2漏洞后,随后的命令执行一般步骤是这样的:从远程服务器下载恶意程序,设置其为可执行(二进制文件),运行恶意程序,移除最初的感染文件。

一般来说,攻击payload采用目标设备已经安装的程序来下载恶意程序,比如wget和curl。在本次攻击行动中,攻击者也用上了wget,另外还用上了不怎么常用的fetch程序。而在wget的用法上,攻击者采用“wget -qO-”选项,这样一来会下载恶意程序,但并不会写入为磁盘上的文件。恶意内容会重定向到Perl解释器执行,减少了被检测到的可能性。

Bot部署到位后,被感染的服务器就会连接至IRC通道获取指令——如图2、图3所示。F5通过对IRC的追踪发现,到目前为止被感染的服务器已经超过2500个。

黑客利用Apache Struts 2漏洞在服务器上传递Cerberu

图2:IRC通道包含超过2500个bot

随便挑选其中一些感染主机名和IP地址,就能发现其中有产品服务器来自AWS。

黑客利用Apache Struts 2漏洞在服务器上传递Cerberu

图3:连接至IRC通道感染主机示例

从DDOS到加密虚拟币的挖掘

在接下来几天的观察中,F5的研究人员又发现了本次攻击活动的其它形式。只不过payload从Perl变成了Bash脚本,不过这里的payload只是用于部署2种不同恶意程序的开端罢了——这部分exploit仍然会下载并执行前文提到的Perl bot。

黑客利用Apache Struts 2漏洞在服务器上传递Cerberu

图4.下载并运行PERL bot

不过这一次下载的是个虚拟币挖矿程序”minerd”(和其他一些必须的文件)。攻击者对恶意进程及其设置进行了伪装,令其看起来和Apache服务器进程差不多,这样用户会比较难分辨。

黑客利用Apache Struts 2漏洞在服务器上传递Cerberu

图5.下载“minerd”及其配置文件

bot随后就开始挖矿了,挖掘所得的虚拟币会进入到多个加密币池中,如图6的配置文件所示。

黑客利用Apache Struts 2漏洞在服务器上传递Cerberu

图6.“minerd”配置文件

这些矿池似乎托管于法国的“crypto-pool.fr”域名下:

黑客利用Apache Struts 2漏洞在服务器上传递Cerberu

图7.矿机托管于法国在线的SAS网络

该恶意软件有趣的地方在于其自身的传播方式。它会在目标服务器上搜索服务器管理员连接的所有远程IP地址。它会搜索SSH“known_hosts”文件,该文件保留管理员连接的所有服务器的IP地址和特征。 同时它还会扫描Bash历史文件以获取SSH命令中使用的所有IP地址。一旦IP地址列表编译完成,脚本将尝试通过SSH与它们连接。如果配置的认证设置是使用密钥文件而不是用户名和密码,则恶意软件就会在远程计算机上成功完成自我部署。

黑客利用Apache Struts 2漏洞在服务器上传递Cerberu

图8.恶意软件传播到其他已知服务器

ShellShock连接

F5研究人员观察到,本次攻击行动的其中一个IP地址来自香港,如图9所示。先前这个IP地址就曾经用ShellShock(CVE-2014-6271)发动类似的攻击。

黑客利用Apache Struts 2漏洞在服务器上传递Cerberu

图9.攻击托管于香港港口的T&T网络

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7190a22555c31b53977eb5b07aab27b3.html