一、简介:
挖矿木马是利用各种方式入侵计算机,利用被入侵计算机的算力挖掘加密数字货币牟利的木马,其即可以是一段自动化扫描、攻击的脚本,也可以集成在单个可执行文件中。挖矿木马为了能够长期在服务器中驻留,会采用多种安全对抗技术,如修改计划任务、防火墙配置、系统动态链接库等,这些技术手段严重时可能造成服务器业务中断。
二、常见木马:
WannaMine、Mykings(隐匿者)、Bulehero、8220Miner、"匿影"挖矿木马、DDG、h2MINER、MinerGuard、Kworkerds、Watchdogs等。
三、常见的传播方式:
1.利用漏洞传播、2.弱口令爆破传播、3.僵尸网络传播、4.无文件攻击方式传播、5.利用网站挂马方式传播、6.利用软件供应链攻击传播、7.利用社交软件、邮件传播、8.内部人员私自安装和运行挖矿程序
四、常见的处置方式:
1.隔离被感染的主机/服务器、2.确认挖矿进程、3.清除挖矿木马
五、挖矿木马的防范:
挖矿木马僵尸网络的防范
挖矿木马僵尸网络主要针对服务器进行攻击,黑客通过入侵服务器植入挖矿机程序获利。要将挖矿木马僵尸网络扼杀在摇篮里,就要有效防范黑客的入侵行为。以下是防范挖矿木马僵尸网络的关键:
- 避免使用弱口令
- 及时打补丁
- 服务器定期维护
网页/客户端挖矿木马的防范
- 浏览网页或启动客户端时注意CPU/GPU的使用率。
- 不访问被标记为高风险的网站。
- 不下载来源不明的客户端和外挂等相关辅助软件。
六、技术操作指南:
1、如何判断遭遇挖矿木马
判断是否遭遇挖矿木马,通常采用以下3种方法:。
1)被植入挖矿木马的计算机会出现CPU使用率飙升、系统卡顿、部分服务无法正常运行。
2)通过服务器性能监测设备,查看服务器性能突起来判断异常。
3)挖矿木马会与矿池地址建立连接,可通过查看安全监测类设备告警判断。
2、判断挖矿木马挖矿时间
1)查看木马文件创建时间:
通过挖矿木马文件创建的时间,可以判断其初始运行时间。但单从文件属性来查看有时也不准确,挖矿程序常会利用计划任务方式定时运行,每次运行将会更新文件运行时间。
2)查看计划任务创建时间:
挖矿木马通常会创建计划任务,定期运行,所以可以通过查看计划任务的创建时间。但计划任务也可能存在更新的情况,如果二次更新会刷新更新时间。另外还有的木马有修改文件创建时间和计划任务创建时间功能来达到伪装的目的。
3)查看矿池地址:
挖矿木马会与矿池地址建立连接,所以通过监测设备查看第一次连接矿池地址时间也可以做为较有效的判断依据。
通过以上三步,综合来判定挖矿木马开始运作的时间
3、判断挖矿木马传播范围
挖矿木马会与矿池地址建立连接,可以利用安全设备监测查看挖矿范围。
4、了解系统架构
了解网络部署环境,才能够进一步判断传播范围。如果内网没有划分安全域,这样病毒也可能会在内网中大面积传播;如果划分了安全域,则可有效减少感染面积;如果是内网环境,则有可能导致行业内其它地区也被感染。
需要了解的内容大概包括:网络结构、主机数据、系统类型(windows/linux)、相关安全设备(如流量设备、日志监测等)
七、系统排查:
1、Windows排查:
1)检查用户信息:
①【net user】或者打开【本地用户和组】窗口,查找可疑用户名、用户组及隐藏用户(用户名以$结尾的为隐藏用户)。
2)检查【网络连接、进程、服务、计划任务】:
① 网络连接排查:【netstat –ano : find “445”】
② 进程排查:Ctrl+alt+delete
③ 计划任务、服务排查:【任务计划程序】【windows服务】
2、Linux排查:
1)用户信息排查:
查看系统所有用户信息可以使用命令【cat /etc/passwd】,检查中需要与管理员确认是否有可疑用户。可以使用如下命令作为参考来判断是否为可疑用户:
① 使用【lastlog】命令,查看系统中所有用户最近一次登录信息;
② 使用【lastb】命令,查看显示用户错误的登录列表;
③ 使用【last】命令,查看显示用户最近登录信息(数据源为/var/log/wtmp,var/log/btmp)(utmp文件中保存的是当前正在本系统中的用户的信息,wtmp文件中保存的是登录过本系统的用户的信息。);
④ 使用【who】命令,查看当前用户登录系统的情况;
⑤ 使用【awk -F: 'length($2)==0 {print $1}' /etc/shadow】命令,查看是否存在空口令账号。
2)进程排查:
① 查看系统进程可以使用命令【ps aux】。
② 使用【netstat –antp】命令查看进程、端口及对应的PID,然后根据PID,利用【ls –alh /proc/PID】命令查看其对应的可执行程序。
③ 也可以通过【top】命令根据cpu占用率查看可疑进程,发现高CPU进程。
发现可疑进程后,需要进行更详细的查看,可以利用【lsof –p PID】查看PID对应的可执行程序,利用【lsof -i:port】命令查看指定端口对应的程序。
使用命令【ll /proc/1260】,查看进程详细信息。
最后:
而常见的隐藏方式为替换系统命令,这种情况下,可以执行【rpm -Va】命令来检测,检测出现变动过的参数如下:
S 表示文件长度发生了变化
M 表示文件的访问权限或文件类型发生了变化
5 表示MD5校验和发生了变化
D 表示设备节点的属性发生了变化
L 表示文件的符号链接发生了变化
U 表示文件/子目录/ 设备节点的owner 发生了变化
G 表示文件/子目录/ 设备节点的group 发生了变化
T 表示文件最后一次的修改时间是发生了变化
这里一般特别关注【top】、【ps】、【netstat】这类命令,如果命令被修改可能再查看进程或网络连接时就不准确了。
确认恶意程序:
①如果发现是恶意进程,可以使用【kill -9 PID】命令来结束进程,然后使用【rm -f filename】来删除木马,如果root用户都无法删除相关文件,很可能文件被加上了i属性,使用【lsatter filename】命令来查看文件属性,然后使用【chattr -i filename】命令来移除i属性继而删除文件。
②另外挖矿木马通常利用定时任务来实现其持久化,简单的查杀进程和程序不一定能完全解决问题,可以利用【crontab -l】命令查看定时任务。
③以上指定的所有命令很可能就被攻击者恶意替换,所以可以去命令目录查看相关系统命令的修改时间,如使用【ls -alt /bin】命令。也可以查看相关文件的大小,如果大小明显偏大则很可能被替换。也可以使用【rpm -Va】命令查看发生过变化的软件包,如果一切均校验正常将不会产生任何输出。可以使用第三方查杀工具如chkrootkit、rkhunter进行查杀。
八、日志排查:
1、Windows系统排查方法
1)系统日志:
系统日志记录着Windows系统及其各种服务运行的每个细节,起着非常重要的作用,默认情况下,Window的系统日志存放在%SystemRoot%\System32\Winevt\Logs,分别为:Application.evtx(应用程序日志)、Security.evtx(安全性日志)、System.evtx(系统日志)。
可以使用系统自带的“事件查看器”查看安全性日志,如查看是否存在大量审核失败的日志(暴力破解)
多关注安全性日志中的特殊事件,以下为挖矿木马应急处置时常用的有关检测事件ID,在处置工作中应重点关注:
- 4728:把用户添加进安全全局组,如administrators组
- 4797:试图查询帐户是否存在空白密码
- 4624:大部分登录事件成功时会产生的日志
- 4625:大部分登录事件失败时会产生的日志(解锁屏幕并不会产生这个日志)
- 4672: 特权用户登录成功时会产生的日志,例如登录”administrator”,一般会看到一条4624和4672日志一起出现。
- 4648: 一些其他的登录情况,如使用 runas /user 登录除当前以外的其他用户运行程序时,会产生这样的日志。(不过runas命令执行时同时也会产生一条4624日志)。
2、Linux系统排查方法
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. 全盘杀毒,加固:
通过以上操作后,仍需继续观察,是否还有反复迹象,是否还有进程或计划任务没有清理干净。
使用杀毒软件全盘杀毒,并对系统、应用做安全加固。
阻断木马利用的漏洞,防止系统再次中招。