网站被挂马,相当于攻击者往服务器文件里塞入了恶意脚本。访问者轻则被弹窗骚扰、强制跳转到赌博或色情网站,重则设备中毒,浏览器也会弹出安全警报,网站的搜索排名和访问量因此大幅下跌。处理这类问题,建议按“现象判断—源码排查—文件与进程检查—日志溯源”的顺序来推进,发现异常就随手删文件风险很大,很容易误删正常业务代码,造成二次事故。
不要第一时间登录服务器操作,先用自己常用的设备访问网站,观察具体表现。若页面冒出从未见过的弹窗、输入网址后被转到陌生域名,或者网页加载奇慢、设备发烫明显,建议立刻换一台干净设备,比如关闭Wi-Fi改用手机流量再访问一次。干净设备上依旧出现相同问题,说明故障大概率源自服务器端;反之,若恢复正常,则更可能是本地网络被劫持或浏览器插件作祟,盲目折腾服务器只会浪费时间。
在浏览器里按F12打开开发者工具,切到“源代码”或“元素”面板,重点搜索以下几类高危特征:eval()、base64_decode、document.write、unescape。同时留意源码里有没有指向陌生域名的iframe标签,以及长度异常、难以阅读的变量名。发现可疑内容后,复制一小段丢进搜索引擎比对,绝大多数常见恶意代码都能找到对应的特征说明,方便确认攻击类型。
要清除干净,必须登录服务器做全面检查。攻击者植入的木马通常集中在入侵时段内新建或改动文件,优先排查最近48小时内被修改过的文件,是效率最高的切入点。
文件层面没有发现时,别忽略运行进程。用ps aux或top命令查看CPU占用率异常偏高的进程,核对可执行文件路径是否属于正常业务范畴。部分木马会伪装成系统进程名,这时可结合进程启动时间与父进程ID进一步鉴别,判断其是否为入侵后启动的可疑对象。
纯手工排查容易漏掉深藏的恶意文件或木马变种,建议在清理前后各执行一轮自动化扫描,互为印证,降低遗漏概率。
需要注意,扫描工具并非万能,清理动作完成后一定要复查一次,确认干净后再考虑恢复线上服务。
清理只是治标,找到攻击者从哪里进来的才算真正收尾。登录服务器查看Web访问日志与系统安全日志,通常存放于/var/log/nginx/access.log或/var/log/apache2/目录下。重点关注日志中的异常POST请求、高频访问特定路径的IP,以及带有?cmd=或?shell=等参数特征的URL,这类痕迹往往指向攻击者执行命令的路径。
确认入侵入口后,还要检查是否有新增的SSH密钥、可疑的系统定时任务(crontab),以及是否被添加了新的管理员账号。这些后门若不堵上,攻击者随时可能卷土重来,清理工作等于白做。
不推荐这样做。直接删除可能让网站报错甚至无法运行,更重要的是,如果入侵入口没有封堵,攻击者仍可再次植入。正确做法是先备份可疑文件,逐一确认其作用,再配合日志分析找到后门并彻底修复。
查看日志中是否有针对数据库接口的异常访问记录,同时检查数据库中是否出现新表或异常字段。关键业务数据建议定期做异地备份,必要时联系安全团队或第三方服务商协助做安全审计。
及时更新服务器系统补丁、Web框架及CMS插件版本,修改后台与数据库的强密码,开启双因素认证,并限制后台登录IP白名单。日常也要定期检查文件完整性,避免同类问题反复发生。
网站挂马处理的核心是耐心与条理,按现象判断、源码排查、文件进程检查、日志溯源的顺序推进,配合自动化工具交叉验证,才能既快又稳地完成清理。切记整个过程保留好原始证据和备份,完成后修复安全漏洞、调整防护策略,做到不留死角,才能真正避免二次受害。