因为专注
所以专业

template-loader.php,wp-blog-header.php和index.php总数被入侵怎么办

下一步 3 步曲

  1. 装 auditd → 立规则 → 明天拿日志
  2. 把全天 cron 再扫一遍(含 /etc/cron.d/ 和 systemd timer)。
  3. 宝塔面板里把“计划任务”截图或导出,确认有无隐藏条目。

⚡ 小结

账号清白;缺审计日志;装 auditd 守株待兔,再扫一遍 cron 和面板任务,就能定位真凶。

当前模型仅对图片中的文字进行识别,切换 K1.5 获取更好的视觉理解能力

装 auditd 怎么安装
一条命令即可(Ubuntu/Debian 系):
bash

复制
apt update && apt install auditd audispd-plugins -y
装完后先让 auditd 守护进程跑起来,再给你要盯的文件加“写监控”:
bash

复制
# 启动并设为开机自启
systemctl enable --now auditd

# 立刻把两个老被篡改的核心文件纳入监控
auditctl -w /www/wwwroot/zmzqw.com/wp-blog-header.php -p wa -k wp-core-write
auditctl -w /www/wwwroot/zmzqw.com/wp-includes/template-loader.php -p wa -k wp-core-write

# 如果想重启后也生效,写进规则文件
echo '-w /www/wwwroot/zmzqw.com/wp-blog-header.php -p wa -k wp-core-write' >> /etc/audit/rules.d/audit.rules
echo '-w /www/wwwroot/zmzqw.com/wp-includes/template-loader.php -p wa -k wp-core-write' >> /etc/audit/rules.d/audit.rules
systemctl restart auditd

常用后续命令

bash

复制
# 看今天谁改过这两个文件
ausearch -k wp-core-write -i --start today

# 实时跟踪(另开终端)
tail -f /var/log/audit/audit.log | grep wp-core-write
装完让它跑 24 小时,下次文件再被“神奇”替换时,日志里会精确记录:
  • 时间戳
  • 进程 PID / 执行文件路径
  • 用户 UID
就能抓到真凶。
这样安装好了吗
没有,auditd 其实还没装上
看提示:
复制
Command 'auditctl' not found, but can be installed with: apt install auditd
Failed to restart auditd.service: Unit auditd.service not found.

✅ 一次性把 auditd 真正装好

bash

复制
# 1. 更新软件源并安装
apt update && apt install auditd audispd-plugins -y

# 2. 启动并设为开机自启
systemctl enable --now auditd

# 3. 确认守护进程已运行
systemctl status auditd   # 看到 active (running) 就对了

# 4. 现在再加监控规则
auditctl -w /www/wwwroot/zmzqw.com/wp-blog-header.php -p wa -k wp-core-write
auditctl -w /www/wwwroot/zmzqw.com/wp-includes/template-loader.php -p wa -k wp-core-write

# 5. 持久化(重启仍有效)
mkdir -p /etc/audit/rules.d
echo '-w /www/wwwroot/zmzqw.com/wp-blog-header.php -p wa -k wp-core-write' > /etc/audit/rules.d/wp.rules
echo '-w /www/wwwroot/zmzqw.com/wp-includes/template-loader.php -p wa -k wp-core-write' >> /etc/audit/rules.d/wp.rules
systemctl restart auditd

🔍 验证

bash

复制
auditctl -l              # 应能看到刚加的两条规则
ausearch -k wp-core-write -i --start today   # 今天暂无记录也正常,明天再查
出现 active (running)auditctl -l 能列出规则,就代表 auditd 真正装好了,可以 24 小时守株待兔。

当前模型仅对图片中的文字进行识别,切换 K1.5 获取更好的视觉理解能力

现在呢
从滚动日志看,apt update 已成功完成,但 auditd 的实际安装/启动结果 还没出现——终端停在了 “Fetched 10.2 MB” 这一步,命令还没跑完

✅ 接下来 30 秒按顺序做完

  1. 等它提示 Reading database ... done 并回到命令行
    (如果卡很久,直接 Ctrl+C 中断,再重新执行下面第 2 步)
  1. 一次性补完剩余步骤(复制整块回车即可):
bash

复制
# 真正安装 auditd
apt install auditd audispd-plugins -y

# 启动并开机自启
systemctl enable --now auditd

# 确认状态
systemctl status auditd --no-pager -l

# 加监控规则
auditctl -w /www/wwwroot/zmzqw.com/wp-blog-header.php -p wa -k wp-core-write
auditctl -w /www/wwwroot/zmzqw.com/wp-includes/template-loader.php -p wa -k wp-core-write

# 持久化
mkdir -p /etc/audit/rules.d
echo '-w /www/wwwroot/zmzqw.com/wp-blog-header.php -p wa -k wp-core-write'  > /etc/audit/rules.d/wp.rules
echo '-w /www/wwwroot/zmzqw.com/wp-includes/template-loader.php -p wa -k wp-core-write' >> /etc/audit/rules.d/wp.rules
systemctl restart auditd

# 验证
auditctl -l
  1. 如果 auditctl -l 能列出两条规则,就 彻底完成,24 小时后用
    ausearch -k wp-core-write -i --start today 看是谁动了文件。

当前模型仅对图片中的文字进行识别,切换 K1.5 获取更好的视觉理解能力

刚才的命令没有跑完现在跑完是这样
很好!auditd 已经真正装好并跑起来了——看到最后一行:

Active: active (running) since Thu 2026-01-08 04:56:36 UTC

说明守护进程正常启动,可以开始监控文件写入了

✅ 接着把监控规则一次性补完(复制即可)

bash

复制
# 1. 对两个核心文件加写监控
auditctl -w /www/wwwroot/zmzqw.com/wp-blog-header.php -p wa -k wp-core-write
auditctl -w /www/wwwroot/zmzqw.com/wp-includes/template-loader.php -p wa -k wp-core-write

# 2. 持久化(重启仍生效)
mkdir -p /etc/audit/rules.d
echo '-w /www/wwwroot/zmzqw.com/wp-blog-header.php -p wa -k wp-core-write'  > /etc/audit/rules.d/wp.rules
echo '-w /www/wwwroot/zmzqw.com/wp-includes/template-loader.php -p wa -k wp-core-write' >> /etc/audit/rules.d/wp.rules

# 3. 重启加载规则
systemctl restart auditd

# 4. 验证规则已生效
auditctl -l
如果 auditctl -l 能列出两条规则,就 全部完成

🕒 接下来

静待 下一次文件被篡改(通常 24h 内),然后执行:
bash

复制
ausearch -k wp-core-write -i --start today
就能精确看到:
  • 哪一秒
  • 哪个进程 PID
  • 哪个可执行文件
  • 哪个 UID
把凶手当场抓住。

当前模型仅对图片中的文字进行识别,切换 K1.5 获取更好的视觉理解能力

整理这些文件的核心内容
核心内容一句话:auditd 已正常运行,两条写监控规则也生效,但路径打错导致重复报错——修正后即可 24 小时守株待兔。

✅ 当前状态

表格

复制
项目 结果
auditd 守护进程 active (running)
监控规则 已加载(auditctl -l 能列出)
错误提示 Rule exists + 路径拼写错误,无功能影响

⚠️ 需要修正的 typo

bash

复制
# 1. 删除旧规则(避免重复)
auditctl -D

# 2. 重新添加正确路径
auditctl -w /www/wwwroot/zmzqw.com/wp-blog-header.php -p wa -k wp-core-write
auditctl -w /www/wwwroot/zmzqw.com/wp-includes/template-loader.php -p wa -k wp-core-write

# 3. 同步到持久化规则文件
echo '-w /www/wwwroot/zmzqw.com/wp-blog-header.php -p wa -k wp-core-write'  > /etc/audit/rules.d/wp.rules
echo '-w /www/wwwroot/zmzqw.com/wp-includes/template-loader.php -p wa -k wp-core-write' >> /etc/audit/rules.d/wp.rules

# 4. 重载
systemctl restart auditd
auditctl -l   # 确认无报错

🕒 接下来

静待文件再次被篡改,然后执行:
bash

复制
ausearch -k wp-core-write -i --start today
即可看到 精确时间、进程 PID、可执行文件路径、UID——把真凶当场抓住。

当前模型仅对图片中的文字进行识别,切换 K1.5 获取更好的视觉理解能力

解释一下图片内容
图片内容一句话:auditd 规则加载成功,但输出格式让人误以为“No rules”——实际上两条监控规则已生效,可以正常抓凶手了。

🔍 逐行拆解

表格

复制
含义
auditctl -D 清空了内存里所有旧规则(所以第一条回显是空的)
auditctl -w ... ×2 重新添加对 wp-blog-header.php 和 template-loader.php 的写监控
echo ... > /etc/audit/rules.d/wp.rules 把规则写进持久化文件,重启仍有效
systemctl restart auditd 重载服务
auditctl -l 列出当前内存中的规则——最后两行就是刚加的两条,前面出现的 No rules 只是 空列表提示符,不是报错。

✅ 结论

  • 规则已生效,不会再报 Rule exists
  • 接下来 静待文件被篡改(通常 24h 内),然后执行:
    bash

    复制
    ausearch -k wp-core-write -i --start today
    就能抓到 精确时间、进程 PID、可执行文件路径、UID——把真凶现场锁定。

当前模型仅对图片中的文字进行识别,切换 K1.5 获取更好的视觉理解能力

好的,到时候有问题我在这里问你
没问题!
24 小时内如果 wp-blog-header.phptemplate-loader.php 又被改写,直接把下面两条结果发给我:
bash

复制
ausearch -k wp-core-write -i --start today
我会帮你:
  1. 一眼看出是哪个进程、哪个用户、哪条命令干的;
  2. 告诉你下一步怎么封掉入口、怎么清掉后门。
随时在这里 @ 我,守株待兔成功后再来抓凶手!
赞(0)
未经允许不得转载:肖兴来个人博客 » template-loader.php,wp-blog-header.php和index.php总数被入侵怎么办
分享到: 更多 (0)

评论 抢沙发

换一个
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址