阿里云ECS_Linux服务器解决蠕虫病毒MinerGuard

本文为自己的阿里云Linux中挖矿病毒的处理过程以及心得整理 

PS: 如果有时间的话请去 https://winterck.github.io 上去看看,里面是我刚写不久的博客原文,如果能有意见告知的话就最好了,感谢。

正文:
之前一天上班码BUG的时候,突然收到了阿里的短信,提示正在连接恶意下载源,当时我就。。。
阿里云ECS_Linux服务器解决蠕虫病毒MinerGuard_第1张图片
因为那时候的云服务器里没有自己的项目,只有一个dubbo的demo而已。所以我又放了N天,有空了才去看的服务器状况,现在想想真的痛心疾首,挖矿可以,挖出来的得打自己账户不是,虽然只是一个最低配,那四舍五入一下不是一个亿了

找病毒

等下班回到家之后,进入阿里云, 发现写指令巨慢,反应很慢,于是使用 命令

$ top -c   // 或者使用 top d1 等 查看进程和cpu占用情况

发现果然是 CPU占用 100%了, 其中有 大概 这几个 进程 : sysupdate, networkservice, sysguard, update.sh, networks 这几个导致占用99.9% (因为当时没截图,所以大致忘了是哪些了) 。

之后先使用命令kill掉这几个进程 使用top命令已可以看到进程的pid 阿里云ECS_Linux服务器解决蠕虫病毒MinerGuard_第2张图片

命令 $ kill -9 [pid] , 但是发现这样子是没有用的, 因为过几分钟会发现又会启动挖矿程序。

这是因为有病毒的定时任务在启动。

先使用 ps -ef |grep update.sh 或者 使用命令 ls -l /proc/[pid]/exe (kill 掉进程之前) 来查看
这几个文件的路径,会找到这几个文件的路径在

/etc/networkservice
/etc/update.sh
/etc/sysguard (这个文件是不是在这个目录我有点忘了,请自行确认)

查看update.sh会发现大概这么些内容 阿里云ECS_Linux服务器解决蠕虫病毒MinerGuard_第3张图片

大体就是会从 这个ip下载病毒使用的所有的文件,然后就可以顺藤摸瓜找出所有文件的路径。

另外应习惯性的找一下 /tmp 目录下的文件看看有没有一些可疑的文件,像我找了一下(我是没这个习惯的,看到别人有,我才看了看),发现了几个文件也是和病毒相关的

阿里云ECS_Linux服务器解决蠕虫病毒MinerGuard_第4张图片

上面的应该是几个日志文件, kow983kd 貌似是类似的后门,里面都是源代码了(要是有哪个大哥有研究的话也请麻烦补充一下)

解决病毒 ( 两种方式)

删除病毒

之前会发现在 kill -9 之后还会有定时任务再跑,所以之前的一次kill , 我们只是做一次准备任务: 去找出所有病毒所在的位置。这几分钟之内,你的命令速度为正常的,现在去查看定时任务 cat /var/spool/cron/root

或者crontab -l 命令,会发现有一个定时任务cron定时任务
删除掉定时任务 执行命令

rm -rf /var/spool/cron/root
//如果提示 cannot remove 的提示,是因为病毒执行了 chattr +i ,让文件不可变更, 执行下面命令
charttr -i /var/spool/cron/root
rm -rf /var/spool/cron/root

如果发现这么看找不到定时任务,则先去看定时任务的日志。 执行命令 less /var/log/[你的日志文件名]

阿里云ECS_Linux服务器解决蠕虫病毒MinerGuard_第5张图片

之后按键 shift + g 来到日志的最下端 ,使用 ? +[关键字] 查找病毒 ,像我的话使用 update.sh做查找

阿里云ECS_Linux服务器解决蠕虫病毒MinerGuard_第6张图片
发现能找到有病毒的定时任务,

less找到update.sh日志
之后就可以使用 上面的删除 rm -rf /var/spool/cron/root 去删除定时任务了 。(疑问:我这边之前是使用cat /var/spool/cron/root 找不到定时任务,之后在看了日志之后 ,再使用一次cat 就能看到日志了,不知道是什么原因, 迷茫ing)

删掉定时任务之后再删除其他文件

chattr -i /etc/networkservice
rm -rf /etc/networkservice
chattr -i /etc/update.sh
rm -rf /etc/update.sh
rm -rf /etc/config.json
rm -rf  /var/spool/cron/root
//以上为大部分 可能还有 networks  sysguard 等文件,请自行组织命令删除

在上面查看 update.sh文件时,发现上面还有 对 .ssh/authorized_keys 添加病毒的公钥,可以让病毒作者自己登陆,所以这个文件也要删除

chattr -i /root/.ssh/authorized_keys
rm -rf /root/.ssh/authorized_keys

删除掉这些以及 /tmp 下的那些文件之后,发现之后也没有启动了,问题解决~~

修改病毒

因为找病毒是一个小坑,你不知道你有的时候找的到底全不全,所以这里介绍一下第二种方式,首先我们已经发现了 主要的执行文件了 update.sh 以及其他的 networkservice 文件等,我们先进行删除操作

chattr -i /root/.ssh/authorized_keys
rm -rf /root/.ssh/authorized_keys
chattr -i /etc/networkservice
rm -rf /etc/networkservice
chattr -i /etc/update.sh
rm -rf /etc/update.sh
rm -rf  /var/spool/cron/root

之后创建一个同名文件,进行 chattr +i 操作,使文件不可变更

cat >> update.sh  //内容随便写
chattr +i update.sh   // 执行+i操作

其他文件也如此操作,这样的话也可以解决目前的这个病毒,因为病毒无法修改这些文件,所以cpu也不会满了,这是第二种方式。其实这个完全可以和第一种方式一起使用,可以先删掉并创建同名文件再chattr +i , 省的过几分钟CPU就占满。

中病毒之后的反思

由于之前买这个服务器是为了学习用的,买的也是最低配,里面也没什么有用的东西,所以对这个的安全太疏忽了,ECS的安全组之前都是配的所有IP都能访问,主要也没想到黑客对我这么一个最低配的服务器都有兴趣,唉。

目前的做法是修改了一下安全组,只有一些特定IP才可以访问。同时还对病毒文件里的 IP端口进行了一波拒绝操作。阿里云ECS_Linux服务器解决蠕虫病毒MinerGuard_第7张图片

你可能感兴趣的:(Linux)