用宝塔文件管理器按修改时间排序可快速定位近期被篡改的文件,重点检查插件、缓存、上传目录及伪装成图片的php文件,右键查看是否含base64_decode、eval等危险函数;再用d盾本地深度扫描zip包,并交叉分析网站运行日志、宝塔面板日志和系统ssh日志;清理后需严格设置目录755、php文件644、上传目录禁php执行、配置文件600权限,并关闭防篡改插件对上传目录的监控。

怎么看哪些文件被悄悄改过?用宝塔文件管理器做快速比对
网站被黑后,最常发生的是核心文件(比如 index.php、footer.php)被注入恶意代码,或在上传目录里多出一个伪装成图片的 .php 文件。宝塔自带的「文件管理器」虽然不能自动标红差异,但能帮你快速定位异常变更。
- 登录宝塔 → 左侧「文件」→ 进入网站根目录(如
/www/wwwroot/your-site.com),点击右上角「排序」→ 选「修改时间」,把最近几小时/一天内变动过的文件顶到最上面 - 重点盯这些位置:
/wp-content/plugins/(WordPress)、/data/或/cache/(织梦/DedeCMS)、/public/uploads/(Laravel)、还有所有带.php后缀却名字像123.jpg.php、shell.png的文件 - 右键可疑文件 → 「查看」→ 拉到底部看有没有 base64_decode、
eval(、assert(、system(、passthru(等危险函数调用——注意:有些会用双写绕过,比如sy<code>stem(,得手动搜ystem或eval
用 D盾 Web 查杀本地扫描,别信宝塔“一键查杀”
宝塔软件商店里的「网站木马查杀」插件,本质是简单特征匹配,对混淆型、无文件型、内存驻留型 webshell 基本无效。真正靠谱的做法,是把整站打包下载到本地,用专业工具深度扫描。
- 在宝塔「网站」列表里,找到目标站点 → 右侧「打包」→ 勾选「包含子目录」→ 下载 ZIP 包到 Windows 电脑
- 用
D盾Web查杀(官网免费版即可)打开该 ZIP,选「全盘扫描」+「深度检测」,它会标记出高危文件、可疑函数、隐藏 eval、以及模仿系统文件名的后门(比如叫error_log.php或wp-config-backup.php) - 别跳过「日志分析」模块:D盾能解析
access.log和error.log,找出反复访问某个 PHP 文件的 IP,这些大概率就是攻击者在用后门
查日志要盯三个关键路径,不是只翻 access.log
单看 Nginx 的 access.log 只能看到「谁来了」,但看不出「干了什么」。被黑后必须交叉比对三类日志,才能还原攻击链。
-
/www/wwwroot/your-site.com/runtime/log/(ThinkPHP)或/wp-content/debug.log(WP 开启 DEBUG 后):这里可能记录了被注入代码执行时的报错,暴露真实后门路径 -
/www/server/panel/logs/request.log:宝塔自己的面板请求日志,搜login fail或admin能看到是否有人暴力破解过面板账号 -
/var/log/auth.log(Linux SSH 登录日志):用命令grep "Failed password" /var/log/auth.log | tail -50查最近失败尝试,如果 IP 高频出现又不在你常用范围内,基本就是爆破痕迹
删完木马后权限怎么设才不二次中招?
很多人删完后门就直接重启,结果几天后又挂马——问题往往出在目录权限没收紧,让攻击者通过上传接口再次写入。
- 网站根目录(如
/www/wwwroot/your-site.com)整体设为755,所有.php文件统一644;上传目录(如/uploads/、/images/)必须禁止执行 PHP:chmod 755 uploads/,再在 Nginx 配置里加这段限制:
location ~ ^/uploads/.*\.(php|php5|phtml)$ {
deny all;
}
wp-config.php、database.php)权限必须是 600,确保只有 root 或 www 用户可读最麻烦的不是第一次清理,而是找不到入口点。如果反复被黑,大概率是弱口令(FTP/数据库/宝塔面板)或 CMS 插件有已知漏洞,得从登录凭证和组件版本开始重新捋。










