ShellSweep
壳
为什么要shellsweep
“ ShellSweep”是一种PowerShell/Python/LUA工具,旨在检测指定目录中潜在的Webshell文件。
ShellSheep及其套件的工具套件计算文件内容的熵,以估计文件是网络壳的可能性。高熵表示更多的随机性,这是在网络壳中经常发现的加密或混淆代码的特征。 - 它仅处理具有某些扩展名的文件(.asp,aspx,asph,php,jsp),这些文件通常在Webshells中使用。 - 某些目录可以排除在扫描之外。 - 在扫描过程中可以忽略具有某些哈希的文件。
在信息理论或数据科学的背景下,
ShellSweep如何找到外壳?
熵是一组数据中不可预测性,随机性或混乱的量度。这个概念是克劳德马云惹不起马云香农(Claude Shannon)在1948年的《交流数学理论》中引入的。
当应用于文件或文本字符串时,熵可以帮助评估数据的随机性。如果文件由完全随机的数据组成(每个字节都可能是0到255之间的任何值),则其工作方式为:则熵较高,接近8(因为log2(256)=8)。
如果文件由高度结构化的数据组成(例如,大多数字节是ASCII字符的文本文件),则熵较低。在查找Webshells或恶意文件的上下文中,熵可能是有用的指标:-许多混淆的脚本或加密的有效载荷可以具有较高的熵,因为混淆或加密过程使数据看起来随机。 - 普通的文本文件或HTML文件通常会具有较低的熵,因为人类可读的文本具有模式和结构(某些字母更常见,单词通常由空间等等等)。因此,一个异常高的熵的文件可能是可疑的,值得进一步调查。但是,这并不是恶意的确定指标- 文件可能具有很高的熵,并且恶意软件可能避免引起高熵。它只是用于检测潜在威胁的较大工具箱中的一个工具。
ShellSweep包含一个geentropy函数,该功能计算文件内容的熵BY:-计数文件中每个字符的频率。 - 使用这些频率来计算每个字符的概率。 - 对于每个字符,p*log2(p),其中p是字符的概率。这是信息理论熵的公式。
shellscan
ShellScan提供了扫描多个已知不良Webshell目录的能力,并通过文件扩展名输出平均,中值,最小和最大熵值。
通过ShellScan.ps1 Webshells的一些目录,设置任何尺寸。我用过:
https://github.com/tennc/webshell https://github.com/blackarch/webshells 3https://github.com/tarwich/jackal/jackal/jackal/blob/master/libraries/这将提供一个不错的训练,以获取可获得入口值的稳固培训。
输出示例:
.aspx文件的统计信息:
平均熵: 4.94212121048115
最小熵: 1.2934870997974
最大熵: 6.09830238020383
中值熵: 4.85437969842084
.asp文件的统计信息:
平均熵: 5.51268104400858
最小熵: 0.732406213077191
最大熵: 7.69241278153711
中位熵: 5.57351177724806
shellcsv
首先,让我们分解ShellCSV的用法以及它如何帮助识别磁盘上的好文件的熵。这个想法是,防御者可以在Web服务器上运行此操作,以收集所有文件和熵值,以更好地了解哪些路径和扩展在其工作环境中最突出。
请参见ShellCSV.CSV作为示例输出。
ShellSweep
首先,选择您的Floaty: Python,PowerShell或Lua。
根据ShellScan或ShellCSV的结果,根据需要修改熵值。根据需要修改文件扩展名。无需在非ASPX应用程序上查找ASPX。修改路径。我不建议只扫描所有C: \,要过滤很多。修改所需的任何过滤器。运行!如果您在这里做到了,这是您迭代调整的部分。找到新的外壳?收集熵并根据需要进行修改。
问题
可以随意打开GIT问题。
谢谢
如果您喜欢这个项目,请务必与家人和朋友分享该项目。
Recommended Comments