一、挖矿木马简介
挖矿的英语为 Mining,早期主要与比特币相关。用户使用个人计算机下载软件,然后运行特定算法,与远方服务器通信后可得到相应比特币。挖矿就是利用比特币挖矿机赚取比特币。
挖矿木马是利用各种方法入侵计算机,利用被入侵计算机的算力挖掘加密数字货币以牟取利益的木马。其既可以是一段自动化扫描、攻击的脚本,也可以集成在单个可执行文件中。挖矿木马为了能够长期在服务器中驻留,会采用多种安全对抗技术,如修改任务计划、修改防火墙配置、修改系统动态链接库等,使用这些技术手段严重时可能造成服务器业务中断。
二、常见的挖矿木马
1.WannaMine
WannaMine 主要针对搭建 WebLogic 的服务器,也攻击 PHPMyadmin、Drupal等 Web 应用。WannaMine 将染毒机器用“无文件”攻击方法构建一个健壮的僵尸网络,并且支持内网自更新。WannaMine 通过 WMI 类属性存储 shellcode, 并使用“永恒之蓝”漏洞攻击武器及“Mimikatz+WMIExec”攻击组件,在同一局域网进行横向渗透,以隐藏其恶意行为。
2.Mykings(隐匿者)
Mykings 在 2017 年被多家安全厂商披露,至今仍然处于活跃状态,也是迄今为止发现的最复杂的僵尸网络之一。Mykings 主要利用“永恒之蓝”漏洞,针对MsSQL、Telnet、RDP、CCTV 等系统组件或设备进行密码暴力破解。Mykings 在暴力破解时还集成了丰富的弱密码字典和针对 MsSQL 的多种命令执行方法。暴力破解成功后,利用扫描攻击进行蠕虫式传播。Mykings 不仅局限于挖矿获利,还与其他黑产家族合作完成锁首页、DDoS 攻击等工作。
3.Bulehero
Bulehero 被披露于 2018 年 8 月,其专注于攻击 Windows 服务器,由于最早使用 bulehero.in 域名,因此被命名为 Bulehero。早期,Bulehero 并非使用 bulehero.in这个域名作为载荷下载 URL,而是直接使用 IP 地址 173.208.202.234。Bulehero
不仅使用弱密码暴力破解,并且利用多个服务器组件漏洞进行攻击,攻击主要分为 Windows 系统漏洞、Web 组件漏洞、各类弱密码暴力破解攻击三种类型。
2018 年 12 月,Bulehero 成为首个使用远程代码执行漏洞入侵服务器的病毒,而这次入侵也使 Bulehero 控制的僵尸机数量暴涨。
4.“匿影”挖矿木马
2019 年 3 月,出现了一种携带 NSA 全套武器库的新变种挖矿木马“匿影”,该挖矿木马大肆利用功能网盘和图床隐藏自己,在局域网中利用“永恒之蓝”和“双脉冲星”等漏洞进行横向传播。由于该挖矿木马具有极强的隐蔽性和匿名的特点,因此给安全厂商的分析检测增加了难度。
自该挖矿木马被发现以来,其进行不断更新,增加了挖矿币种、钱包 ID、矿池、安装流程、代理等基础设施,简化了攻击流程,启用了最新的挖矿账户,同时挖掘 PASC 币、门罗币等多种数字加密货币。
三、挖矿木马的传播方法
1.利用漏洞传播
为了追求高效率,攻击者一般会通过自动化脚本扫描互联网上的所有机器,寻找漏洞,然后部署挖矿进程。因此,大部分的挖矿都是由于受害者主机上存在常见漏洞,如 Windows 系统漏洞、服务器组件插件漏洞、中间件漏洞、Web 漏洞等,利用系统漏洞可快速获取相关服务器权限,植入挖矿木马。
2.通过弱密码暴力破解传播
挖矿木马会通过弱密码暴力破解进行传播,但这种方法攻击时间较长。
3.通过僵尸网络传播
利用僵尸网络也是挖矿木马重要的传播方法,如利用 Mykings、WannaMine、Glupteba 等控制大量主机。攻击者通过任务计划、数据库存储过程、WMI 等技术进行持久化攻击,很难被清除,还可随时从服务器下载最新版本的挖矿木马,控制主机挖矿。
4.采用无文件攻击方法传播
通过在 PowerShell 中嵌入 PE 文件加载的形式,达到执行“无文件”形式挖矿攻击。新的挖矿木马执行方法没有文件落地,会直接在 PowerShell.exe进程中运行,这种注入“白进程”执行的方法更加难以实施检测和清除恶意代码。
四、常见处置木马的方法
1.隔离被感染的服务器/主机
部分带有蠕虫功能的挖矿木马在取得当前服务器/主机的控制权后,会以当前服务器/主机为跳板,对同一局域网内的其他机器进行漏洞扫描和利用。所以在发现挖矿现象后,在不影响业务的前提下应及时隔离当前服务器/主机,如禁用非业务使用端口、服务,配置 ACL 白名单,非重要业务系统建议先下线隔离,再做排查。
2.确认挖矿进程
将被感染服务器/主机做完基本隔离后,就要确认哪些是挖矿木马正在运行的进程,以便执行后续的清除工作。挖矿程序的进程名称一般表现为两种形式:一种是程序命名为不规则的数字或字母;另一种是伪装为常见进程名,仅从名称上很难辨别。所以在查看进程时,无论是看似正常的进程名还是不规则的进程名,只要是 CUP 占用率较高的进程都要逐一排查。
3.挖矿木马清除
挖矿木马常见的清除过程如下。
(1)阻断矿池地址的连接。
在网络层阻断挖矿木马与矿池的通信。
(2)清除挖矿定时任务、启动项等。
大部分挖矿进程为了使程序驻留,会在当前服务器/主机中写入定时任务,若只清除挖矿木马,定时任务会直接执行挖矿脚本或再次从服务器下载挖矿进程,则将导致挖矿进程清除失败。所以在清除挖矿木马时,需要查看是否有可疑的定时任务,并及时删除。 还有的挖矿进程为确保系统重启后挖矿进程还能重新启动,会在系统中添加启动项。所以在清除时还应该关注启动项中的内容,如果有可疑的启动项,也应该进行排查,确认是挖矿进程后,进行清除。
(3)定位挖矿木马文件的位置并删除
在 Windows 系统下,使用【netstat -ano】系统命令可定位挖矿木马连接的 PID,再通过【tasklist】命令可定位挖矿木马的进程名称,最后通过任务管理器查看进程,找到挖矿木马文件的位置并清除。
在 Linux 系统下,使用【netstat -anpt】系统命令可查看挖矿木马进程、端口及对应的 PID,使用【ls -alh /proc/PID】命令可查看挖矿木马对应的可执行程序,最后使用【kill -9 PID】命令可结束进程,使用【rm -rf filename】命令可删除该文件。 在实际操作中,应根据脚本的执行流程确定挖矿木马的驻留方法,并按照顺序进行清除,避免清除不彻底。
4.挖矿木马防范
1)避免使用弱密码
服务器登录账户和开放端口上的服务(如 MySQL 服务)应使用强密码。规模庞大的僵尸网络拥有完备的弱密码暴力破解模块,避免使用弱密码可以有效防范僵尸网络发起的弱密码暴力破解。
2)及时打补丁
通常,在大部分漏洞细节公布之前,相应厂商就会推送相关补丁。因此,及时为系统和相关服务打补丁可有效避免攻击。
3)服务器定期维护
挖矿木马一般会持久化驻留在服务器中,若未能定期查看服务器状态,则其很难被发现。因此,应定期维护服务器,包括查看服务器操作系统 CPU 使用率是否异常、是否存在可疑进程、任务计划中是否存在可疑等。