新型ibus蠕虫,利用漏洞疯狂挖矿牟利
近日有安全团队发现了一起利用多个流行漏洞传播的蠕虫事件。涉及的漏洞除了ThinkPHP远程命令执行漏洞,还有JBoss、Weblogic、Redis等产品的漏洞。因为该蠕虫最初植入的恶意脚本名为ibus,所以命名为ibus蠕虫。
一、背景
近日有安全团队发现了一起利用多个流行漏洞传播的蠕虫事件。黑客首先利用ThinkPHP远程命令执行等多个热门漏洞控制大量主机,并将其中一台“肉鸡”作为蠕虫脚本的下载源。其余受控主机下载并运行此蠕虫脚本后,继续进行大规模漏洞扫描和弱口令爆破攻击,从而实现横向传播。涉及的漏洞除了ThinkPHP远程命令执行漏洞,还有JBoss、Weblogic、Redis等产品的漏洞。因为该蠕虫最初植入的恶意脚本名为ibus,所以命名为ibus蠕虫。
二、蠕虫主要特点及结构
该黑客通过ThinkPHP漏洞和蠕虫脚本获取了大量的肉鸡进行牟利。该安全团队详细分析了此蠕虫的主要特点,包括:
使用多种漏洞进行传播,以web代码执行漏洞为主;
恶意脚本的名字及路径具有迷惑性,且多份拷贝存放于不同的目录下;
主要代码perl实现,具备功能完备的C&C通信模块;
C&C通信使用http协议,通信内容加密;
通过挖掘门罗币进行获利。
蠕虫的功能结构由恶意脚本、传播模块、C&C模块、挖矿模块等组成。
黑客首先利用ThinkPHP v5 远程命令执行漏洞攻击了大量主机,并将ip为67.209.177.163的服务器作为蠕虫脚本的下载源。
之后攻击者控制其他被入侵主机从67.209.177.163下载ibus脚本并执行。该脚本用perl语言写成,主要功能是解码、写入并执行C&C (Command and Control)模块。
攻击者进而通过向C&C模块发送命令,下载包含多种攻击payload的传播模块,以及由下载器、配置文件和挖矿程序组成的挖矿模块,挖矿从而获取利润。传播模块则继续攻击未被入侵主机,横向传播。
黑客入侵的各个阶段如下图所示:
三、蠕虫模块分析
1.攻击及恶意脚本植入
对大多数被入侵主机,攻击者最初是利用ThinkPHP v5 远程代码执行漏洞,通过如下payload植入恶意脚本
可以看到这里从http://67.209.177.163/ibus下载并运行了ibus。分析后发现ibus是一个perl脚本,该脚本会从Linux根目录开始遍历所有目录(最大深度为6),找出当前账号有写权限的所有文件夹,存入列表。
之后对列表中的目录进行打分,取分数最高的三个目录。打分标准例如完整路径以”/bin”开头的目录分数最高,”/usr/bin”其次,以此类推。
在最后挑选出来的三个目录中,写入同样的C&C模块脚本(脚本分析见后文),并分别命名为nmi, nbus和.dbus。这三个都是系统程序的名字,定时执行时还会打印出“These are for bus-kernl-daemon service”,非常具有迷惑性。
ibus脚本最后进行定时任务添加和脚本自删除操作。
2.传播模块
下图为攻击函数列表,可以看出此蠕虫代码利用了多种漏洞进行横向传播,包括java反序列化漏洞、Weblogic WLS组件RCE漏洞(CVE-2017-10271)、WebLogic 任意文件上传漏洞(CVE-2018-2894)、redis 未授权访问漏洞等。
以下是部分攻击代码:
1)对JBoss用户名、密码暴力破解
涉及的部分用户名和弱口令列表:
2)使用weblogic漏洞上传Webshell
3)redis 未授权访问漏洞
3.C&C模块
该部分的内容是由ibus中的$encnde解码后得到,相同内容被写入三个不同的文件夹,难以被彻底清理。
C&C模块也是一个perl脚本,它实现了完整的控制功能:
脚本包含的核心函数/模块:
newsocketto:实现socket通信
GetCommand、PostCommand:实现基本的http get/post功能
SendBackResult、SendBackState:返回c&c指令的执行结果和执行状态
register:c&c上线注册
check_relay:检测主c&c是否可用
Knock_Knock:获取C&C指令,会返回needregr、newtask、notasks、newreconfig四种指令
Update_Config_File、Load_Config_File:更新和加载配置文件
DownLoadExec、DownLoadExecPar:下载文件并执行,DownLoadExecPar可带参数执行
Updateme:更新
scanme:扫描目录
getrelfromblog、getrelfromblog1、srel:备用c&c
crntabvalidator:修改crontabs属性,后面会循环执行,防止定时任务被删除
UUID Management :为每个肉鸡生成uuid
MAIN Function:cc模块主函数
C&C模块的功能:
MAIN Function通过Knock_Knock获取c&c指令,实现如下功能
Command Execution :命令执行(实际并未实现执行功能)
Download Execute:下载文件执行
Download Execute W Params:下载文件带参数执行
Uninstall:卸载自身
killcycle:终止运行
Update Me:更新
C&C服务器是speakupomaha.com:
下图为控制主机执行GetCommand的部分代码:
四、影响范围
由配置文件可知,ibus蠕虫对应的钱包地址为4An3Radh69LgcTHJf1U3awa9ffej4b6DcUmEv8wirsDm8zRMSjifrwybH2AzHdEsW8eew3rFtk4QbGJMxqitfxmZJhABxpT。其影响范围从攻击者收益和挖矿规模的角度来看,由于该钱包地址在http://minexmr.com/#worker_stats对应的挖矿速率(HashRate)约为167KH/s,据此粗略估计,全网约有1万台的主机被这种蠕虫感染,黑客因此每天能牟利30.86美元(925.74美元 每月)。
而从攻击时间上看,1月4号和12号是黑客攻击的高峰,且蠕虫攻击仍在蔓延。
五、安全建议
针对此次ibus蠕虫攻击,给用户提供以下安全建议:互联网上扫描和攻击无处不在,web漏洞、弱密码、服务器存在未授权访问,都可能导致主机被挖矿,应尽量避免使用弱密码。
IOC