php木马检测
作者:百科 来源:娱乐 浏览: 【大 中 小】 发布时间:2026-10-17 06:16:27 评论数:
一个PHP文件躺在一台服务器上,木马检它看起来像一张图片。木马检文件名叫`avatar.php.jpg`,木马检只有2KB。木马检但就是木马检这2KB,能让攻击者拿到整台服务器的木马检控制权。这就是木马检木马,PHP木马,木马检服务器管理员最头疼的木马检东西。
我见过太多被挂马的木马检服务器。有的木马检站长一脸茫然,说"我什么都没干啊"。木马检真相对简单——你装了套开源CMS,木马检用了某个免费主题,木马检或者某个老插件没更新。木马检攻击者利用漏洞上传了一个小文件,从此你的服务器变成了他的肉鸡。他会用它发垃圾邮件,挖矿,或者当跳板去攻击别人。你根本察觉不到,直到某天服务商打电话说你的服务器在对外攻击。
检测PHP木马,核心就一句话:找那些不该存在的PHP文件。但难就难在,服务器上文件太多了。一个正常的业务系统,几万个PHP文件很常见。你不可能一个个看过去。所以得靠特征。
最常见的是eval函数。`eval($_POST['x'])`,这行代码本身就是个警报。正常业务里谁会用eval执行用户输入?基本没有。还有`assert`、`create_function`、`preg_replace`配合`/e`修饰符,这些都是老牌木马的最爱。看到这些函数,直接拉黑准没错。
但现在的木马学聪明了。它们会加密,会变形。把关键字符串用base64编码,拆成好几段拼接,甚至用十六进制转义。你搜`eval`搜不到,因为它写成`ev\x61l`。这时候就得靠行为检测了——看文件到底在干什么。比如一个PHP文件频繁读写`/etc/passwd`,或者尝试连外部IP的某个端口,这绝对是木马。
我自己的习惯是,先看文件修改时间。攻击者上传木马的时间,往往和漏洞被利用的时间吻合。如果你发现某个PHP文件的时间戳异常,比如半夜三点被修改,那就要重点检查。再配合文件完整性校验——拿之前的备份做对比,多了哪个文件,改了哪个文件,一目了然。
有个案例我印象特别深。一次帮朋友排查,他的网站后台登录页总是跳转到钓鱼站。查了半天,最后在一个很深的目录里发现了个`cache.php`。打开一看,里面就三行代码,把后台地址重定向到一个俄罗斯的IP。这种木马不偷数据,就是为了钓鱼,特别隐蔽。要不是我无聊翻目录,根本发现不了。
说实话,检测木马没有一劳永逸的办法。攻击者在暗处,你在明处。今天你堵住了eval,明天他就用`shell_exec`。你能做的,就是定期扫,用工具扫,再加上自己的经验判断。像`find /var/www -name "*.php" -mtime -7`这种命令,我每周都会跑一遍。
最后说个土办法,但很管用。在你网站的根目录放一个自己写的PHP文件,里面就写一行`echo "hello"`。过几天去访问它,如果返回的不是hello,而是别的东西,说明服务器已经被篡改了。这方法虽然笨,但能帮你发现那些藏得很深的木马。毕竟攻击者改你的文件,不可能只改木马本身,总会留下些别的痕迹。
