当网站加载变慢、被浏览器标记为危险,或出现不明广告弹窗时,很可能已经被植入了木马程序。网站木马扫描是指通过自动化工具和人工手段,检测并清除隐藏在服务器文件、数据库或代码中的恶意脚本。下面从自动扫描到手动排查,提供一套可操作的方法。
自动化工具是发现木马的第一道防线,能有效识别已知的恶意签名、后门文件以及可疑行为特征。
建议每月至少运行一次自动化扫描,并在网站上传新文件后立即手动触发。
自动化工具的漏报率不低,尤其是针对加密或变种木马。因此需要配合手动排查关键文件和目录。
在服务器终端通过 find /var/www/html -type f -mtime -7 查看过去 7 天内被修改的文件。如果发现陌生的 PHP、JS、.htaccess 文件,应立即审查其内容。例如常见的恶意文件名 shell.php、config.bak.php 等,通常包含 base64_decode、eval、system 等危险函数。
uploads、cache、tmp 等上传目录是木马放置的高发区。通常情况下这些目录不应允许 PHP 文件执行。如果发现目录权限为 777(所有人可读写执行),应立即改为 755 或更严格值。对于不必要的上传目录,可在 .htaccess 中添加禁止执行 PHP 的规则:php_flag engine off。
部分木马不存放在文件系统中,而是隐藏在数据库字段(如 wp_posts 的 post_content)或服务器内存中。
清理后务必修改数据库连接密码、站点管理员账号密码,并更新安全密钥。
木马通常来源于插件漏洞、弱密码或被撞库。清除后应建立以下防护机制:
不一定。如果木马感染范围清晰且服务器没有权限滥用,手动清除并修复漏洞通常能解决问题。但如果系统关键文件被替换、rootkit 全面感染,建议备份数据后重装系统更彻底。
免费工具(如 ClamAV、Sucuri SiteCheck)可检测已知木马,但对 0day、加密变种木马检出率偏低。如果网站数据重要,建议搭配付费的专业扫描服务(如 Wordfence Premium)以减少漏报。
检查外部引用的 JavaScript、广告联盟代码是否被污染,或者 CDN / 代理服务是否被劫持。同时可联系托管商查看共享 IP 是否被他人滥用。这类情况也需要检查 .htaccess 中的 301 跳转规则。
网站木马扫描不是一次性的工作,而是渗透到日常运维中的常规动作。针对不同规模的网站,建议组合使用自动化工具与手动文件审查、数据库检查,并持续强化权限管理与更新机制。养成定期扫描的习惯,才能在攻击发生前有效降低风险。