你有没有发现做运维、开小站的朋友,十个里有八个都中过服务器脚本病毒?要么突然CPU拉满卡到炸,要么站点被挂黑链跳博彩,还有的悄咪咪偷你数据库用户信息,扫半天找不到毒根,删完没两天又卷土重来,属实闹心。
说白了这类病毒根本不是你电脑上那种蹦弹窗的毒,都是钻了你服务器的漏洞溜进来的。要么是你站点用的开源插件没更有公开漏洞,要么是ftp、数据库用了弱口令被爆破,甚至redis、elasticsearch没设密码开放公网,人家传个一句话木马进来,马上就能衍生一堆挖矿、挂马、盗数据的脚本,藏的位置还特别偏,普通杀毒软件根本扫不到服务器里的web脚本。
别一上来就翻遍整个磁盘找文件,先抓异常进程准得很。挖矿类的脚本基本都占90%以上的CPU,挂跳转黑链的占资源少点但会有异常的对外请求,直接敲top命令看列表,那些名字是随机乱码、占资源拉满、你自己完全没部署过的进程,先记好进程ID和对应的执行文件路径,别着急杀,杀了子进程还有父进程守护,转头就给你复活。
要是不确定进程是不是恶意的,直接ps auxf 看进程树,顺着子进程往上找父进程,连带着守护进程的路径一起扒出来。

病毒篡改你的站点文件肯定会改修改时间,直接针对性扫最近7天的改动文件就行,重点盯/var/www站点根目录、/tmp临时目录、/root用户目录这几个重灾区,敲这个命令就行:
``` find /var/www -mtime -7 -name ".php" -o -name ".js" -o -name ".sh" -o -name ".py" ```出来的列表挨个核对,那些文件名是随机字符串、你自己从来没上传过的文件,还有原本的站点核心文件被改动过的,打开看内容,但凡有eval、base64_decode、exec这类加密执行的代码,百分百是被注入了恶意脚本。
把所有恶意进程、恶意文件的路径全扒出来之后,先把父进程先kill掉,再删所有恶意文件,别搞反顺序。删完别马上就完事了,一定要去扫一遍所有用户的定时任务,90%的脚本病毒都会留定时任务,每分钟去拉一次远程的恶意脚本,你删完本地的转头就给你重新下载,直接敲crontab -u root -l看root的定时任务,还有www、mysql这些运行站点的用户的定时任务也别漏,陌生的全删掉。
这些清完了才是最关键的一步:补漏洞。之前我有个做个人博客的朋友,清了三次病毒都复发,最后才发现是redis没设密码开放了公网,人家随时能进来写定时任务,白折腾好几天。所有弱口令全换掉,字母数字符号凑够12位以上,没用的端口全关了,只留80、443、22这些必要的,站点的开源程序、插件、主题全更到最新的稳定版,上传目录限制死不能执行脚本,有条件的装个开源的主机防护工具,开文件变更告警,但凡有脚本被篡改马上给你发通知,比你自己瞎盯省心一百倍。
这事儿吧真的别嫌麻烦,很多人觉得自己站小没人盯上,现在全网扫漏洞的爬虫24小时不停跑,只要有漏洞分分钟就能给你种上病毒,到时候站点被运营商封了、用户数据泄露,损失的可不是补漏洞那点功夫钱。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图