宝塔面板网站被黑了怎么办
学完这篇你能按顺序走完「隔离现场 → 定位入口 → 清除后门 → 加固 → 恢复」五步,把一台被黑的宝塔服务器重新拉回可用状态,并且不再被同一个口子二次入侵。
第一步:先隔离现场,别急着删文件
这一步要做的是让网站停止对外服务,同时把日志和原始文件留成证据;做完你手上会有一份能回溯攻击过程的快照。
先停站:宝塔面板左侧「网站」→ 找到对应站点 → 点「设置」→ 在「站点状态」里选「停止」。如果整台机器都可能沦陷,SSH 里执行 bt stop 停面板,再 systemctl stop nginx。
立刻打包备份:
tar -czf /root/backup_$(date +%F).tar.gz /www/wwwlogs /www/wwwroot /www/server/panel/logs /var/log
注意:不要先删可疑文件再备份。删掉的那一个往往正是定位入侵入口的唯一线索。也不要一慌就重装系统,重装等于把证据和客户数据一起丢掉。
第二步:定位入侵入口
这一步要从日志里查出攻击者是从哪个口子进来的;做完你能明确知道是 SSH 弱口令、面板端口暴露,还是程序漏洞(ThinkPHP、织梦、WordPress 插件等)。
面板侧:左侧「安全」页找到「面板操作日志」(部分版本叫「操作日志」),看有没有陌生 IP 登录、改密码、新建计划任务。SSH 侧执行:
last -50
grep "Accepted" /var/log/secure | tail -50
grep -c "Failed password" /var/log/secure
网站侧看 /www/wwwlogs/站点名.log,直接搜索攻击特征:
grep -Ei "eval|assert|base64_decode|shell" /www/wwwlogs/xxx.com.log | head -50
第三步:清除后门
这一步要把攻击者留下的所有「持续性控制点」全部拔掉;做完即使他拿到过密码,也进不来了。重点查四个地方。
1. 网站目录的 WebShell。 宝塔左侧「文件」→ 进入站点根目录 → 右上角搜索框勾选「包含子目录」→ 搜 .php,按「修改时间」排序。命令行更准:
find /www/wwwroot -type f \( -name "*.php" -o -name "*.jsp" \) -newermt "2025-01-01" -ls
2. 计划任务。 面板左侧「计划任务」逐条看,陌生的一条不留。再清系统级:
crontab -l
ls -la /etc/cron.d /var/spool/cron
3. 恶意进程与端口。 ps aux --sort=-%cpu | head -20、netstat -antp | grep LISTEN,看到从 /tmp、/dev/shm 启动的陌生进程直接杀。
4. SSH 后门。 cat ~/.ssh/authorized_keys 删掉不认识的公钥;检查 /etc/passwd 有没有 uid 为 0 的陌生账号。
注意:宝塔站点根目录常有
.user.ini锁定文件,删不掉先执行chattr -i .user.ini,处理完再chattr +i .user.ini加回去。另外很多马会把自己塞进wp-config.php、index.php的文件头,别只看文件名判断。
第四步:加固,把入口堵死
这一步是防止二次被黑,做完常见攻击面基本关闭。
- 面板:左侧「设置」→「面板端口」改成 30000 以上的非常用端口;「安全」里改强密码、开「面板 SSL」、开「二步验证」。宝塔 9.2.0 免费版可在「设置」→「告警」里绑定微信/邮箱通知。
- SSH:编辑
/etc/ssh/sshd_config,设PermitRootLogin no、PasswordAuthentication no,配好密钥后systemctl restart sshd。 - 防火墙:面板「安全」→「防火墙」,只放行 80、443 和你自己的 SSH 端口,删掉 8888、888 这类默认可疑放行。
- 升级:面板首页右上角点版本号更新;软件商店里把 Nginx、PHP、MySQL 升到当前稳定版;CMS 核心和插件同步升到最新。
第五步:恢复与观察
用干净的文件把站点还原并重新上线,然后盯 3~7 天。优先用备份里「被黑之前」的版本覆盖;如果入侵时间早于备份时间,就改用官方原版程序 + 自己的数据库备份重建。数据库也要查,用 phpMyAdmin 看 wp_users 或 admin 表里有没有陌生管理员账号。恢复后每天看一次 /www/wwwlogs/ 和面板操作日志。
小结
- 顺序不能反:先隔离和备份,再删后门;
- 日志是定位入口的关键,
/www/wwwlogs/、/var/log/secure、面板操作日志三处必看; - 后门要查四样:WebShell、计划任务、恶意进程、SSH 公钥;
- 加固核心是改端口、开二步验证、关 SSH 密码登录、最小化放行端口;
- 恢复后至少观察一周,别当天就宣布没事了。
原文链接:https://www.gj0.com/thread-643.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。