网站被挂马检测工具,怎样记录改动前后的基线

📍 WDQWDWQD987AAAAA:216.73.217.89
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /bd6190a7e8fa.html
📄

网站被挂马检测工具,怎样记录改动前后的基线

用检测工具查挂马时,基线就是你在站点正常状态下留下的一套可对照记录,包括关键文件的哈希、目录清单、页面输出特征和数据库中的可疑内容样本。没有基线,工具报出的“异常”往往无法判断是攻击改动还是正常更新。记录基线的核心做法是:在确认站点干净时采集一次,之后每次改动前先留档、改动后再采集,用两次结果的差异定位问题。

先确定基线要记录哪些对象

不必把整站所有内容都纳入基线,时间和人手有限时,优先记录攻击者常改、且能稳定比对的几类对象:

选择依据是:这些对象一旦被改动,通常直接对应挂马行为;同时它们的体量可控,采集和比对不会占用太多时间。如果站点规模很小,可以只保留文件哈希和首页输出两项。

用检测工具采集基线的具体步骤

以常见的文件完整性检测思路为例,可以按下面的顺序执行:

  1. 在确认站点未被挂马的时刻,用工具对网站目录生成一次文件哈希清单,保存为基线文件,例如 baseline.sha256。
  2. 导出当前的文件列表,记录路径、大小和修改时间,保存为 baseline_files.csv。
  3. 抓取首页和关键页面的HTML源码,保存为文本文件,作为页面输出基线。
  4. 导出数据库关键表的结构和数据快照,或至少记录管理员账号数量和站点配置项的值。
  5. 把上述文件存放在站点目录之外,并记录采集时间,避免被攻击者一并篡改。

适用条件是:站点已确认干净,且你有权限读取文件和数据库。判断结果是:如果后续检测工具报告的改动都能在这份基线中找到对应条目,说明基线可用;如果基线本身就包含异常文件,后续比对会失去意义。

改动前后如何比对,避免误判

挂马检测中最容易出错的地方,是把正常更新当成攻击。比对时要区分三种情况:

一个可执行的检查项是:对每个差异文件,先看修改时间是否落在你已知的操作时间段内;再看文件内容是否包含混淆代码、远程请求地址或异常权限设置。只有排除正常更新后,才把差异判定为可疑。多个现象可能对应不同原因,不要仅凭一个文件变化就断定已被挂马。

时间和人手有限时的处理顺序

如果只能投入少量时间,按下面的顺序安排最先处理的工作:

  1. 先采集一次文件哈希和首页输出,这两项成本最低,覆盖面最广。
  2. 把基线文件存到站点之外,并记下采集时间。
  3. 之后每次改动前,先保存一份当前哈希清单,改动后再采集一次,形成前后对照。
  4. 检测工具报警时,先比对最近一次基线,再决定是否深入检查数据库和服务器。

这样做的代价是需要养成改动前留档的习惯;收益是后续每次排查都能快速缩小范围,而不必从零开始判断哪些文件被动过。

基线记录的保存与更新条件

基线不是一次采集就永久有效。出现以下情况时,应重新采集并覆盖旧基线:站点程序升级、主题或插件更新、确认并清理完一次挂马、服务器迁移。更新前要确认当前状态是干净的,否则会把异常状态固化成新的“正常”。保存位置建议放在版本控制或独立的备份目录中,并保留至少一份历史版本,以便回溯改动发生在哪个时间点。

下一步可以做的,是选一个你熟悉的文件哈希工具,对网站目录生成第一份基线清单,并记录采集时间;之后每次改动前重复一次,逐步形成可对照的记录。

图1 图2

nginx