原创 Ots安全
“ShellSweep”是一个PowerShell/Python/Lua工具,旨在检测指定目录中的潜在Web Shell文件。
ShellSheep 及其工具套件会计算文件内容的熵,以估计文件成为 Web Shell 的可能性。熵值越高,随机性就越强,这是 Web Shell 中常见的加密或混淆代码的特征。
它仅处理具有某些扩展名(.asp,.aspx,.asph,.php,.jsp)的文件,这些扩展名常用于 Web shell。
某些目录可以从扫描中排除。
扫描过程中可以忽略具有特定哈希值的文件。
ShellSweep 如何找到Shell?
在信息论或数据科学的背景下,熵是一组数据的不可预测性、随机性或无序性的度量。该概念由克劳德·香农 (Claude Shannon) 在其 1948 年的论文“通信的数学理论”中提出。
当应用于文件或文本字符串时,熵可以帮助评估数据的随机性。它的工作原理如下:如果文件由完全随机的数据组成(每个字节都是 0 到 255 之间的任何值),则熵很高,接近 8(因为 log2(256) = 8)。
如果文件由高度结构化的数据组成(例如,大多数字节都是 ASCII 字符的文本文件),则熵会较低。在查找 Web shell 或恶意文件的上下文中,熵可能是一个有用的指标:
许多混淆的脚本或加密的有效负载可能具有高熵,因为混淆或加密过程使数据看起来是随机的。
普通文本文件或 HTML 文件的熵通常较低,因为人类可读的文本具有模式和结构(某些字母更常见,单词通常用空格分隔等)。因此,熵异常高的文件可能是可疑的,值得进一步调查。然而,它并不是恶意的万无一失的指标——文件可能具有高熵的合理原因有很多,恶意软件也有很多方法可以避免导致高熵。它只是检测潜在威胁的大型工具箱中的一个工具。
ShellSweep 包含一个 Get-Entropy 函数,它通过以下方式计算文件内容的熵:
计算每个字符在文件中出现的频率。
使用这些频率来计算每个字符的概率。
对每个字符求和 -p*log2(p),其中 p 是该字符的概率。这是信息论中熵的公式。
为什么选择 ShellSweepX?
ShellSweepX 将 ShellSweep 的核心功能提升到一个新的水平,与传统 EDR(端点检测和响应)解决方案相比具有多种优势:
专注:与大范围的 EDR 解决方案不同,ShellSweepX 专门用于检测 Web Shell。这种专注可以更准确、更有效地检测这些特定威胁。
低资源开销:与许多 EDR 解决方案不同,ShellSweepX 是轻量级的,不需要持续的后台进程或系统监控。这意味着对系统性能的影响较小。
可定制且透明:ShellSweepX 的开源特性使其检测方法完全透明。您可以轻松定制和微调检测参数以适合您的特定环境。
不依赖外部服务:ShellSweepX 在本地运行,不依赖基于云的分析或持续更新,确保您的敏感数据在您的控制范围内。
多层检测:ShellSweepX 采用多种检测方法,包括熵分析、模式匹配和启发式分析,为 Web Shell 检测提供全面的解决方案。
详细报告:ShellSweepX 提供有关潜在威胁的深入信息,包括熵值、检测方法和置信度分数,从而允许做出更明智的决策。
跨平台兼容性:由于 ShellSweepX 提供 PowerShell、Python 和 Lua 版本,因此可部署在各种环境中。
虽然 ShellSweepX 不能替代成熟的 EDR 解决方案,但它是您安全库中强大而专业的工具,特别是对于 Web shell 构成重大威胁的环境。
项目地址
https://github.com/splunk/ShellSweep?tab=readme-ov-file#how-does-shellsweep-find-the-shells
标签:webshell,Web,Shell,文件,检测,ShellSweep,ShellSweepX,检测工具
From: https://www.cnblogs.com/o-O-oO/p/18415174