<aside> 💡 Notion Tip: 挖矿病毒.

</aside>

常见挖矿病毒

**WannaMine**
主要针对搭建 WebLogic 的服务器,也攻击 PHPMyadmin、Drupal等 Web 应用。WannaMine 通过 WMI 类属性存储 shellcode, 并使用“永恒之蓝”漏洞攻击武器及“Mimikatz+WMIExec”攻击组件,在同一局域网进行横向渗透,以隐藏其恶意行为。2018 年 6 月,WannaMine 增加了 DDoS 模块,改变了以往的代码风格和攻击手法。2019 年 4 月,WannaMine 舍弃了原有的隐藏策略,启用新的 C2 地址存放恶意代码,采用 PowerShell 内存注入执行挖矿程序和释放 PE 木马挖矿的方法进行挖矿,增大了挖矿程序执行成功的概率

**Mykings(隐匿者)**
主要利用“永恒之蓝”漏洞,针对MsSQL、Telnet、RDP、CCTV 等系统组件或设备进行密码暴力破解。Mykings 在暴力破解时还集成了丰富的弱密码字典和针对 MsSQL 的多种命令执行方法。暴力破解成功后,利用扫描攻击进行蠕虫式传播。Mykings 不仅局限于挖矿获利,还与其他黑产家族合作完成锁首页、DDoS 攻击等工作。

**Bulehero**
不仅使用弱密码暴力破解,并且利用多个服务器组件漏洞进行攻击,攻击主要分为 Windows 系统漏洞、Web 组件漏洞、各类弱密码暴力破解攻击三种类型。

**8220Miner**
固定使用 8220 端口,利用多个漏洞进行攻击和部署挖矿程序,也是最早使用 Hadoop Yarn 未授权访问漏洞攻击的挖矿木马,除此之外,其还使用了多种其他的 Web 服务漏洞,使用 rootkit技术进行自我隐藏。

**匿影**
携带 NSA 全套武器库,该挖矿木马大肆利用功能网盘和图床隐藏自己,在局域网中利用“永恒之蓝”和
“双脉冲星”等漏洞进行横向传播。其进行不断更新,增加了挖矿币种、钱包 ID、矿池、安装流程、代理等基础设施,简化了攻击流程,启用了最新的挖矿账户,同时挖掘 PASC 币、门罗币等多种数字加密货币。

**DDG**
一个 Linux 系统下用 go 语言实现的挖矿木马。其利用 Orientdb 漏洞、Redis 未授权访问漏洞、SSH 弱密码进行入侵。入侵主机后会下载 i.sh 的恶意脚本和 DDG 恶意程序,然后启动 disable.sh 脚本清理其他挖矿程序,在与攻击者控制的中控服务器通信后启动挖矿程序,挖掘门罗币等获利。

**h2Miner**
Linux 系统下的挖矿木马,其以恶意 shell 脚本 h2.sh 进行命名。主要利用 Redis 未授权访问漏洞或 SSH 弱密码作为暴力破解入口,同时利用多种 Web 服务漏洞进行攻击,使用主从同步的方法从恶意服务器上同步恶意module,之后在目标机器上加载此恶意 module,并执行恶意指令。

**MinerGuard**
是由 go 语言实现的挖矿木马,可跨 Windows 和 Linux 两个平台进行交叉感染。其利用 Redis未授权访问漏洞、SSH 弱密码、多种 Web 服务漏洞进行入侵,成功入侵主机后会运行门罗币挖矿程序,并且通过多个网络服务器漏洞及暴力破解服务器的方法传播。攻击者可以随时通过远程服务器为 MinerGuard 发送新的病毒模块,且通过以太坊钱包更新病毒服务器地址。 

**Kworkerds**
一个跨 Windows 和 Linux 平台的挖矿木马,它最大的特点是通过劫持动态链接库植入 rootkit 后门。Kworkerds 主要利用 Redis未授权访问漏洞、SSH 弱密码、WebLogic 远程代码执行等进行入侵,入侵后下载mr.sh/2mr.sh 恶意脚本运行,植入挖矿程序。

**Watchdogs**
Linux 系统下的挖矿木马。Watchdogs 利用SSH 弱密码、WebLogic 远程代码执行、Jenkins 漏洞、ActiveMQ 漏洞等进行入侵,还利用新公开的 Confluence RCE 漏洞大肆传播。其包含自定义版本的 UPX 加壳程序,会尝试获取 root 权限,进行隐藏。

传播方法

1.利用漏洞传播
为了追求高效率,攻击者一般会通过自动化脚本扫描互联网上的所有机器,
寻找漏洞,然后部署挖矿进程。因此,大部分的挖矿都是由于受害者主机上存在
常见漏洞,如 Windows 系统漏洞、服务器组件插件漏洞、中间件漏洞、Web 漏洞
等,利用系统漏洞可快速获取相关服务器权限,植入挖矿木马。

2.通过弱密码暴力破解传播
挖矿木马会通过弱密码暴力破解进行传播,但这种方法攻击时间较长。

3.通过僵尸网络传播
利用僵尸网络也是挖矿木马重要的传播方法,如利用 Mykings、WannaMine、
Glupteba 等控制大量主机。攻击者通过任务计划、数据库存储过程、WMI 等技术
进行持久化攻击,很难被清除,还可随时从服务器下载最新版本的挖矿木马,控
制主机挖矿。

4.采用无文件攻击方法传播
通过在 PowerShell 中嵌入 PE 文件加载的形式,达到执行“无文件”形
式挖矿攻击。新的挖矿木马执行方法没有文件落地,会直接在 PowerShell.exe
进程中运行,这种注入“白进程”执行的方法更加难以实施检测和清除恶意
代码。

5.利用网页挂马传播
在网页内嵌入挖矿 JavaScript 脚本,用户一旦进入此类网页,脚本就会自动
执行,自动下载挖矿木马。

6.利用软件供应链攻击传播
软件供应链攻击是指利用软件供应商与最终用户之间的信任关系,在合法软件
正常传播和升级过程中,利用软件供应商的各种疏忽或漏洞,对合法软件进行劫持
或篡改,从而绕过传统安全产品检查,达到非法目的的攻击。例如,2018 年 12 月
出现的 DTLMiner 是利用现有软件升级功能进行木马分发,属于供应链攻击传播。
攻击者在后台的配置文件中插入木马下载链接,导致在软件升级时下载木马文件。

7.利用社交软件、邮件传播
攻击者将木马程序伪装成正规软件、热门文件等,通过社交软件或邮件发送
给受害者,受害者一旦打开相关软件或文件就会激活木马。

8.内部人员私自安装和运行挖矿程序
机构、企业内部人员带来的安全风险往往不可忽视,需要防范内部人员私自
利用内部网络和机器进行挖矿获取利益。

常规处置方法

隔离被感染的服务器/主机

确认挖矿进程

挖矿木马清除

挖矿木马防范

Win应急

**检查用户信息:**
攻击者为了能够在系统中持久化驻留,可能会创建新的用户。
使用【net users】命令,可查看系统用户情况。或者打开【计算机管理】窗口,
在【本地用户和组】中可查找可疑用户及隐藏用户(用户名以$结尾的为隐藏用户)。
有时攻击者也会克隆正常的用户名来隐蔽自己,可以通过注册表方法查
找克隆用户。另外,还可以通过专门的工具查找克隆用户,如使用
LP_Check 工具进行排查。

**检查网络连接、进程、服务、任务计划:**
(1)网络连接排查。
大多数挖矿木马一般会通过“永恒之蓝”漏洞在内网传播,如驱动人生挖矿
蠕虫病毒,Nrs 挖矿木马等。所以当看到一个进程对一个网段主机发送大量的 445
请求时,基本可以判断其为恶意进程,然后再通过恶意进程 PID 确定挖矿木马位
置。使用【netstat -ano | find "445"】命令,可查看网络连接,发
现本地 IP 地址及大量访问其他主机的 445 端口。
查看网络连接也可以使用 TCPView 工具。TCPView 工具可用于检测当前系
统中的进程及其对应的连接状态。进程标记为绿色时表示该连
接为新发起的,标记为红色时表示该连接为结束状态。
(2)进程排查。
若存在恶意网络连接,则可根据进程 PID 定位具体的位置;若没有发现恶意
网络连接,则需要对主机的进程进行排查。通过任务管理器查看主机当前进程,并发现了可疑进程。
当恶意进程排查相对困难时,可以使用 PCHunter 进行协助。但要注意,针对
重要业务在线服务器及比较旧的系统,尽量不要使用 PCHunter,因为其易触发蓝
屏,导致服务器重启或业务中断等。
(3)任务计划排查、服务排查。
大部分挖矿木马会持久化驻留,主要通过建立任务计划的方法定期在后台执
行。在 Windows 系统中打开【任务计划程序】窗口,可查看异常的任务计划。
另一种在 Windows 服务器上持久化驻留的方法是:创建服务,启动挖矿木马
程序。

**日志排查:**
查看是否存在大量审核失败的日志(暴力破解)等。
以下为进行挖矿木马应急响应时常用的有关检测事件 ID,应重点关注。
4728:表示把用户添加进安全全局组,如 Administrators 组。
4797:表示试图查询账户是否存在空白密码。
4624:表示在大部分登录事件成功时会产生的日志。
4625:表示在大部分登录事件失败时会产生的日志(解锁屏幕并不会产生这个日志)。
4672:表示在特权用户登录成功时会产生的日志,如登录 Administrator,
一般会看到 4624 和 4672 日志一起出现。
4648:表示一些其他的登录情况。
如果系统日志太多、太复杂,可以导出,然后使用 LogParser 进行解析和筛
选检查,也可使用其他日志分析工具完成。

Linux应急

**1)检查用户信息**
查看系统所有用户信息可使用命令【cat /etc/passwd】,检查中需要与管理员
确认是否有可疑用户。可使用如下命令判断可疑用户:
(1)使用【lastlog】命令,可查看系统中所有用户最后的登录信息;
(2)使用【lastb】命令,可查看用户错误登录列表;
(3)使用【last】命令,可查看用户最近登录信息(数据源为/var/log/wtmp、
var/log/btmp、/var/log/utmp),wtmp 存储登录成功的信息、btmp 存储登录失败的
信息、utmp 存储当前正在登录的信息;
(4)使用【who】命令,可查看当前用户登录系统的情况;
(5)使用【awk -F: 'length($2)==0 {print $1}' /etc/shadow】命令,可查看是否
存在空口令账户。

**2)检查进程**
(1)查看系统进程可以使用命令【ps aux】。一般,挖矿木马在 Linux 系统下
的特征十分明显,运行命令行会带一个矿池网站的参数,并且可以看到该进程占
用大量 CPU 资源。根据挖矿占用大量 CPU 资源和与矿池建立连接的特征基本可
以确定该进程为挖矿进程。
在查找日志之前,可以在网上搜索挖矿程序名和矿池名,有很大概率可以发
现之前“中招”的用户案例或安全厂商提供的类似分析文档,以便快速排查入侵
原因。
(2)使用【netstat -antp】命令,可查看进程、端口及对应的 PID,然后根据
PID,利用【ls -alh /proc/PID】命令,可查看其对应的可执行程序。
使用【ls -alh /proc/[PID]】命令,可查看对应的可执行程序。
(3)还可以使用【top】命令,根据 CPU 占用率查看可疑进程。
发现可疑进程后,需要更详细地进行查看,可以使用【lsof -p PID】命令,查
看 PID 对应的可执行程序,使用【lsof -i:port】命令,查看指定端口对应的程序。
使用【ll /proc/[PID]】命令,可查看进程详细信息。

在发现恶意挖矿流量,但没有发现异常进程的情况下,挖矿进程有可能被隐藏或当前使用的命令被替换。

一般特别需要关注【top】、【ps】和【netstat】一类的命令,如果命令被修改,
那么再查看进程或网络连接可能就不准确了。如果遇到类似的情况,可以使用
BusyBox 工具进行查看。由于 BusyBox 采用静态编译,不依赖于系统的动态链接
库,因此不受 ld.so.preload 劫持影响,能够正常操作文件。
如果是恶意进程,可以使用【kill -9 PID】命令来结束进程,然后使用【rm -f
filename】命令来删除病毒。如果 root 用户无法删除相关文件,那么很可能是因
为文件被添加了 i 属性。使用【lsattr filename】命令,可查看文件属性,然后使用
【chattr -i filename】命令,可移除 i 属性,进而删除文件。
另外,挖矿木马通常利用定时任务来实现持久化驻留,简单查杀进程和程序
不一定能完全解决问题。因此可使用【crontab -l】命令,查看任务计划。
以上指定的所有命令很可能会被攻击者恶意替换,所以可使用以下方法判断:
第一,可在命令目录查看相关系统命令的修改时间,如使用【ls -alt /bin】命令查
看;第二,可查看相关文件的大小,若明显偏大,则很可能被替换;第三,可使用第三方查杀工具,
如 chkrootkit、rkhunter 等。

**日志排查:**
1)查看任务计划日志
可使用以下命令查看任务计划日志:
【crontab -l】命令,查看当前的任务计划有哪些,是否有后门木马程序启动相
关信息;
【ls /etc/cron* 】命令,查看 etc 目录任务计划相关文件;
【cat /var/log/cron】命令,查看任务计划日志;
【ls /var/spool/mail】命令,查看相关日志记录文件;
【cat /var/spool/mail/root】命令,发现针对 80 端口的攻击行为(当 Web 访问
异常时,及时向当前系统配置的邮箱地址发送报警邮件的信息)。

2)查看自启动日志
启动项也是排查的必要项目。可使用以下命令查看自启动日志:
【cat /var/log/messages】命令,查看整体系统信息,其中也记录了某个用户切
换到 root 权限的日志;
【cat /var/log/secure】命令,查看验证和授权方面的信息,如 sshd 会将所有信
息(其中包括失败登录)记录在这里;
【cat /var/log/lastlog】命令,查看所有用户最近的信息,二进制文件,需要用
lastlog 查看内容;
【cat /var/log/btmp】命令,查看所有失败登录信息,使用 last 命令可查看 btmp
文件;
【cat /var/log/maillog】命令,查看系统运行电子邮件服务器的日志信息;
【cat ~/.bash_history】命令,查看之前使用过的 shell 命令。

清除及加固

实施以上排查分析流程,在确认了挖矿木马程序或文件后,需及时进行清除
加固,防止再次感染。

(1)封堵矿池地址。
挖矿程序有外连行为,应用安全设备阻断矿池地址,防止用户对外通信。

(2)清理任务计划、禁用可疑用户。
任务计划的作用是定时启动挖矿程序或更新代码,所以如果确认了挖矿任务
计划,应及时清理。
由挖矿木马程序创建的用户,可能作为攻击跳板或用作其他攻击操作,当确
认为异常用户后,需及时禁用或删除。

(3)结束异常进程。
大多数挖矿木马的表象特征为占用 CPU 资源过高,所以当确认为挖矿木马
后,应及时结束进程。

(4)清除挖矿木马。
结束进程并不代表挖矿木马就不会再运行,需要找到对应进程文件及其相关
联的脚本文件一并删除。

(5)全盘杀毒、加固。
实施以上操作后,仍需继续观察是否还有反复迹象,是否还有进程或任务计
划没有清理干净。
使用杀毒软件全盘杀毒,并对系统、应用做安全加固。
删除挖矿木马利用的漏洞,防止系统再次“中招”。