You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

web目录.htaccess与index.php删除后自动生成无法修改故障求助

Linux站点恶意文件自动重建问题排查清理步骤

1. 先清掉驻留的保活进程

文件删了自动重建、已删除的lock360.php还在持续轮询读文件,说明后台有常驻恶意进程在做保活,必须先处理进程再动文件,不然删多少都会被重写:

  • 执行ps aux列出所有运行中进程,重点筛选命令行带PHP路径、不属于正常php-fpm/apache/nginx服务的异常进程,记录进程PID和对应的可执行文件路径,直接用kill -9 对应PID强制杀掉。
  • 全路径排查定时任务:依次检查/var/spool/cron/下所有用户的crontab配置、/etc/crontab全局定时配置、/etc/cron.d///etc/cron.hourly///etc/cron.daily/下的所有脚本,删掉所有带base64解码、curl/wget拉取远程内容、指向web目录下php文件的异常任务。
  • 检查系统自启服务:遍历/etc/systemd/system/、/usr/lib/systemd/system/目录,找名字随机、启动命令指向web目录的异常服务,执行systemctl stop 服务名停服后删除对应service文件,再跑systemctl daemon-reload重载配置。
  • 重启php-fpm、web服务,清空内存中残留的恶意执行上下文。

2. 解锁并删除所有恶意文件

当前碰到的.htaccess、index.php无法修改删除,基本是被加了文件系统特殊属性或者被进程占用:

  • 对两个无法操作的文件执行lsattr 文件绝对路径,如果输出带i(不可修改删除)、a(仅可追加)标记,先执行chattr -ia 文件绝对路径移除特殊属性,再执行删除。
  • 如果移除属性后还是删不掉,用lsof 文件绝对路径查占用文件的进程ID,杀掉对应进程后再删。
  • 执行全盘搜索,把.htaccess里放行的所有可疑PHP文件全部清理:包括lock360.php、wp-l0gin.php、wp-the1me.php、wp-scr1pts.php、wp-admin.php,不要只删web根目录下的副本,用find / -name "lock360.php" -o -name "wp-l0gin.php" -o -name "wp-the1me.php" -o -name "wp-scr1pts.php" -o -name "wp-admin.php"扫全磁盘,找到的文件全部删除。

3. 清理恶意代码并加固

  • 不要手动修改被注入代码的index.php,直接用对应程序的官方原版文件覆盖(如果是WordPress站点就下载同版本的官方安装包,覆盖所有核心文件),避免漏过多轮编码混淆的后门片段。
  • 扫描web目录下所有php文件,重点排查带eval、assert、base64_decode、gzinflate、远程地址拉取特征的可疑代码,优先检查最近1个月内修改时间异常的文件。
  • 重置web目录权限:目录权限统一设为755,文件权限统一设为644,web服务运行用户仅对上传、缓存目录开放写权限,上传目录单独配置规则禁止解析php文件。
  • 清理完.htaccess里的恶意放行规则后,可以给正常的.htaccess、核心index.php文件加上chattr +i只读属性,避免被再次篡改。

4. 清理效果验证

  • 持续观察1-2小时,确认index.php、.htaccess不会被自动重建,PHP错误日志中不再出现lock360.php相关的轮询报错。
  • 再次检查进程列表、crontab、自启服务列表,确认没有异常项复现。
  • 访问站点确认业务功能正常,访问之前的可疑后门文件路径返回404,无恶意跳转。

注意:如果清理后还是出现文件被篡改的情况,要排查是否存在其他未找到的后门,或者服务器已经被提权,需要检查系统命令是否被替换、有没有新增的异常系统用户。

内容的提问来源于stack exchange,提问作者UMAR-MOBITSOLUTIONS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 05:21:23