教程
php2shell 自查:服务器是否被入侵的判断清单
为什么升级完还要自查
AI 操作示意图·以官网实际界面为准
php2shell(CVE-2026-109618 / CVE-2026-109619)是免认证远程代码执行漏洞,攻击者可能在你升级之前就已经执行了代码。所以:先升级(到 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35),再按下面四路排查。
第一路:登录与账号
last -20 # 最近登录记录
lastb -20 # 失败登录记录(部分发行版需要 root)
cat /etc/passwd | grep '/bin/bash' # 列出可登录账号
重点看:不认识的 IP、深夜的 root 登录、异常的 sudo 记录(journalctl -u sudo)。发现陌生账号,先记录证据再处理。
第二路:进程与连接
AI 操作示意图·以官网实际界面为准
ss -antp | head -30 # 当前监听与外连连接
ps aux --sort=-%cpu | head -20 # CPU 占用最高的进程
异常信号:陌生的外向连接(尤其连接你从未见过的 IP)、名为随机字符串的进程、PHP 进程行为异常。不要急着 kill,先 ss -tunp 看连接目标并记下来。
第三路:文件变更
find /tmp /var/tmp -type f -mtime -14 2>/dev/null | head -30
find /var/www -type f -mtime -14 2>/dev/null | head -50
重点查:web 目录里新增的 .php 文件、奇怪文件名(随机字符)、/tmp 下的可疑脚本;再看一遍 PHP 站点目录有没有被批量改写(入侵后常会留 webshell)。
第四路:流量与定时任务

crontab -l # 当前用户定时任务
ls /etc/cron.d/ /var/spool/cron/ 2>/dev/null
journalctl -k -n 50 | grep -iE 'drop|deny|suspect' # 内核丢弃/告警
攻击者常用 cron 保持驻留。凡是你不认识的定时任务,都先看脚本内容再决定去留。
如果确认被入侵:先隔离,再恢复
- 断网/关停服务:先停止对外服务或摘掉公网 IP,别让攻击者继续操作;
- 备份证据:把
/var/log、进程快照、可疑文件完整复制到离线介质; - 改口令:所有账号密码、SSH 密钥、面板口令全部轮换;
- 恢复:从干净备份恢复站点与数据(备份篇强调过:备份必须可用),系统重装是更彻底的选项;
- 复盘:补上 PHP 升级、防火墙、fail2ban、最小权限,别让同一漏洞再进一次。
日常防再次入侵的清单
- 立即升级 PHP 到安全版本并保持安全更新习惯;
- SSH 用密钥登录、禁 root 密码登录、fail2ban 限速;
- web 目录写权限最小化,上传目录禁止执行 PHP;
- 定时任务与 crontab 定期人工核对;
- 异地备份 + 季度恢复演练。
官方资料
资料核对日期:2026-10-25
- PHP 官网安全公告(CVE-2026-109618 / CVE-2026-109619 说明与修复版本):https://www.php.net/
最近一周热门文章
按近 7 天访问热度排序,热度积累前优先展示新文章。
当前栏目最新文章
教程 · 继续阅读同栏目的新内容
一起交流
0 条留言LEAVE A NOTE
你的经验,也很重要。
无需注册或登录。请勿公开邮箱密码、证件、银行卡号或其他敏感信息。
















还没有留言,来分享你的想法吧。