一、什么是挖矿木马?

比特币是以区块链技术为基础的虚拟加密货币,比特币具有匿名性和难以追踪的特点,经过十余年的发展,已成为网络黑产最爱使用的交易媒介。大多数勒索病毒在加密受害者数据后,会勒索代价高昂的比特币。比特币在2021年曾达到1枚6.4万美元的天价,比特币的获得需要高性能计算机(又称矿机,一般配置顶级CPU和GPU)按特定算法计算,计算的过程被形象的称为“挖矿”。

矿机价格昂贵,为生产比特币,有人不惜重金购置大量矿机组成网络集群挖矿。挖矿又非常耗电,因此矿场往往会寻找偏僻地区的小水电、小火电而建,因为电费便宜,有人为节约成本偷电挖矿。

当数字加密币市值暴涨时,挖矿业务会水涨船高,高端CPU、GPU、高端显卡、大容量硬盘被炒上天价还卖断货。目前,我国政府宣布要实现碳达峰碳中和的目标,严重耗能的虚拟加密币相关生产、交易被认定为非法,我国境内所有(生产加密货币的)矿场必须关闭。

因挖矿需要大量财力投入,从一开始,就有人想到利用木马控制他人的计算机组建僵尸网络集群挖矿的办法,这就是所谓“挖矿木马”。

不法分子通过各种非法手段将矿机程序植入受害者的计算机中,利用受害者计算机的运算能力进行挖矿活动,从而获取非法收益。这类非法侵入用户计算机的矿机程序被称作挖矿木马病毒。

二、挖矿木马的主要入侵方式

挖矿木马常见的攻击方式及攻击后果可以参考下图:

1、漏洞攻击

利用系统漏洞快速获取相关服务器权限,植入挖矿木马是目前最为普遍的传播方式之一。常见的漏洞包括Windows系统漏洞、服务器组件插件漏洞、中间件漏洞、Web漏洞等。例如传播较广的WannaMine挖矿家族,利用了永恒之蓝漏洞在内网蠕虫式传播,给不少公司和机构带来巨大损失。

2、弱口令爆破

弱口令指的是仅包含简单口令、有规律的键盘组合或历次泄漏过的密码,攻击者通常会针对redis、ssh、3389、mssql、IPC$等服务进行爆破弱口令攻击。爆破成功后,尝试获取系统权限,植入挖矿木马并设置持久化。

3、伪装正常软件

攻击者将挖矿木马伪装为游戏软件、娱乐社交软件、安全软件、游戏外挂等进行传播,欺骗用户下载并执行。由于多数游戏对显卡、CPU等硬件性能要求较高,故挖矿木马通常伪装成游戏辅助外挂,通过社交群、网盘等渠道传播,感染大量机器。

三、挖矿木马的安全危害

挖矿木马攻击,就是发生率较高,极可能造成业务系统中断的威胁事件,挖矿木马最明显的影响是大量消耗系统资源,使系统其他软件或服务运行缓慢,性能变差。主要安全危害包括业务故障、资源损耗及其他的安全威胁。

1、业务故障

挖矿木马会占用CPU进行超频运算,从而占用主机大量的CPU资源,导致设备性能不足,业务访问缓慢,设备过载宕机重启,异常网络链接等问题,严重影响服务器上的其他应用的正常运行,最终会影响业务系统工作运行。

2、资源损耗

挖矿木马的挖矿活动会使设备各器件高速运行,产生大量热能,增加电能消耗,加速设备器件老化等问题,造成资源损耗浪费。

3、安全威胁

挖矿木马作为一款应用程序,在服务器中运行,其拥有服务器权限,对服务器主机产生安全威胁。部分挖矿木马还具备蠕虫化的特点,在主机被成功入侵之后,挖矿木马还会向内网渗透,并在被入侵的服务器上持久化驻留以获取最大收益。

四、挖矿木马的检测手段

1、挖矿主机指纹识别

通过主机探测平台内置指纹知识库,如:Body特征、Header特征,对挖矿木马指纹进行识别,进而发现感染挖矿木马主机资产。

2、挖矿主机端口识别

通过研究分析目前主流的挖矿木马类型存在的通信端口,感染主机的标记端口等,形成挖矿木马常用端口知识库,并对资产开放端口进行聚合分析,探测这些端口的指纹信息进行识别和确认。

3、挖矿主机协议检测

通过挖矿木马的通信协议特征,对比分析网络资产开放的服务协议,定位存在挖矿木马感染风险的资产主机。

4、IOC威胁情报关联检测

通过大数据威胁情报,实时更新最新的挖矿木马情报。包括挖矿木马家族使用的C&C域名、恶意文件hash、矿池域名和IP、挖矿木马使用的加密货币钱包地址等进行挖矿木马流量检测告警。

5、挖矿木马行为特征检测

通过网络流量检测分析引擎,对其挖矿木马通信的端口、协议、内容、行为特征、恶意文件检测等挖矿木马流量特征进行检测分析,定位出存在恶意挖矿行为的终端及主机。

6、DNS流量检测挖矿域名

通过DNS威胁流量检测,基于域名分析算法结合威胁情报系统对C&C域名、挖矿网站域名、DNS解析IP等进行聚类分析,进而发现内网存在的恶意挖矿行为。

五、挖矿木马的清理

参考网上给出的腾讯安全专家撰写的《挖矿木马自助清理手册》的挖矿木马清理步骤和方法:

1、及时隔离主机

部分带有蠕虫功能的挖矿木马在取得主机的控制权后,会继续对公网的其他主机,或者以当前主机作为跳板机对同一局域网内的其他主机进行横向渗透,所以在发现主机被植入挖矿木马后,在不影响业务正常运行的前提下,应该及时隔离受感染的主机,然后进行下一步分析和清除工作。

2、阻断异常网络通信

挖矿木马不仅会连接矿池,还有可能会连接黑客的C2服务器,接收并执行C2指令、投递其他恶意木马,所以需要及时进行网络阻断。
(1)检查主机防火墙当前生效的iptables规则中是否存在业务范围之外的可疑地址和端口,它们可能是挖矿木马的矿池或C2地址

iptables -L -n

(2)从iptables规则中清除可疑地址和端口

vi /etc/sysconfig/iptables

(3)阻断挖矿木马的网络通信

iptables -A INPUT -s 可疑地址 -j DROPiptables -A OUTPUT -d 可疑地址 -j DROP

3、清除计划任务

大部分挖矿木马会通过在受感染主机中写入计划任务实现持久化,如果仅仅只是清除挖矿进程,无法将其根除,到了预设的时间点,系统会通过计划任务从黑客的C2服务器重新下载并执行挖矿木马。
可以通过执行如下命令查看是否存在可疑定时任务,若有,则先保存相关记录用于后续分析,再进行删除:
查看系统当前用户的计划任务:

crontab -l

查看系统特定用户的计划任务:

crontab -u username -l

查看其他计划任务文件:

cat /etc/crontabcat /var/spool/croncat /etc/anacrontabcat /etc/cron.d/cat /etc/cron.daily/cat /etc/cron.hourly/cat /etc/cron.weekly/cat /etc/cron.monthly/cat /var/spool/cron/

4、清除启动项

除了计划任务,挖矿木马通过添加启动项同样能实现持久化。可以使用如下命令查看开机启动项中是否有异常的启动服务。
CentOS7以下版本:

chkconfig –list

CentOS7及以上版本:

systemctl list-unit-files

如果发现有恶意启动项,可以通过如下命令进行关闭:
CentOS7以下版本:

chkconfig 服务名 off

CentOS7及以上版本:

systemctl disable 服务名

另外,还需要仔细排查以下目录及文件,及时删除可疑的启动项:

/usr/lib/systemd/system/usr/lib/systemd/system/multi-user.target.wants/etc/rc.local/etc/inittab/etc/rc0.d//etc/rc1.d//etc/rc2.d//etc/rc3.d//etc/rc4.d//etc/rc5.d//etc/rc6.d//etc/rc.d/

排查的时候,可以按照文件修改时间来排序,重点排查近期被创建服务项。

5、清除预加载so

通过配置/etc/ld.so.preload,可以自定义程序运行前优先加载的动态链接库,部分木马通过修改该文件,添加恶意so文件,从而实现挖矿进程的隐藏等恶意功能。
检查/etc/ld.so.preload(该文件默认为空),清除异常的动态链接库。

6、清除SSH公钥

挖矿木马通常还会在~/.ssh/authoruzed_keys文件中写入黑客的SSH公钥,这样子就算用户将挖矿木马清除得一干二净,黑客还是可以免密登陆该主机,这也是常见的保持服务器控制权的手段。
排查~/.ssh/authorized_keys文件,如果发现可疑的SSH公钥,直接删除。

7、清除挖矿木马

(1)清除挖矿进程
挖矿木马最大的特点就是会在用户不知情的情况下,利用主机的算力进行挖矿,从而消耗主机大量的CPU资源,所以,通过执行如下命令排查系统中占用大量CPU资源的进程。

top -cps -ef

确认相关进程为挖矿进程后,按照如下步骤将其清除:
获取并记录挖矿进程的文件路径:

ls -l /proc/$PID/exe

杀死挖矿进程:

kill -9 $PID

删除挖矿进程对应的文件
(2)清除其它相关恶意进程
恶意进程与外部的C2服务器进行通信时,往往会开启端口进行监听。执行如下命令,查看服务器是否有未被授权的端口被监听。

netstat -antp

若有未授权进程,按照如下步骤将其清除:
获取并记录未授权进程的文件路径:

ls -l /proc/$PID/exe

杀死未授权进程:

kill -9 $PID

删除未授权进程对应的文件
还可以通过如下命令排查近期新增的文件,清除相关木马

find /etc -ctime -2 (这里指定目录为/etc,获取近2天内的新增文件)lsof

8、风险排查、安全加固

对系统进行风险排查和安全加固,避免挖矿木马卷土重来。