Lucifer是针对Windows挖矿和DDOS的混合型恶意软件,研究人员在今年6月份发表了一份报告,详细介绍了其攻击活动,最近又有新的证据表明这个攻击是从2018年开始的。
它最初是一个以Windows系统为目标的具有自我传播能力的挖矿软件,现在已经发展成为一个多平台、多架构的恶意软件,目标是Linux和物联网设备。
从ThreatCloud收集的数据显示,美国、爱尔兰、荷兰、土耳其和印度的25多个组织最近受到打击。攻击来自多个领域,包括制造业、法律、保险以及银行业。
当前物联网设备的主要攻击媒介是通过利用称为CVE-2018-10561的漏洞,该漏洞针对未打补丁的Dasan GPON路由器设备。
该恶意软件具有多种功能:多种类型的DDOS攻击,能够下载和执行文件的完整命令和控制操作、远程命令执行、使用Xmrig挖掘软件进行门罗币挖掘以及通过各种利用技术在Windows系统中自我传播。
攻击活动介绍
攻击源自受到被攻击者破坏的服务器,图1显示感染链是多平台的,并且针对Windows,Linux和物联网设备。然后,受感染的Windows计算机继续将恶意软件传播到网络内部和远程目标。
更新的感染链
恶意软件中显示了一个有趣的字符串序列:
在最近的Windows,Linux,ARM和MIPS示例中找到的字符串
对这些字符串的进一步研究使我们进行了两个活动,一个被趋势科技发现,他们称之为BlackSquid,另一个被腾讯发现,称为Rudeminer / Spreadminer。
还可以通过追踪金融记录(在我们的案例中为所使用的XMR钱包)将这两个活动与Lucifer活动相关联。
通过使用的XMR钱包追踪到了三个攻击活动
当我们探索使用图3中第一个钱包的Blacksquid样本时,我们发现了两个几乎相同的样本(样本1和样本2)。
这两个样本的互斥模式都相同:
- BlacksquidXMRstratum+tcp://[Miner pool address]:[port]
第一个样本使用图3中的第一个钱包,第二个样本使用第2个钱包。
第二个钱包还用于其他各种Lucifer样本(样本3),从而使我们能够关联两个恶意软件。将Blacksquid攻击系列与Spreadminer关联起来比较研究确实比较复杂,因为腾讯(示例1)中提供的示例使用了没有XMR钱包的自定义XMR挖矿池。
但是,我们能够找到一个几乎相同的样本(样本2),其中使用的是第1个钱包。
Blacksquid活动中使用的XMR钱包提供了2018年底的样本,这表明攻击者开始行动的时间甚至更早。
根据这些发现,我们创建了以下时间表:
这个活动中变种出现的时间线
在该恶意软件的Linux变体中可以找到另一个有趣的字符串:
在Linux版本的恶意软件中使用的字符串
我们认为该字符串是对腾讯发布的名为“Rude”恶意软件的回应。
这些发现表明,此活动背后的攻击者已经活跃了一年半多,并且该恶意软件一直在发展和升级其代码库。
从公开的数据来看,我们估计Lucifer攻击给攻击者带来了18.643456520496 XMR,大约是1769美元。
由于旧的XMR钱包现已被封锁,因此无法知道Blacksquid和Spreadminer攻击家族赚了多少钱。 DDOS功能的增加表明攻击者正在寻求扩大恶意软件的赚钱方法。
Windows的自我传播功能是基于过时的和公开可用的漏洞利用以及暴力攻击。随着时间的推移,Windows自身功能只发生了微小的变化,这可能表明攻击者已经成功地使用了这些方法。
新活动的第一批样本于2020年2月被上传到VirusTotal网站,之后的几个月里又上传了一些样本,新的样本仍在检测中。
迄今为止,第一个也是唯一的ARM示例已于5月10日上传到VirusTotal。
VirusTotal中的ARM示例列表
目前尚未确定此样本是否是恶意的,ARM示例仅具有DDOS功能,并且与Linux示例具有不同的行为,这可能是由于物联网设备引起的限制。
C2服务器具有可公开访问的HFS服务器,可让我们目睹攻击的演变:
最新的二进制样本已上传到C2 HFS公共服务器
正如你所看到的,活动在不断发展并发布新版本。上传的“office.exe”,“sb360..exe”可执行文件是gh0st RAT的变体,这表明攻击者想要扩展受感染计算机中的恶意软件功能。
没有删除Linux,ARM,MIPS版本的调试符号,这使我们能够将所有平台的新版本的代码库关联到2009年以来的中文DDoS程序,该程序称为“Storm Attack Tool VIP 2009”,人们可以在各种开放源代码的中文网站上找到这个程序的下载版本。
Storm攻击工具面板的图像
所有最新版本的DDoS攻击都来自该软件,恶意软件的其余部分被严重修改为其他功能,例如完整的C&C操作,门罗币挖矿,Windows系统中的自我传播以及Linux和物联网设备的端口。
在本文的其余部分,我们将深入研究Linux,ARM和MIPS示例。
Linux x86 / x64
Linux版本与Windows版本的不同之处在于,它不具有自我扩展功能。此外,Linux样本未删除调试信息。
成功利用后,恶意软件使用daemon命令将自身与终端分离,并在后台作为守护程序运行。
恶意软件会检查是否能够设置用于绑定到端口,端口号取决于版本,最新版本使用端口20580。如果恶意软件无法设置套接字或绑定到套接字,则退出。绑定之后,没有调用listen函数来实际开始监听该端口。
套接字的目的不是通讯而是强制执行以下行为:一次只能运行一个进程的恶意软件,因为不能有多个套接字使用同一端口。
该恶意软件为以下信号设置了三个信号处理程序函数:
- SIGPIPE:对被攻击的管道执行写入操作;
- SIGTERM:请求终止程序;
- SIGINT:请求程序正常关闭;
恶意软件执行以下命令:
- /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)运行,则:
执行命令:
- ulimit -HSn 65536;
在文件/etc/sysctl.conf中添加“fs.file-max到6553560”行;
将这些行添加到file /etc/security/limits.conf中:
- soft noproc 65535
- hard noproc 65535
- soft nofile 65535
- hard nofile 65535
如果它没有以用户ID零运行,它将按以下顺序发出两个命令:
- ulimit -HSn 4096
- ulimit -HSn 10240
恶意软件首先以较小的限制然后以更大的限制运行这两个命令,如果增加失败,则较小的限制就是备用选项。
恶意软件的持久性只发生在用户ID为0时:
- 如果file /etc/rc.local存在,则恶意软件会在该文件中写入或附加以下行:
- MALWARE_PATH start
- */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服务器;
报告消息示例
在线程设置好之后,恶意软件开始一个无限循环,并保持与C&C的恒定连接。
C&C命令模式:
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攻击或重新启用以后的攻击;
总结
正如我们在本文中所介绍的那样,该活动正在不断发展以跨平台,并增加了获取利润和传播自身的新方法。即使攻击者使用已知的攻击来感染计算机和自我传播,也并非总是对所有系统进行更新。当组织的密码策略薄弱时,暴力破解可能会有效。
在撰写本文时,这些是攻击者在所有体系结构和平台上使用的功能:
我们相信该攻击活动将继续发展,包括修改Windows中当前的自扩展方法和功能,并将其添加到Linux,ARM和MIPS版本中。
本文翻译自:https://research.checkpoint.com/2020/rudeminer-blacksquid-and-lucifer-walk-into-a-bar/