对Rudeminer,Blacksquid和Lucifer的比较研究

安全
Lucifer是针对Windows挖矿和DDOS的混合型恶意软件,研究人员在今年6月份发表了一份报告,详细介绍了其攻击活动,最近又有新的证据表明这个攻击是从2018年开始的。

Lucifer是针对Windows挖矿和DDOS的混合型恶意软件,研究人员在今年6月份发表了一份报告,详细介绍了其攻击活动,最近又有新的证据表明这个攻击是从2018年开始的。

它最初是一个以Windows系统为目标的具有自我传播能力的挖矿软件,现在已经发展成为一个多平台、多架构的恶意软件,目标是Linux和物联网设备。

[[376600]]

从ThreatCloud收集的数据显示,美国、爱尔兰、荷兰、土耳其和印度的25多个组织最近受到打击。攻击来自多个领域,包括制造业、法律、保险以及银行业。

当前物联网设备的主要攻击媒介是通过利用称为CVE-2018-10561的漏洞,该漏洞针对未打补丁的Dasan GPON路由器设备。

该恶意软件具有多种功能:多种类型的DDOS攻击,能够下载和执行文件的完整命令和控制操作、远程命令执行、使用Xmrig挖掘软件进行门罗币挖掘以及通过各种利用技术在Windows系统中自我传播。

攻击活动介绍

攻击源自受到被攻击者破坏的服务器,图1显示感染链是多平台的,并且针对Windows,Linux和物联网设备。然后,受感染的Windows计算机继续将恶意软件传播到网络内部和远程目标。

对Rudeminer,Blacksquid和Lucifer的比较研究

更新的感染链

恶意软件中显示了一个有趣的字符串序列:

对Rudeminer,Blacksquid和Lucifer的比较研究

在最近的Windows,Linux,ARM和MIPS示例中找到的字符串

对这些字符串的进一步研究使我们进行了两个活动,一个被趋势科技发现,他们称之为BlackSquid,另一个被腾讯发现,称为Rudeminer / Spreadminer

还可以通过追踪金融记录(在我们的案例中为所使用的XMR钱包)将这两个活动与Lucifer活动相关联。

对Rudeminer,Blacksquid和Lucifer的比较研究

通过使用的XMR钱包追踪到了三个攻击活动

当我们探索使用图3中第一个钱包的Blacksquid样本时,我们发现了两个几乎相同的样本(样本1和样本2)。

这两个样本的互斥模式都相同:

  1. BlacksquidXMRstratum+tcp://[Miner pool address]:[port] 

第一个样本使用图3中的第一个钱包,第二个样本使用第2个钱包。

第二个钱包还用于其他各种Lucifer样本(样本3),从而使我们能够关联两个恶意软件。将Blacksquid攻击系列与Spreadminer关联起来比较研究确实比较复杂,因为腾讯(示例1)中提供的示例使用了没有XMR钱包的自定义XMR挖矿池。

但是,我们能够找到一个几乎相同的样本(样本2),其中使用的是第1个钱包。

Blacksquid活动中使用的XMR钱包提供了2018年底的样本,这表明攻击者开始行动的时间甚至更早。

根据这些发现,我们创建了以下时间表:

对Rudeminer,Blacksquid和Lucifer的比较研究

这个活动中变种出现的时间线

在该恶意软件的Linux变体中可以找到另一个有趣的字符串:

对Rudeminer,Blacksquid和Lucifer的比较研究

在Linux版本的恶意软件中使用的字符串

我们认为该字符串是对腾讯发布的名为“Rude”恶意软件的回应。

这些发现表明,此活动背后的攻击者已经活跃了一年半多,并且该恶意软件一直在发展和升级其代码库。

从公开的数据来看,我们估计Lucifer攻击给攻击者带来了18.643456520496 XMR,大约是1769美元。

由于旧的XMR钱包现已被封锁,因此无法知道Blacksquid和Spreadminer攻击家族赚了多少钱。 DDOS功能的增加表明攻击者正在寻求扩大恶意软件的赚钱方法。

Windows的自我传播功能是基于过时的和公开可用的漏洞利用以及暴力攻击。随着时间的推移,Windows自身功能只发生了微小的变化,这可能表明攻击者已经成功地使用了这些方法。

新活动的第一批样本于2020年2月被上传到VirusTotal网站,之后的几个月里又上传了一些样本,新的样本仍在检测中。

迄今为止,第一个也是唯一的ARM示例已于5月10日上传到VirusTotal。

对Rudeminer,Blacksquid和Lucifer的比较研究

VirusTotal中的ARM示例列表

目前尚未确定此样本是否是恶意的,ARM示例仅具有DDOS功能,并且与Linux示例具有不同的行为,这可能是由于物联网设备引起的限制。

C2服务器具有可公开访问的HFS服务器,可让我们目睹攻击的演变:

对Rudeminer,Blacksquid和Lucifer的比较研究

最新的二进制样本已上传到C2 HFS公共服务器

正如你所看到的,活动在不断发展并发布新版本。上传的“office.exe”,“sb360..exe”可执行文件是gh0st RAT的变体,这表明攻击者想要扩展受感染计算机中的恶意软件功能。

没有删除Linux,ARM,MIPS版本的调试符号,这使我们能够将所有平台的新版本的代码库关联到2009年以来的中文DDoS程序,该程序称为“Storm Attack Tool VIP 2009”,人们可以在各种开放源代码的中文网站上找到这个程序的下载版本。

对Rudeminer,Blacksquid和Lucifer的比较研究

Storm攻击工具面板的图像

所有最新版本的DDoS攻击都来自该软件,恶意软件的其余部分被严重修改为其他功能,例如完整的C&C操作,门罗币挖矿,Windows系统中的自我传播以及Linux和物联网设备的端口。

在本文的其余部分,我们将深入研究Linux,ARM和MIPS示例。

Linux x86 / x64

Linux版本与Windows版本的不同之处在于,它不具有自我扩展功能。此外,Linux样本未删除调试信息。

成功利用后,恶意软件使用daemon命令将自身与终端分离,并在后台作为守护程序运行。

恶意软件会检查是否能够设置用于绑定到端口,端口号取决于版本,最新版本使用端口20580。如果恶意软件无法设置套接字或绑定到套接字,则退出。绑定之后,没有调用listen函数来实际开始监听该端口。

套接字的目的不是通讯而是强制执行以下行为:一次只能运行一个进程的恶意软件,因为不能有多个套接字使用同一端口。

该恶意软件为以下信号设置了三个信号处理程序函数:

  • SIGPIPE:对被攻击的管道执行写入操作;
  • SIGTERM:请求终止程序;
  • SIGINT:请求程序正常关闭;

恶意软件执行以下命令:

  1. /sbin/service crond start;chkconfig –level 35 crond on; 

命令的第一部分启动crond服务,第二部分将crond服务设置为在以下运行级别上运行:

  • 多用户模式,仅控制台登录。
  • 多用户模式,具有显示管理器和控制台登录名(X11)。

chkconfig命令失败,因为它在-level 35之前缺少另一个连字符。

这两个命令仅适用于基于CentOS / RHEL的发行版。

恶意软件的下一个目标是增加文件描述符限制,UNIX的定义功能之一是“一切都是文件”,套接字也是如此。

当恶意软件发起DDoS攻击时,它需要打开尽可能多的套接字,以将尽可能多的流量发送到目标。

这可以通过在OS设置中增加文件描述符限制来实现,为了更改文件描述符限制,恶意软件首先检查User ID。当程序以root用户身份运行时,其用户ID为零。如果恶意软件以用户ID为0 (root)运行,则:

执行命令:

  1. ulimit -HSn 65536; 

在文件/etc/sysctl.conf中添加“fs.file-max到6553560”行;

将这些行添加到file /etc/security/limits.conf中:

  1. soft noproc 65535 
  2. hard noproc 65535 
  3. soft nofile 65535 
  4. hard nofile 65535 

如果它没有以用户ID零运行,它将按以下顺序发出两个命令:

  1. ulimit -HSn 4096 
  2. ulimit -HSn 10240 

恶意软件首先以较小的限制然后以更大的限制运行这两个命令,如果增加失败,则较小的限制就是备用选项。

恶意软件的持久性只发生在用户ID为0时:

  • 如果file /etc/rc.local存在,则恶意软件会在该文件中写入或附加以下行:
    1. MALWARE_PATH start 
  • 恶意软件在file/etc/crontab中写入以下行:
    1. */1 * * * * MALWARE_PATH 

在所有正常的系统服务启动之后,将执行/etc/rc.local脚本。添加到crontab中的这行代码会导致Linux每分钟都在执行这个恶意软件。

恶意软件配置其持久性后,它将解密以下五个字符串:

  • C&C地址:qf2020[.]top;
  • Xmr挖矿程序的参数列表:-o stratum+tcp://pool.supportxmr.com:3333 -u 4AfAd5hsdMWbuNyGbFJVZjcMLeKHvrXnT155DWh8qGkYRPbVGKBT9q1Z5gcFXqmwUuh2Kh6t2sTnHXPysYrGf2m9KqBwz9e -p X;
  • Xmr挖矿程序的参数列表:-o stratum+tcp://gulf.moneroocean.stream:10001 -u 4AfAd5hsdMWbuNyGbFJVZjcMLeKHvrXnT155DWh8qGkYRPbVGKBT9q1Z5gcFXqmwUuh2Kh6t2sTnHXPysYrGf2m9KqBwz9e -p X -a cn/r;
  • Xmr挖矿程序的位置:/ tmp / spreadtop;
  • Xmr挖矿程序的网址:122[.]112[.]179[.]189:50208/X64;

初始化之后,恶意软件通过启动以下五个线程来启动主要逻辑:

  • 挖掘线程:它首先下载挖矿程序并将其保存到/tmp/spread中。这使它能够确保挖掘程序正在运行,并在需要时停止或重新启动挖掘过程。
  • 进程阻止线程;

线程尝试查找和阻止以以下字符串之一开头的进程:

  • Linux-;
  • 25000;
  • Linux2.6;
  • Linux2.7;
  • LinuxTF;
  • 挖矿程序;
  • 获取网络使用线程;
  • 获取CPU使用线程;
  • 将挖掘,CPU使用情况和网络使用情况报告发送到C&C服务器;

对Rudeminer,Blacksquid和Lucifer的比较研究

报告消息示例

在线程设置好之后,恶意软件开始一个无限循环,并保持与C&C的恒定连接。

C&C命令模式:

对Rudeminer,Blacksquid和Lucifer的比较研究

Linux ARM / MIPS

ARM / MIPS版本是Linux的较简单版本,它们仅包含DDoS功能。

初始化与Linux版本中的初始化几乎相同,他们使用守护程序进行分离,并使用套接字绑定方法来确保只有一个正在运行的进程。

该恶意软件仅为SIGPIPE设置信号处理程序,如果它以root身份运行,则它将文件描述符限制增加到20480,并将其路径写入/etc/rc.local文件以实现持久性。

如果不是以超级用户身份运行,它将文件描述符限制增加到4096。然后,恶意软件解密C&C地址:tyz2020[.]top。初始化后,恶意软件通过启动以下一个线程来启动主要逻辑:看门狗通信线程;

首先检查以下设备是否存在:/dev/watchdog或/dev/misc/watchdog.

如果其中一个存在,则使用ioctl WDIOC_SETTIMEOUT将看门狗超时时间增加到15秒。然后线程开始一个无限循环,每10秒将ioctl WDIOC_KEEPALIVE发送给Watchdog。

看门狗的作用是确保系统稳定。

在系统问题的情况下,用户空间Watchdog停止写入Watchdog设备,而内核Watchdog重新启动设备。

通过使用此线程,恶意软件可确保监视设备始终将数据写入监视程序设备。这样可以防止设备重启。

如前所述,在建立线程之后,恶意软件会启动无限循环并保持与C&C的恒定连接。

C&C命令模式:

  • 模式4对目标发起DDOS攻击;
  • 模式5停止当前的DDOS攻击或重新启用以后的攻击;

总结

正如我们在本文中所介绍的那样,该活动正在不断发展以跨平台,并增加了获取利润和传播自身的新方法。即使攻击者使用已知的攻击来感染计算机和自我传播,也并非总是对所有系统进行更新。当组织的密码策略薄弱时,暴力破解可能会有效。

在撰写本文时,这些是攻击者在所有体系结构和平台上使用的功能:

对Rudeminer,Blacksquid和Lucifer的比较研究

我们相信该攻击活动将继续发展,包括修改Windows中当前的自扩展方法和功能,并将其添加到Linux,ARM和MIPS版本中。

本文翻译自:https://research.checkpoint.com/2020/rudeminer-blacksquid-and-lucifer-walk-into-a-bar/

 

责任编辑:赵宁宁 来源: 嘶吼网
相关推荐

2020-12-29 06:44:18

GoScala编程语言

2010-08-02 15:32:01

ICMP路由跟踪

2020-12-18 09:49:48

iOS ChromiWKWebViewJavaScript

2019-04-29 11:51:25

人工智能机器学习CIO

2010-05-31 17:45:50

MySQL行锁

2010-04-12 16:24:15

Oracle表查询

2010-02-22 15:13:01

Python模块

2015-04-13 10:54:42

java.netHashSet

2010-03-22 16:49:46

2013-06-28 11:12:01

定性研究

2020-09-25 10:14:54

漏洞

2020-02-20 16:45:39

RabbitMQKafka架构

2011-08-31 13:25:14

2016-12-28 15:19:22

大数据机器学习销售预测

2011-03-29 23:17:36

KindleAndroid硬件

2009-07-15 15:15:42

比较Swing和SWT

2009-08-14 13:45:03

Ruby和Python

2009-01-22 22:06:34

UCOSuClinux

2010-03-01 14:02:26

Python批处理语言

2010-03-10 18:29:57

点赞
收藏

51CTO技术栈公众号