问题
远程连接服务器,执行命令速度明显慢到离谱。通过宝塔,发现负载状态和CPU使用率都跑到了100%
原因
挖矿病毒
经过查找分析,是一个叫做zzh
的挖矿病毒导致的。
Redis未授权
这个病毒是哪里来的呢?
后来查找分析,知道这个病毒是因为Redis一开始没有设置登录密码导致的。具体漏洞网上是这么说的:
解决
首先想到的是通过
ps -ef
或者top
查找资源占用率异常的进程(结果失败,因为这两条命令查不出来)注:top虽然也查不出来,但是可以发现us占到了90+%,这明显不正常
使用
htop
命令查找,如果没有这条命令,需要安装一下:1
2yum -y install epel-release
yum -y install htop使用
kill -9 PID号
把这几个进程杀死执行
ps -ef | grep newinit
,将查到的几个进程也用上一步的命令杀死再执行这几条命令(清除病毒)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17cd /usr/bin
//这一段为了修改chatrr命令的权限
cp chattr chattr.new
chmod a+x chattr.new
chattr.new -i chattr
rm -f chattr.new
chmod a+x chattr
cd /etc
//这一段为了删除zzh文件
chattr -ia zzh //少了这一步,删除时会提示没有权限
rm -rf zzh
rm -rf zzhs
//这一段为了删除newinit.sh文件
chattr -ia newinit.sh //少了这一步,删除时会提示没有权限
rm -rf newinit.sh再使用
htop
命令查看有没有zzh
进程了,如果有的话,再使用kill -9 PID号
杀死进程同样对第5步中
newinit.sh
进程也再检查一次,操作同第7步
遗留问题
经过上述步骤,通过宝塔可以发现已经没有恶意程序占用资源了
但是出于想要彻底清除病毒的目的,我又通过find / -name zzh
命令发现还存在/etc/cron.d/zzh
文件,也就是说定时任务中还有这个文件,通过vim
编辑,发现里面也就一行命令*/50 * * * * sh /etc/newinit.sh >/dev/null 2>&1
。(这个文件我想删除,但是怎么都删除失败了)
以及通过crontab -e
查看当前在执行的定时任务程序,发现也是上述那条命令*/50 * * * * sh /etc/newinit.sh >/dev/null 2>&1
,输入dd
命令,用wq!
也保存不了。这个命令内容其实存储在/var/spool/cron/用户名
文件中,但是这个文件也不能通过chmod
修改读写权限
所以,虽然解决了负载和CPU资源占用问题,但是这个病毒搞的定时任务感觉并没有彻底清除。