借鸡生蛋!驱动人生挖矿木马再填Outlaw僵尸网络模块

概述

“驱动人生”挖矿木马,也被称为永恒之蓝木马下载器、蓝茶、黑球、DTLMiner、LemonDuck等,其自2018年12月的供应链攻击事件以来,一直保持着很高的活跃度,并不断优化更新免杀手段、攻击手法和传播方式,成为最活跃的挖矿家族之一。本次更新中Linux挖矿模块引用了大量Outlaw僵尸网络的代码,同时新增使用WebLogic未授权命令执行漏洞(CVE-2020-14882/14883)攻击模块(从2020年12月份已更新),其整体的攻击及传播能力得到明显的提升。值得一提的是,在分析过程中还发现病毒作者的开发环境疑似被Ramnit家族感染,部分模块中还包含Ramnit感染代码。

更新时间轴

驱动人生挖矿木马家族更新时间轴

注:2020-06更新版本也分析过,分析报告可查看https://azha0.github.io/2020/05/04/01_%E6%A0%B7%E6%9C%AC%E5%88%86%E6%9E%90%E6%8A%A5%E5%91%8A/15_%E6%B0%B8%E6%81%92%E4%B9%8B%E8%93%9D%E4%B8%8B%E8%BD%BD%E5%99%A8blcakball%E5%88%86%E6%9E%90%E6%8A%A5%E5%91%8A/

攻击传播方式演进

从近期的几次更新中不难看出,“驱动人生”挖矿木马一直在不断完善其针对Linux系统的挖矿模块,从去年6月份新增SSH和Redis未授权访问漏洞,到后来8月份又加入Hadoop Yarn未授权访问漏洞,到如今加入WebLogic未授权命令执行漏洞利用模块,并且引用成熟的Outlaw僵尸网络模块,说明长期以来背后的攻击者一直在关注最新的攻击手法并且不断优化恶意程序的功能模块,持续寻找挖掘财富密码的“矿机”。

样本详细分析

流程图

windows下执行流程:

Windows流程图

Linux下执行流程:

Linux流程图

新增功能模块分析

Windows更新部分

新增WebLogic漏洞利用模块

该木马通过扫描内外网主机,当扫描到某目标主机开放了7001端口(WebLogic默认端口)并且没有开放65529端口(感染标记)时,便通过执行函数LogicExec利用WebLogic漏洞来实现横向传播。

Logicexec

函数LogicExec先判断目标主机当前WebLogic版本是否为受影响版本,当为受影响版本时,便组合使用CVE-2020-14882(权限绕过)和CVE-2020-14883(远程代码执行)在未授权的情况下实现远程代码执行。

logicexec_cmd

攻击成功后,针对Windows目标主机下载执行logic/logico.jsp;针对Linux目标主机下载执行core.png,从而实现横向传播。

logic.jsp

修改永恒之蓝漏洞利用的Payload

修改Python打包程序20.dat中永恒之蓝漏洞利用的Payload,从之前的shellcode变为PE文件如下图。但经分析其实现的功能基本一致,功能如下:

1.下载执行PowerShell代码gim.jsp;

2.修改administrator账户登陆密码为n8d3j9SjfS7(上一版本为k8d3j9SjfS7);

3.修改防火墙策略,开放55529端口作为感染标记(上一版本为65529)。

compare

被迫新增Ramnit感染功能

在分析Python打包程序20.dat时,意外发现该文件已被Ramnit家族感染,经解包分析后,发现解包后的Python模块也同样被Ramnit家族感染过,并且传播古老的Ramnit感染型样本对“驱动人生”挖矿木马本身来说并没有什么实际的意义,因此可以推断大概率是病毒作者的开发环境被感染了。所以本次更新中也被迫加入了Ramnit感染功能,解包后的Python模块区段如图所示:

Ramnit

Linux更新部分

“驱动人生”挖矿木马的传播模块在利用各种方式入侵Linux服务器成功后,会执行命令下载执行http[:]//t.netcatkit.com/ln/core.png,该文件实际是shell脚本,添加定时任务实现持久化,下载执行a.asp脚本。

a.asp

a.asp同样是shell脚本,会从down.sqlnetcat.com下载dota3.tar.gz,并执行其中的initall脚本。

dota3_tar_gz

dota3.tar.gz与Outlaw僵尸网络母体名称相同,内部文件大部分命名相同,且代码相似度也很高。

compare2

“驱动人生”挖矿木马老版本的a.asp代码被拆分,放在了a目录的init0和c目录下的t文件中。

对比Outlaw僵尸网络的母体,“驱动人生”挖矿木马的矿机程序为a目录下的wanwakuang,替换掉了Outlaw僵尸网络的kswapd0。b目录进行解码运行Shellbot木马及创建SSH后门。c目录剔除了部分功能代码,并加入扫描传播模块。

有意思的是,分析“驱动人生”挖矿木马和Outlaw僵尸网络的历史C2和样本,并未有任何相似之处,而且“驱动人生”挖矿木马的清除其它挖矿程序脚本init0中,包含了Outlaw僵尸网络的挖矿进程。

kill

对此,我们可以猜测,“驱动人生”挖矿木马跟Outlaw僵尸网络背后不是同一个犯罪团伙,也不存在合作关系,只是“驱动人生”挖矿木马单方面使用Outlaw僵尸网络的模块,并玩了一手“过河拆桥”!

其他核心模块分析

“驱动人生”挖矿木马其他核心模块之前也已经做过多次分析,其模块根据不同功能拆分成了多个PowerShell模块,下面只针对部分核心模块进行介绍。

入侵母体模块

文件名 gim.jsp、mail.jsp、ms/mso.jsp、ipc/ipco.jsp、rdp/rdpo.jsp、smgh/smgho.jsp、 logic/logico.jsp
MD5 mail.jsp:a8bf439dfc1391d5124d4cccbd6c7664
功能说明 卸载杀软、持久化、设置感染标记。

上述文件都是通过不同方式入侵到目标主机的原始执行文件,文件内容完全一样,文件名表明其入侵成功的方式。如文件名mail.jsp就表明是通过钓鱼邮件入侵进来的,文件名带o是表示通过外网主机入侵成功的,而不带o代表是通过内网主机入侵成功的。

卸载杀软

去除混淆后,入侵母体文件先通过WMI来检测杀软,当发现杀软便将其卸载。

WMI

持久化

然后会创建4个计划任务和4个WMI事件订阅,来实现持久化。其中名为BlackBall的计划任务和WMI事件订阅均为感染标志,并没有实际操作;另外的3个随机命名的计划任务和WMI订阅事件,分别从如下的3个域名中下载a.jsp来执行。

域名 更新时间
t.netcatkit.com 2021-01-02
t.sqlnetcat.com 2021-02-27
down.sqlnetcat.com 2021-02-27

计划任务和WMI事件订阅下载执行a.jsp代码如下所示:

scheduled

设置感染标记

修改防火墙设置:

1.开放65529端口(作为感染标记);

2.设置DNS端口转发;

3.关闭445(SMB)、135端口(RPC)。

横向传播模块

文件名 if.bin
MD5 E47495DA1B30BDA0E42089CA6FC07B62
下载链接 http[:]//down.sqlnetcat.com/if.bin
功能说明 卸载杀软、持久化、设置感染标记。

If.bin去混淆后,得到一个长达1万多行的PowerShell脚本,其定义了多达244个函数,包含了所有主流横向传播的代码,来进行横向传播, 其横向传播手段有:

针对Windows目标主机的攻击方式:

  1. 除自带的字典外,还会下载使用Mimikatz窃取账户密码,来进行SMB、MSSQL、RDP、NTLM、SSH弱口令爆破。

  2. 永恒之蓝漏洞利用(MS17-010)。

  3. SMBGhost远程代码执行漏洞利用(CVE-2020-0796)。

  4. “震网三代”Lnk远程代码执行漏洞利用(CVE-2017-8464),感染U盘和网络驱动设备。

  5. WebLogic未授权命令执行漏洞(CVE-2020-14882/14883)。

针对Linux目标主机的攻击方式:

  1. SSH弱口令爆破。

  2. Hadoop Yarn未授权访问漏洞。

  3. Redis未授权访问漏洞。

  4. WebLogic未授权命令执行漏洞(CVE-2020-14882/14883)。

文件名 ode.bin
MD5 46B1DA47A20AFAA11207A493EBFBD090
下载链接 http[:]//down.sqlnetcat.com/ode.bin
功能说明 横向传播,感染其他目标主机

ode.bin下载执行20.dat,并将其以随机名保存到临时目录下。20.dat是Python打包的可执行程序,其主要功能为利用永恒之蓝漏洞攻击,SMB、MSSQL弱口令爆破等手法进行横向传播,当其攻击成功后下载执行gim.jsp。

钓鱼邮件模块

文件名 if_mail.bin
MD5 5BB6F5AF311C3A5576379874FC193EF3
下载链接 http[:]//down.sqlnetcat.com/ if_mail.bin
功能说明 群发钓鱼邮件,进一步横向传播

首先获取Outlook应用程序中邮箱联系人。

Get_Contact

钓鱼邮件的内容预设了9个具有诱导性的热门话题(如新冠肺炎COVID-19),从中随机选择进行发送,各主题名如下:

mail

钓鱼邮件的恶意附件有两个版本,也是从中随机选择发送。第一个版本为命名成readme.doc的带有CVE-2017-8570漏洞的rtf文档;另一个版本为命名为readme.zip的js脚本。它们的执行结果都是下载执行mail.jsp。

readme

加固建议

windows

1.检查是否安装MS17-010漏洞补丁,下载地址:

https://docs.microsoft.com/zh-cn/securityupdates/securitybulletins/2017/ms17-010

检查是否安装CVE-2019-0708 RDP服务远程代码执行漏洞补丁,下载地址:

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-0708

检查是否安装CVE-2017-8464 LNK 远程执行代码漏洞补丁,下载地址:

https://portal.msrc.microsoft.com/zh-cn/security-guidance/advisory/CVE-2017-8464

检查是否安装CVE-2017-8570 Office漏洞补丁,下载地址:

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8570

检查是否安装CVE-2020-0796 SMBGhost利用补丁,下载地址:

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0796

针对CVE-2020-14882/14883漏洞的补丁,请受影响用户持有Oracle正版软件的许可账号,使用该账号登陆https://support.oracle.com后,可以下载最新补丁。

2.电脑账户密码可能已经泄露,最好修改密码,并排查电脑账户,若被添加未知账户,需要及时删除。

3.安装有MSSQL数据库的计算机,需要检查MSSQL账户密码强度,使用高强度密码。

Linux

1.修复Hadoop Yarn未授权访问漏洞和Redis未授权访问漏洞。

针对CVE-2020-14882/14883漏洞的补丁,请受影响用户持有Oracle正版软件的许可账号,使用该账号登陆https://support.oracle.com后,可以下载最新补丁。

2.使用高强度的SSH密码,并定期进行更换。

IOC

Domain

down[.]sqlnetcat.com

t[.]netcatkit.com

t[.]sqlnetcat.com

d[.]ttr3p.com

URL

http[:]//t.netcatkit.com/ln.core

http[:]//t.netcatkit.com/ln/a.asp

http[:]//down.sqlnetcat.com/dota3.tar.gz

http[:]//t.sqlnetcat.com/a.jsp

http[:]//t.sqlnetcat.com/aa.jsp

http[:]//t.sqlnetcat.com/report.jsp

http[:]//t.sqlnetcat.com/ipc.jsp

http[:]//t.sqlnetcat.com/ipco.jsp

http[:]//t.sqlnetcat.com/ms.jsp

http[:]//t.sqlnetcat.com/mso.jsp

http[:]//t.sqlnetcat.com/rdp.jsp

http[:]//t.sqlnetcat.com/rdpo.jsp

http[:]//t.sqlnetcat.com/logic.jsp

http[:]//t.sqlnetcat.com/logico.jsp

http[:]//t.sqlnetcat.com/smgh.jsp

http[:]//t.sqlnetcat.com/smgho.jsp

http[:]//down.sqlnetcat.com/mm.bin

http[:]//down.sqlnetcat.com/report.json

http[:]//down.sqlnetcat.com/if.bin

http[:]//down.sqlnetcat.com/if_mail.bin

http[:]//down.sqlnetcat.com/ode.bin

http[:]//down.sqlnetcat.com/20.dat

http[:]//down.sqlnetcat.com/nvd.zip

http[:]//down.sqlnetcat.com/kr.bin

http[:]//down.sqlnetcat.com/knil.bin

http[:]//w.890.sh/page.html

http[:]//info.890.la/e.png

http[:]//info.678.com/e.png

http[:]//down.eatuo.com/gim.js

MD5

B1BB11AEF730C4B0D2C2C94FDBF2A823

A8BF439DFC1391D5124D4CCCBD6C7664

4D93C29622E285E068B613EF114517FD

46B1DA47A20AFAA11207A493EBFBD090

E47495DA1B30BDA0E42089CA6FC07B62

3C4C0E75810C0FDAE2B0162B42FE04A0

5BB6F5AF311C3A5576379874FC193EF3

E5B8744C220D703F9A0E43F3A202C785

4001BA98A424FDB63047A23AF97EC590

A921B532D5D239E4A2E71E5F853195CD

CFCFC563F33CB2E96F2FF51F6F603FA3

EF3A4697773F84850FE1A086DB8EDFE0