Xbash 恶意软件 技术分析与防护方案

本月,来自Palo Alto Networks威胁情报小组Unit42团队的安全研究人员发现了一种新的恶意软件,被称为Xbash,主要针对Linux和Microsoft Windows服务器。恶意代码结合了不同恶意软件的功能,如勒索软件,挖矿软件,僵尸网络和蠕虫。在被感染的Linux系统中发现了僵尸网络和勒索软件功能,而在被感染的Windows服务器中则发现了挖矿行为。

事件背景

本月17日,Unit42研究人员在其官网博客中公布了一款新型恶意软件Xbash。据了解Xbash是由2016年以来便一直保持活跃的网络犯罪组织Iron开发。Xbash名字由来于恶意代码的原始主模块名称。

此前,Iron开发并传播的加密货币挖矿软件或交易劫持木马都主要用于Microsoft Windows,只有少数用于Linux平台。而此次的Xbash会在Linux 平台上利用弱口令漏洞登录MySQL,MongoDB和PostgreSQL数据库,并删除数据库进行敲诈勒索,当前没有发现任何能够通过支付赎金来恢复数据的证据。

传播与感染

该恶意软件初始阶段使用弱口令字典进行爆破,在其后来的发展过程中加入了对Hadoop Yarn 、Redis和ActiveMQ中三个已知漏洞的利用,以此来实现自我传播或感染目标服务器。

被扫描的WEB 服务包括:VNC、Rsync、MySQL、MariaDB、Memcached、PostgreSQL、MongoDB、phpMyAdmin、telnet、FTP、redis。

已知的三个漏洞分别是:

  • Hadoop YARN Resource Manager未经身份验证的命令执行漏洞,于2016年10月首次披露,未分配CVE编号。
  • Redis任意文件写入和远程命令执行漏洞,于2015年10月首次公开,未分配CVE编号。
  • ActiveMQ任意文件写入漏洞,CVE-2016-3088。

一旦漏洞利用成功,Xbash 将直接执行命令下载并运行恶意shell脚本或python脚本,或创建新的 cron 任务来执行以上操作。恶意脚本的主要功能是杀死机器上其他挖矿程序,下载由Iron cybercrime小组开发的挖矿程序,并将Xbash 自身下载到目标系统中以进一步传播。

影响范围

该恶意软件使用python语言开发,恶意软件作者通过滥用合法工具PyInstaller进行分发,转换为自包含的Linux ELF可执行文件,具有很好的跨平台特性,能够运行在macOS,Linux,Windows等平台上,攻击目标主要是Windows和Linux服务器。同时恶意软件可以对公网IP进行攻击,同样也具有内网探测的功能,将影响范围不局限于公网中,造成的危害范围较广。

根据攻击者勒索信息中给出的钱包地址,发现其目前为止已收入1.09BTC,按照当前单笔勒索金额0.02BTC计算,攻击者至少已收取其中54位感染者的赎金。

技术防护方案

绿盟科技防护建议

绿盟科技检测类产品与服务

内网资产可以使用绿盟科技的入侵检测系统(IDS)进行检测。

  • 入侵检测系统(IDS)

http://update.nsfocus.com/update/listIds

  • 统一威胁探针(UTS)

http://update.nsfocus.com/update/listBsaUtsDetail/v/rule2.0.0

通过上述链接,升级至最新版本即可进行检测!

使用绿盟科技防护类产品进行防护

  • 入侵防护系统(IPS)

http://update.nsfocus.com/update/listIps

  • 下一代防火墙系统(NF)

http://update.nsfocus.com/update/listNf

通过上述链接,升级至最新版本即可进行防护!

  • Web应用防护系统(WAF)

WAF可以在非法上传阶段进行拦截,同时开启扫描防护避免被扫描。

检测防护产品升级包/规则版本号

检测产品 升级包/规则版本号
IDS 5.6.7.739、5.6.8.739、5.6.9.18693、5.6.10.18693
UTS 5.6.10.18693

 

防护产品 升级包/规则版本号
IPS 5.6.7.739、5.6.8.739、5.6.9.18693、5.6.10.18693
NF 5.6.7.740、6.0.1.740

样本分析

产品检测

TAC检测结果:

POMA检测结果:

主要功能

该样本主要通过弱口令爆破,或尝试利用对应漏洞植入到系统中,若成功植入运行,则尝试使用对应语句删除包括mysql、postgresql、mongodb的数据库,并留下勒索提示。

弱口令爆破

程序获取弱口令字典添加到list中:

本地用户名字典:

{'mysql': ['root'],
 'postgresql': ['postgres', 'admin'],
 'mongodb': ['admin'],
 'redis': ['null'],
 'phpmyadmin': ['root', 'mysql',  'www', 'bbs', 'wwwroot', 'bak', 'backup'],
 'rsync' : ['test', 'root', 'www', 'web', 'rsync', 'admin']
}

本地弱口令字典:

['test', 'neagrle', '123456', 'admin', 'root', 'password', '123123', '123', '1', 
'{user}', '{user}{user}', '{user}1', '{user}123', '{user}2016', '{user}2015', '{user}!', '', 'P@ssw0rd!!', 'qwa123', '12345678', 
'test', '123qwe!@#', '123456789', '123321', '1314520', '666666', 'woaini', 'fuckyou', '000000', '1234567890', '8888888', 'qwerty', 
'1qaz2wsx', 'abc123', 'abc123456', '1q2w3e4r', '123qwe', '159357', 'p@ssw0rd', 'p@55w0rd', 'password!', 'p@ssw0rd!', 'password1', 'r00t', 'tomcat', 'apache', 'system', 'summer', '121212', 
'jason', 'admin123', 'goodluck123', 'peaches', 'asdfghjkl', 'wang123456', 'falcon', 'www123', '1qazxsw2', '112211', 'fuckyou', 'test', 'silver', '123456789', '234567', '1122334455',
 'xxxxxx', '123321', '7788521', '123456qaz', 'hunter', 'qwe123', '123', 'asdf123', 'password', '1q2w3e4r', 'nihao123', 'aaaa1111', '123123', '147258369', 'a123', '123qwe', '1234abcd', 
'spider', 'qqaazz', 'qwertyuiop', '1234qwer', '123abc', 'qwer1234', 'mustang', '123456', '123456a', 'ww123456', '1234', '123456.com', 'football', 'jessica', 'power', 'q1w2e3r4t5', 'aaa123', 
'passw0rd', '741852', '666666', '123465', 'justin', '!@#$%^&*()', '12345', '222222', 'qazwsx123', '999999', 'abc123', 'tomcat', 'dongdong', '654321', '111111a', 'q1w2e3', 'dragon', '1234560', 
'1234567', 'asd123456', 'secret', 'abc123456', 'master', 'qq123456', '1q2w3e', 'playboy', 'P@ssw0rd', '123654', '88888888', '12345678', 'orange', 'rabbit', 'jonathan', '000000', 
'qwer', 'admin', 'asdfasdf', '1234567890', '709394', '12qwaszx', 'abcd1234', 'pass', 'fuck', 'abc12345', 'qweasdzxc', 'abcdef', 'superman', 'rainbow', '11111111111', '1', '321', '888888', 
'1qaz2wsx', 'test', '112233', 'qazwsx', 'welcome', '4815162342', 'tiger', 'wangyang', 'q1w2e3r4', '111111', 'a123456', 'hello', '123456654321']

端口扫描/攻击

样本首先对攻击者指定的网段内的随机IP执行一次端口扫描。根据对方开放端口的不同,样本执行不同的恶意行为:

目标端口 爆破目标 渗透行为
80 phpmyadmin
8080, 8888, 8000, 8001, 8088 phpmyadmin 检测并利用hadoop漏洞
8161 检测并利用activeMQ漏洞
873 检测rsync弱口令登录,成功时向服务器返回记录
5900,5901,5902 VNC
1433,3306,3307,3308,3309,3360,9806 MySQL/MariaDB
11211 Memcached
5432 postgresql
27017 mongodb
2379,6379,7379 redis 检测并利用redis漏洞
9200 elasticsearch
23,2323 telnet
161,123,389,512,513,514,1900,3389,5984 扫描端口

勒索

样本提示用户,数据库已备份至攻击者的服务器,以此向用户勒索0.02BTC的赎金,然而样本中不执行备份数据库的行为,因此用户即使交付赎金也是无法恢复数据库文件的:

 

漏洞利用

在新版本的XBash中,我们观察到了一些已知的漏洞扫描载荷:

CVE-2016-3088,activeMQ任意文件写入漏洞:

HadoopYARN 远程命令执行漏洞:

Redis远程命令执行漏洞:

弱口令爆破:

执行挖矿脚本

若样本检测到运行在windows环境下,则利用Redis命令执行漏洞,调用shell命令,通过mshta/regsvr32尝试通过远程服务器下载用于部署恶意软件或coinminer挖矿程序的js脚本。

Windows下挖矿模块启动的powershell脚本:

Windows下挖矿模块启动的JS脚本:

网络通信

样本首先访问pastbin.com,获取C&C服务器列表:

 

之后,样本每次都将自身收集到的系统信息(服务、IP、口令等)以HTTP POST形式上传至列表中随机的C&C服务器:

 

同时,样本亦会尝试从C&C服务器获取更多的动态配置信息,例如新的弱口令字典,以gzip方式编码传送:

网络通信特征

样本上传感染主机的信息特征:post数据包中包含

“lanip”,“port”,“wanip”,“username”,“password”

字段,可通过正则进行匹配这些字段来检测。返回信息为固定的

“0d 0a 32 0d 0a 6f 6b 0d 0a 30 0d 0a 0d 0a”

 

获取弱口令的通信特征:post数据返回信息以“—”字符串进行分割,获取数量为200个弱口令。

部分格式:

“cyprus---oracle---seneca---popopo---cowgirl”

攻击定位

根据绿盟科技威胁情报中心(NTI)的定位,发现当前C&C服务器IP地址104.24.106.22,位于美国。

通过绿盟科技PDNS数据查询, 关联到样本程序的部分C&C服务器被解析到以下的IP地址:

域名 解析IP
api.leakingprivacy.tk 104.24.98.120

104.24.99.120

2400:cb00:2048:1::6818:6278

2400:cb00:2048:1::6818:6378

blockbitcoin.com 34.211.70.43

35.162.104.94

35.165.43.93

35.185.246.46

35.194.150.24

35.201.185.144

45.76.228.115

104.24.126.99

104.155.210.188

107.180.105.179

137.74.21.200

184.95.38.195

208.73.210.204

208.73.210.211

209.250.235.223

ejectrift.censys.xyz 104.24.106.22

104.24.107.22

2400:cb00:2048:1::6818:6a16

2400:cb00:2048:1::6818:6b16

news.realnewstime.xyz 104.27.136.249

104.27.137.249

2400:cb00:2048:1::681b:88f9

2400:cb00:2048:1::681b:89f9

news.realtimenews.tk 104.27.142.6

104.27.143.6

2400:cb00:2048:1::681b:8e06

2400:cb00:2048:1::681b:8f06

scan.3g2upl4pq6kufc4m.tk 104.24.126.240

104.24.127.240

2400:cb00:2048:1::6818:7ef0

2400:cb00:2048:1::6818:7ff0

scan.blockbitcoin.tk 104.24.108.199

104.24.109.199

2400:cb00:2048:1::6818:6cc7

2400:cb00:2048:1::6818:6dc7

scan.censys.xyz 104.24.106.22

104.24.107.22

2400:cb00:2048:1::6818:6a16

2400:cb00:2048:1::6818:6b16

scan.realnewstime.xyz 104.27.136.249

104.27.137.249

2400:cb00:2048:1::681b:88f9

2400:cb00:2048:1::681b:89f9

scan.vfk2k5s5tfjr27tz.tk 104.24.106.247

104.24.107.247

2400:cb00:2048:1::6818:6af7

2400:cb00:2048:1::6818:6bf7

scanaan.tk 104.27.138.117

104.27.139.117

2400:cb00:2048:1::681b:8a75

2400:cb00:2048:1::681b:8b75

2606:4700:30::681b:8a75

2606:4700:30::681b:8b75

附录 产品使用指南

TRG安全平台提供应急响应手册

TSA(绿盟态势感知平台)

添加“XBASH恶意软件威胁”事件规则:

进入BSA态势感知主页,进入规则引擎APP,如图1.1:

图1.1 进入规则引擎APP

新建网络入侵规则

新建规则,如图1.2:

图1.2 新建规则

在新建页面,如图1.3:

规则模式:专家模式

规则分类:网络入侵规则

规则sql:

select sip, dip, sum(last_times) as atk_count,min(timestamp) as start_time, max(timestamp) as end_time, concat_agg(related_id_list) as related_id_list from internal_app_bsaips.ipslog where rule_id in(41619,41618)

group by sip, dip

图1.3 新建规则-专家模式填写

 

点击下一步,出现规则属性设置页面,填入如下信息:

名称:XBASH恶意软件威胁

安全等级:中

事件阶段:恶意活动

超时时间:1800(默认值)

持续时间:3600(默认值)

归并属性:sip,dip

事件类型:有害程序 – 僵尸

规则描述:该事件是XBASH恶意软件事件。

规则建议:如果攻击发起者为我方资产,则说明该资产已失陷。

ESP(绿盟企业安全平台)

添加“XBASH恶意软件威胁”事件规则:

1)打开ESP绿盟企业安全平台,进入 安全分析 -> 事件规则,如图2.1所示:

图2.1 进入事件规则

2)选择新建,填入信息:

名称:XBASH恶意软件威胁

规则模式:单源过滤模式

攻击阶段:恶意活动

攻击手段:软件缺陷

攻击方法:恶意样本

事件类型:有害程序-僵尸网络

规则描述:该事件是XBASH恶意软件事件。

事件源:入侵防护日志

过滤条件:规则ID in 41619,41618

输出字段选择:事件发生时间、源IP、目的IP、源端口、目的端口、事件发生次数

处置意见:如果攻击发起者为我方资产,则说明该资产已失陷。

图2.2 基本信息

图2.3 过滤条件

图2.4 输出字段

3)最后点击“保存”,新建规则完成。

TAM新版本(绿盟全流量分析平台)

新建自定义场景

1)从BSA平台进入全流量分析APP选择“场景管理”>“场景配置”>“自定义场景”>“新建”,步骤如图3.1-3.4。

图3.1 打开BSA平台

图3.2 打开全流量分析APP

图3.3 打开场景管理的场景配置

 

2)选择新建黑名单自定义规则,相关细节如下:

ip:

142.44.215.177,144.217.61.147

域名:

ejectrift.censys.xyz,scan.censys.xyz,api.leakingprivacy.tk,news.realnewstime.xyz,scan.realnewstime.xyz,news.realtimenews.tk,scanaan.tk,scan.3g2upl4pq6kufc4m.tk,scan.vfk2k5s5tfjr27tz.tk,scan.blockbitcoin.tk,blockbitcoin.com

配置情况如图3.4所示:

图3.4 增加自定义场景

参考链接:

https://researchcenter.paloaltonetworks.com/2018/09/unit42-xbash-combines-botnet-ransomware-coinmining-worm-targets-linux-windows/

声 明

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

 

关于绿盟科技

北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。

基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。

北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市交易,股票简称:绿盟科技,股票代码:300369。

Spread the word. Share this post!

Meet The Author

Leave Comment