一、概述
Lucifer是一款混合型恶意软件,既可以进行挖矿,又能够进行DDOS攻击,而且还能够通过利用多个漏洞和MSSQL弱口令破解来进行自我传播。它会针对内部网感染的易受攻击目标释放并运行EternalBlue,EternalRomance和DoublePulsar后门。此外,该恶意软件利用的漏洞还包括:CVE-2014-6287,CVE-2018-1000861,CVE-2017-10271,ThinkPHP RCE漏洞(CVE-2018-20062),CVE-2018-7600,CVE-2017-9791,CVE-2019-9081,PHPStudy后门RCE,CVE-2017-0144,CVE-2017-0145和CVE-2017-8464。
二、详细分析
1、检测沙箱环境
恶意软件根据查询受害主机的计算机名称和用户名称,如果存在以下列表中的名称,则执行自循环,不再继续执行。还检查以下设备驱动程序、DLL和虚拟设备是否存在,如果检测到如下的任何一个,则会进入无限循环,阻止进一步执行。
2、解密资源释放文件
Lucifer版本1中包含三个资源部分,每个资源都包含一个用于特定目的的二进制文件。资源X86是带UPX壳的x86版XMRig 5.5.0,资源X64是带UPX壳的x64版XMRig 5.5.0。资源SMB包含EternalBlue、EternalRomance和DoublePulsar后门。在Lucifer的版本2中多了个LNK资源,LNK资源释放CVE147159.exe,利用CVE-2017-8464漏洞进行传播。

执行后,Lucifer首先使用解密算法解密出C2的IP地址,然后将该IP地址作为互斥量名称。解密算法为:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\QQMusic–%恶意软件路径%HKLM\Software\Microsoft\Windows\CurrentVersion\Run\QQMusic–%恶意软件路径%
还会检查以下注册表项值中是否存储了任何现有的挖矿信息:HKLM\Software\Microsoft\Windows\CurrentVersion\spreadCpuXmr–%stratum info%如果数据存在且合法,则优先使用存储在此注册表项值中的挖矿信息,否则,恶意软件将退回到嵌入在二进制文件中的默认数据。该恶意软件启用了调试特权,并启动了多个线程以并发方式执行其操作。下表总结了每个线程的功能。 | |
| 清除事件日志,删除日志文件,终止矿工进程,并每18000秒重复其清理例程。 |
| |
| 检查所有TCP连接的远程地址和远程端口。如果存在匹配,并且连接拥有进程不是恶意软件本身,并且进程的模块路径也不是C:\ProgramData\spreadXfghij.exe,则恶意软件将杀死该进程并删除该文件。 |
| 获取或初始化其矿工参数,必要时终止矿工和Taskmgr进程,删除矿工二进制文件,并根据主机的内存使用情况使用参数值执行矿工二进制文件。矿工的x86或x64位版本都保存为C:\\ProgramData\\spreadXfghij.exe |
| 通过爆破凭证和漏洞利用进行传播。释放Equation Group的利用程序,并利用SMB漏洞进行传播。 |
| 将恶意软件复制并保存为C:\\ProgramData\\spread.txt |
Lucifer会采用不同的传播策略,如利用永恒之蓝系列漏洞、CVE-2017-8464漏洞、ThinkPHP漏洞、IPC$、MSSQL弱口令爆破等。
3、利用永恒之蓝、永恒浪漫、DoublePulsar后门进行攻击传播


EternalBlue和DoublePulsar组合(用于非XP目标):
EternalBlue和DoublePulsar组合(用于XP目标):
EternalRomance和DoublePulsar组合(所有目标):
4、Lnk漏洞CVE-2017-8464攻击
Lucifer的Version2中含有LNK资源,释放出CVE147159.exe并执行。CVE147159.exe的功能主要是在C:\CVE目录下生成大量附带漏洞触发代码的Lnk文件,以及利用漏洞加载Payload文件(OuWZjtdbLqFVMSLF.dll、WmOXSshkpQfaLVED.dll)。这种攻击方式可导致任何访问共享目录的存在漏洞的电脑被感染,也可通过U盘、移动硬盘等存储设备进行感染。

Lnk漏洞攻击后加载的DLL(OuWZjtdbLqFVMSLF.dll、WmOXSshkpQfaLVED.dll)执行后,和永恒之蓝漏洞攻击后的Payload(X86.dll/X64.dll)功能一样,都是从服务器下载Spread.exe、进行下一步攻击。5、利用其它多种漏洞攻击
为了感染外部主机,Lucifer首先生成一个非私有IP地址,然后使用多个端口上的HTTP请求来探测此随机选择的受害者。当恶意软件从受害者处收到有效的HTTP响应后,它将根据下表中所示的条件尝试利用目标。条件 | 漏洞利用 |
在HTTP响应中找到HFS | CVE-2014-6287 |
在HTTP响应中找到Jetty | CVE-2018-1000861 |
在HTTP响应中找到Servlet | CVE-2017-10271 |
在HTTP响应中找不到关键字 | ThinkPHP远程执行代码(RCE)漏洞 CVE-2018-7600 CVE-2017-9791 CVE-2019-9081 PHPStudy后门远程代码执行(RCE) |



所有漏洞利用程序都包含有效载荷,通过certutil将恶意软件的副本下载到受害者主机上。
6、IPC$、MSSQL弱口令爆破
扫描指定IP范围内的机器1433端口,对开放1433端口的机器使用内置的用户名、密码字典尝试爆破连接。

7、DDOS攻击
Lucifer根据C2返回命令,可执行TCP 、UDP、HTTP DDOS。
8、挖矿
开始挖矿前检测任务管理器,若检测到任务管理器进程,则退出挖矿程序:
从资源X86和资源X64中释放出挖矿程序:C:\Program Data\spreadXfghij.exe。


9、上线报文
C2的端口为15888,上线报文开始的四字节固定为“04 02 02 00”,后面是加密的系统信息,例如主机IP地址,系统类型,系统架构,用户名,处理器数量和处理器频率,该恶意软件在通过网络发送加密数据之前,会对这条信息进行加密。解密算法为:逐字节异或58H,再加上58H。

解密后为:

10、C2命令
下表是从C2服务器接收到的控制代码及其相应的功能:C2命令 | 描述 |
4 | 进行TCP UDP / HTTP DoS攻击。 |
5 | 重新启用DoS攻击。 |
6 | 从其C2服务器下载并执行文件。该文件另存为%TEMP%\ <4个随机小写字符> .exe |
7 | 从其C2服务器执行收到的命令。 |
8 | 禁用矿工的状态报告功能。 |
9 | 启用矿工的状态报告功能。 |
10 | 设置注册表项值HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ spreadCpuXmr的数据,并终止矿工进程。 |
11 | 启用与is_miner_killed和start_fresh相关的两个标志 |
12 | 重置标志并终止矿工进程。 |
参考链接
https://unit42.paloaltonetworks.com/lucifer-new-cryptojacking-and-ddos-hybrid-malware/