首页 > 科技周边 > IT业界 > 快速通过cron/php检测到被黑的文件:superscan

快速通过cron/php检测到被黑的文件:superscan

Christopher Nolan
发布: 2025-02-19 09:08:10
原创
311 人浏览过

SuperScan:网站文件变更监控利器

Quickly Detect Hacked Files via CRON/PHP: SuperScan

核心功能:

SuperScan 是一款升级版的脚本,旨在及时提醒网站管理员其文件发生的任何更改,包括新增、修改或删除。其工作原理是扫描指定的目录,并将当前文件的哈希值与数据库中先前扫描存储的哈希值进行比较。

高效且轻量:

SuperScan 工具高效且不会影响服务器性能。扫描包含 1500 个文件的帐户大约只需 0.75 秒。它允许频繁扫描而不会让网站管理员不堪重负,只会报告自上次扫描以来的更改,并提供每日汇总报告。

取证支持和安全增强:

SuperScan 还支持取证调查,它在数据库中存储文件的最后修改日期和时间,以及最近扫描的哈希值。它可以在网站空间之外运行,以防止休闲黑客入侵,甚至可以通过更改 error_log 文件来提醒网站管理员编码问题。

作为一名认证的道德黑客,我深知预防是阻止黑客入侵的最佳策略,但是,如果黑客真的突破了防线,那么越早知道,就能越快采取行动来限制损失。

Quickly Detect Hacked Files via CRON/PHP: SuperScan

之前,我介绍过一个名为 hashscan 的脚本,用于追踪网站更改。该脚本通过每日 CRON 执行,读取指定目录(例如,服务器上帐户的 public_html 目录)中的文件,生成哈希值(对于具有特定文件扩展名的文件),并将它们与数据库中先前扫描的哈希值进行比较。对于网站所有者来说,这是一个很好的方法,可以让他们及时发现黑客添加、更改或删除的文件。

本文将介绍该脚本的更新版本,名为 SuperScan

SuperScan 的优势:

SuperScan 的主要优势在于它可以报告帐户中文件的任何更改,无论文件更改是添加、更改还是删除。SuperScan 的设计初衷是为了避免让网站管理员不堪重负。它只提供自上次扫描以来的更改报告(默认值为一小时,但可以通过 CRON 配置)和汇总报告(默认为每日,但也可以通过 CRON 配置)。

由于扫描包含 1500 个文件的帐户大约需要 0.75 秒,因此 SuperScan 可以频繁运行而不会影响服务器性能。

为了支持取证调查,文件最后修改日期和时间以及最近扫描的哈希值(以及已更改文件的先前扫描)都保存在数据库中。

无需更改扫描程序文件,因为所有变量都在所需的配置脚本中设置。您可以在配置脚本中选择要扫描的特定文件扩展名(或全部文件扩展名),或者如果选择全部文件扩展名,则可以选择要忽略的文件扩展名。此外,您还可以指定扫描程序不会扫描的目录。

虽然 SuperScan 文件可以在网站空间内进行测试,但我建议将其通过 CRON 移到网站空间之外以进行生产使用,以防止休闲黑客入侵。

最后,一个额外的好处是,(无扩展名)error_log 文件的更改会被捕获,并可以将网站管理员的注意力吸引到测试过程中遗漏的编码问题上。

SuperScan 逻辑:

SuperScan 的逻辑流程如下:

  1. 读取数据库中文件的基线信息;
  2. 扫描系统的文件并计算它们的哈希值;
  3. 将基线文件与当前文件进行比较,以确定要生成的已更改文件:
    • 新增文件列表;
    • 已更改文件列表;
    • 已删除文件列表;
  4. 处理每个已更改文件列表(更新数据库);
  5. 准备并发送报告(如果需要)。

数据库、变量和工作数组:

为了避免在此处赘述细节,我在所有脚本中都添加了注释。

简而言之,数据库中有三个表:

  • baseline:包含 $file_path、文件的哈希值以及文件的最后修改日期和时间。我还添加了帐户,以便多个帐户可以使用单个数据库;
  • history:记录每次检测到的更改(或没有更改)以及每次扫描;
  • scanned:记录扫描汇总日期和时间,以及更改数量和关联帐户。

警告 #1: 我必须强调,由 configure.php 设置的 $testing 变量将触发大量的输出,因此它只能用于测试,而不能在 CRON 作业期间使用!

警告 #2: 由于 path/to/file 用作键,因此它必须是唯一的。这意味着多个帐户永远不能扫描相同的文件。

警告 #3: 此外,Windows 服务器将使用反斜杠,这些反斜杠会立即更改为斜杠,因为它们会导致数据库中字符丢失。此外,在文件名中使用撇号将导致数据库查询出现问题。

工作数组旨在利用 PHP 的函数,这些函数访问键($file_path;这也是文件结构迭代器,因此永远不要更改 $iter->key())。

$baseline 在开始扫描之前读取,$current 是扫描的结果,$added、$altered 和 $deleted 数组累积来自 $baseline 的更改,并用于更新下一次扫描的 $baseline。

文件:

superscan.zip 文件包含 7 个文件:

  • CreateTables.sql,可用于设置表;
  • ReadMe.txt,提供了 SuperScan 脚本的概述;
  • scanner.php,扫描脚本,需要 configure.php 和 scandb.php(连接到您的 MySQL 服务器并返回 $scandb 句柄);
  • reporter.php,将通过 CRON 提供最近扫描的摘要;
  • CRON.txt,提供了 scanner.php 和 reporter.php 的示例 CRON 指令。

清理:

在检测到文件更改时创建 $report,并在不是“负面报告”时存储和发送电子邮件。汇总报告用于在您没有收到更改报告时获得“温暖、模糊的感觉”。

在清理过程中,会自动清除历史记录和扫描表中超过 30 天的记录,以防止数据库无限增长,大型数组被销毁(重置为空),数据库被关闭。

总结:

我相信 SuperScan 比我之前的努力有了巨大的改进,是一个值得升级的工具。它可以频繁地通知已更改的文件,而“负面报告”不会因不必要的“未更改”通知而让网站管理员不堪重负。

从 GitHub 下载 SuperScan 代码

致谢:

SuperScan 由 Han Wechgelaer (NL) 建议,他通过电子邮件建议将我之前的 hashscan 脚本扩展为捕获帐户文件更改的历史记录,以及进行更频繁的评估并添加每日摘要。

Han 非常慷慨地提供了他在这个项目上的启动副本,在我们之间,这演变成了 SuperScan。如果没有 Han 的温和督促和帮助,SuperScan 就永远不会启动,当然也不会成为今天这个优秀的工具。

我很想知道您如何看待这个脚本,或者如果您有任何问题或反馈。

关于通过 Cron.php SuperScan 检测被黑客入侵的文件的常见问题解答:

什么是 Cron.php SuperScan,它是如何工作的?

Cron.php SuperScan 是一款功能强大的工具,旨在检测和识别系统中被黑客入侵的文件。它的工作原理是定期(通常由用户设置)扫描系统文件,并在检测到任何可疑或修改的文件时发出警报。此工具对于需要维护系统安全性和完整性的网站管理员和系统管理员特别有用。

我如何在系统上设置 Cron.php SuperScan?

设置 Cron.php SuperScan 涉及将脚本上传到您的服务器并将其配置为定期运行。这可以通过服务器的控制面板或通过命令行来完成。设置完成后,脚本将自动扫描您的系统文件并提醒您任何潜在的威胁。

Cron.php SuperScan 可以检测哪些类型的文件?

Cron.php SuperScan 能够检测与黑客攻击通常相关的各种文件类型。这包括 PHP 文件、HTML 文件、JavaScript 文件等等。它还可以检测隐藏文件和目录,这些文件和目录可能被黑客用来未经授权访问您的系统。

Cron.php SuperScan 与其他文件扫描工具相比如何?

与其他文件扫描工具相比,Cron.php SuperScan 提供了一种更全面和自动化的解决方案。虽然其他工具可能需要手动扫描和分析,但 Cron.php SuperScan 自动化了该过程,从而节省了您的时间和精力。它还提供其结果的详细报告,使您可以更容易地识别和解决潜在的威胁。

Cron.php SuperScan 可以防止黑客攻击吗?

虽然 Cron.php SuperScan 是检测被黑客入侵文件的有效工具,但它并不能防止黑客攻击。它的主要功能是提醒您潜在的威胁,以便您可以采取适当的措施。但是,定期使用此工具可以帮助您维护系统的安全并降低成功黑客攻击的风险。

我应该多久运行一次 Cron.php SuperScan?

扫描频率取决于您的特定需求和系统所需的安全性级别。但是,通常建议每天至少运行一次 Cron.php SuperScan 以获得最佳安全性。

如果 Cron.php SuperScan 检测到被黑客入侵的文件,我该怎么办?

如果 Cron.php SuperScan 检测到被黑客入侵的文件,则必须立即采取行动。这可能包括删除文件、从干净的备份中恢复文件或联系网络安全专业人员以寻求进一步帮助。

我可以自定义 Cron.php SuperScan 的设置吗?

是的,Cron.php SuperScan 允许您自定义其设置以满足您的特定需求。这包括设置扫描频率、指定要扫描的文件类型以及配置警报通知。

Cron.php SuperScan 适用于所有系统吗?

Cron.php SuperScan 旨在与大多数支持 PHP 的系统一起工作。但是,它可能与并非所有系统兼容,因此建议在安装之前检查系统要求。

Cron.php SuperScan 是否免费使用?

Cron.php SuperScan 是一款付费工具,这意味着它需要付费使用。但是,考虑到它提供的安全级别以及成功黑客攻击的潜在成本,对于大多数企业和个人来说,这是一项值得的投资。

以上是快速通过cron/php检测到被黑的文件:superscan的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板