来自Palo Alto Networks公司旗下Unit 42威胁研究团队的安全研究员Claud Xiao、Cong Zheng和Xingyu Jin在本周一(9月17日)发布的一篇博文中指出,他们发现了一个针对Linux和Windows服务器的新型恶意软件家族,并将其命名为“Xbash”。
根据Unit 42研究人员的说法,Xbash是一个僵尸网络和勒索软件的结合体,具有自我传播的功能,类似于WannaCry或Petya/NotPetya所展现的蠕虫特性。另外,它还具有一些尚未启用的功能,这些功能在启用之后将允许Xbash能够在目标网络中快速传播,而这一点同样类似于WannaCry或Petya/NotPetya。
值得注意的是,与其说Xbash是一款勒索软件,倒不如说它是一个数据擦除器。在这一点上,它与NotPetya非常类似。也就是说,它会对受害者数据造成永久性的破坏,即使是受害者支付赎金,这些数据也不可能得到恢复。
由Iron黑客组织开发,利用已知漏洞感染服务器
Unit 42的研究人员表示,他们在经过分析后发现,Xbash是由长期以来一直保持活跃的黑客组织Iron(又名Rocke)在今年开发的。根据恶意代码主模块的名称,他们将该恶意软件家族命名为了“Xbash”。
在此之前,Iron组织曾开发并传播了大量的加密货币矿工和加密货币交易劫持木马,主要针对的是Windows,只有少数针对Linux。因此,Xbash可以说是该组织一个升级后的工具,目标是找出那些使用弱密码或存在漏洞的服务器,清空受害者的MySQL、PostgreSQL和MongoDB数据库,并要求受害者以比特币支付赎金。
根据Unit 42研究人员的说法,Xbash主要利用了Hadoop(一个由Apache基金会所开发的分布式系统基础架构)、Redis(一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API)和ActiveMQ(Apache出品的开源消息总线)中的三个已知漏洞来实现自我传播或感染目标服务器。这包括:
- Hadoop YARN ResourceManager无需身份验证的命令执行漏洞,于2016年10月首次被公开披露,未分配CVE编号。
- Redis任意文件写入和远程命令执行漏洞,于2015年10月首次被公开披露,未分配CVE编号。
- ActiveMQ任意文件写入漏洞,CVE-2016-3088。
采用Python编写,目前已有四种不同版本被发现
到目前为止,Unit 42的研究人员表示他们已经发现了四种不同版本的Xbash。从这些版本之间代码和时间戳的差异可以看出,该勒索软件家族仍在被积极地开发。
Xbash是采用Python编写的,并且通过PyInstaller转换成PE可执行文件。根据Unit 42研究人员的说法,这种技术也曾被其他恶意软件开发者所使用,它具有如下几个优点:
- 开发更快、更容易:使用Python开发恶意软件比使用C、C ++或Go更快、更容易,从而使得恶意软件能够在短时间内快速发展;
- 安装简单且可靠:通过PyInstaller创建的可执行文件,其中包含了所有必需的依赖项,包括Python运行时、库、用户库和第三方库。鉴于Linux安装和环境的多样性,攻击者往往无法确定基于Python的恶意软件是否能够成功安装和运行。但通过PyInstaller转换成PE可执行文件之后,攻击者就可以确保恶意软件能够成功地安装在目标系统上。
- 反检测功能:PyInstaller的代码编译、代码压缩/转换以及加密功能,有助于恶意软件绕过防病毒/反恶意软件引擎或静态分析的检测。在Claud Xiao、Cong Zheng和Xingyu Jin编写他们的博文时,Xbash在VirusTotal上的检出率仅为1/57,如下图所示。
- 跨平台恶意软件:PyInstaller可以将同一段Python代码转换成Windows、Apple macOS和Linux的二进制文件,这使恶意软件真正能够实现跨平台。
通过扫描TCP或UDP端口寻找目标,已收获六千美元
根据Unit 42研究人员的说法,Xbash会基于域名和IP地址来进行扫描。如果扫描的是IP地址,那么它将尝试扫描众多TCP或UDP端口,以下是其中一部分:
- HTTP: 80, 8080, 8888, 8000, 8001, 8088
- VNC: 5900, 5901, 5902, 5903
- MySQL: 3306
- Memcached: 11211
- MySQL/MariaDB: 3309, 3308,3360 3306, 3307, 9806, 1433
- FTP: 21
- Telnet: 23, 2323
- PostgreSQL: 5432
- Redis: 6379, 2379
- ElasticSearch: 9200
- MongoDB: 27017
- RDP: 3389
- UPnP/SSDP: 1900
- NTP: 123
- DNS: 53
- SNMP: 161
- LDAP: 389
- Rexec: 512
- Rlogin: 513
- Rsh: 514
- Rsync: 873
- Oracle database: 1521
- CouchDB: 5984
对于某些服务,如VNC、Rsync、MySQL、MariaDB、Memcached、PostgreSQL、MongoDB和phpMyAdmin,如果相关端口是打开的,那么Xbash将使用内置的弱用户名/密码字典来尝试登录这些服务,如下图所示。值得注意的是,字典还包含Telnet、FTP和Redis等服务的通用或默认密码。
如果Xbash成功登录到了包括MySQL、MongoDB和PostgreSQL在内的服务,它将清空服务器中几乎所有现有数据库(除了存储用户登录信息的一些数据库),然后创建一个名为“PLEASE_READ_ME_XYZ”的新数据库,并插入一个名为“WARNING”的新表,用于显示勒索信息,如下图所示:
从勒索信息来看,攻击者的赎金需求金额为0.02枚比特币,并威胁受害者“如果我们没有收到你的付款,我们将泄露你的数据库”。自2018年5月以来,攻击者的钱包有48笔交易,总收入约为0.964枚比特币(约价值6000美元)。
总结和安全建议
Xbash是一种相对较新且较复杂的恶意软件,也是一个活跃的网络犯罪组织的最新作品。它目前能够针对Linux和Windows系统实施攻击,但鉴于PyInstaller的使用,我们并不排除未来会有针对其他系统的版本出现。
想要避免或减轻Xbash所带来的危害,我们可以采取以下措施:
- 使用相对复杂的密码,并经常更新(切记不要使用默认密码);
- 及时了解系统安全更新;
- 在操作系统上实施端点保护;
- 严格限制某些服务的联网访问权限;
- 对关键数据进行备份。