当前位置: 首页 > Linux

记得有一次服务器被kdevtmpfsi变成了矿机

时间:2023-04-06 03:03:17 Linux

昨天有一个测试服务器被告知服务异常。进入服务器后发现是因为docker异常退出。运行docker后发现有一个未知进程kdevtmpfsi异常占用CPU。我是在谷歌搜索后才发现的。好家伙,服务器算是矿机了。直接kill无法结束,它还有守护进程和可能的定时任务。1.首先找到文件$find/-namekinsing//守护进程$find/-namekdevtmpfsi//挖矿进程如果Redis是在本地运行,上面两个文件一般在/tmp/目录下。如果Redis作为容器运行,一般在/var/lib/docker/overlay2/(容器的/tmp/目录)下。2.删除$rm-fkinsingkdevtmpfsi这里的被感染容器不一定是Redis,比如我的是PHP,所以需要进入被感染容器才能找到。3.终止进程$ps-aux|grep亲属$ps-aux|grepkdevtmpfsi$kill-9pid4。查看定时任务$crontab-l已经存在的定时任务不一定是当前用户,可以使用如下命令查看是否有其他用户存在任务:$foruserin$(cut-f1-d:/etc/passwd);执行crontab-u$user-l;done定时任务也可能存在于以下地方:/etc/crontab/var/spool/cron//var/spool/cron/crontabs/至此病毒清理完成。这个和网上的处理方法是一样的,但是这个方法不适合我。我试过很多次了,不管我怎么删,病毒依然存在。因为病毒依赖容器生存,所以我把容器停了下来,通过dockerlogs实时查看了容器的最后10条日志:dockerlogs-f-t--tail10十分钟后,终于抓到我了:虽然我看到了整个过程,但此时我还是无能为力,因为我不知道上面的命令是如何自动启动的。我尝试了各种方法,但没有解决办法。十分钟后病毒仍然会出来。最后,我不得不丢弃受感染的容器并启动一个新容器。综上所述,kdevtmpfsi病毒的出现通常是由于Redis对外开放了6379端口,而没有设置密码或者密码太简单导致的。所以服务器一定要安装防火墙,比如3306、6379等常用端口,尽量减少对外开放的机会。参考链接Linux.Packed.753