当前位置:首页 > 百科 > 网站木马检测 正文

网站木马检测

来源:烟消火灭网   作者:时尚   时间:2026-10-17 05:50:01

去年秋天,网站一个做外贸的木马朋友找我帮忙。他的检测独立站突然被Google标记为“危险网站”,流量直接归零。网站我登服务器一看,木马根目录下多了个叫 wp-content 里夹着的检测 class-wp-cache.php,时间戳是网站凌晨三点。打开一看,木马不到二十行混淆代码,检测功能就一个:把访客重定向到博彩页面。网站这就是木马典型的网站木马——不偷数据,不加密文件,检测只做流量劫持。网站

很多人以为网站木马就是木马病毒,其实不是检测一回事。病毒要感染服务器系统,木马只寄生在网站层面。它可能是一段PHP代码、一个JS文件、甚至一张图片里藏着的二进制指令。检测它,靠的不是杀毒软件,而是对文件本身的“异常感”。

怎么找?先看文件修改时间。正常网站更新内容,改的是数据库和上传目录。如果 index.php 或者 functions.php 突然在凌晨被改,基本有问题。我习惯用 find 命令按时间筛选:find /var/www -mtime -7 -type f,列出七天内动过的文件。再对比官方源码的哈希值,差一个字节都别放过。

第二种方法更直接:搜特征字符串。木马作者再狡猾,也得写 eval、base64_decode、gzinflate 这些函数。在Linux下跑一句 grep -r "eval(" /var/www --include="*.php",能揪出不少。但别高兴太早——有些木马把代码拆成数组,用 call_user_func 动态调用,这时候就得靠人眼读。我见过最阴的一招:把恶意代码写成注释里的正常函数名,靠 extract 覆盖变量后触发。

前端木马更隐蔽。去年有个客户网站,首页看着正常,但用手机访问就跳转。查了半天,发现 header.php 里多了一行 <script src="https://legit-cdn.com/track.js"></script>。那个域名长得像正规CDN,实际解析到境外IP。JS文件里做了UA判断——只有移动端才执行跳转。这种木马,光扫服务器文件没用,得用浏览器开发者工具抓网络请求,或者用 curl -A "iPhone" 模拟访问。

数据库也别放过。wp_options 表里塞一条 siteurl 被改的记录,或者 wp_posts 里藏一段 <iframe>,都能让网站中招。我一般直接搜 SELECT * FROM wp_options WHERE option_value LIKE '%<script%'。别嫌麻烦,木马就爱钻这种“合法数据”的空子。

检测出来之后呢?别急着删。先备份整个网站,包括数据库。然后隔离——把可疑文件移到 /tmp 下,改权限为 000。接着查日志,看木马是怎么进来的。是FTP密码太弱?还是插件漏洞?我见过一个案例,攻击者利用 wp-file-manager 插件的任意文件上传漏洞,传了个 .phtml 文件,服务器居然当PHP执行了。这种漏洞,光删木马没用,得升级插件、改 .htaccess 禁止 .phtml 解析。

说个反常识的:很多木马检测工具会误报。比如 Wordfence 把某些缓存插件生成的 eval 代码标红,其实是正常逻辑。所以别全信工具,得结合文件路径、修改时间、代码上下文判断。我自己的习惯是:先看 wp-content/uploads 里有没有 .php 文件——正常上传目录绝不该有可执行脚本。有,就是木马。

最后提一句,检测不是一劳永逸。木马会变异,会留后门。今天删了 class-wp-cache.php,明天可能从 wp-includes 里冒出来。定期对比文件哈希、监控 .htaccess 变动、限制目录执行权限,比任何扫描器都管用。我那外贸朋友的站,后来我给他装了 inotifywait 监控,一有文件改动就发邮件。三个月后真又逮到一个——这次是 wp-config.php 被插了 auto_prepend_file。你看,木马这东西,跟蟑螂一样,看见一只,暗处还藏着一窝。

标签:

责任编辑:时尚