扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共4页)
部署一套网页shell到底有多简单?
这些shell的部署能够通过下列方法来加以简化:命令注入、文件上传漏洞、不安全的FTP(即文件传输协议)以及包含漏洞的远程文件。如果攻击者能够使目标网页服务器执行其所提供的后门程序,他们就能够使shell获得与网页服务器同样高的权限来对主机操作系统进行访问。
如果我们不能够安全地依靠传统方法,例如基于签名认证的扫描工具,来检测网页shell,那还有其它的备选方案吗?现在,让我们一同进入NeoPI吧。
NeoPI 概述 NeoPI是一个由Python所编写的脚本,它使用多种统计方法来检测存在于文本及脚本文件中的,经过伪装处理或加密过的内容。NeoPI的预期目的是帮助我们定位网页shell的隐藏代码标识。NeoPI在发展方面的重心在于创造一套可与其它现有检测方案(例如Linux恶意软件检测或传统的基于签名认证/密钥信息的检索手段)同共作用的强大工具。 NeoPI是一款独立的平台,能够在安装了Python 2.6的任何操作系统平台上运行。要运行这套脚本的用户,首先需要获得读取计算机中所有文件的权限,这样该工具才能进行全盘扫描。 NeoPI将对整个文件系统由基层目录开始进行循环扫描,并按照一系列检测结果对文件进行评估分类。这种分类能够帮助我们识别哪些文件有较高的机率可能已经被经过加密的网页shell所侵入。它同时还提供了一种称为"总体"评分的系统,可以由单独的检测做出个别的文件分类。 分析方式讲解 NeoPI利用以下几种不同的统计方法,来尝试判断对象文件中包含恶意代码的可能性。 最长的字符串 最长的字符串指的是该种检测手段将文件中长度最长且不间断的字符串作为判断标识。这种方式相当实用,因为经过伪造处理的代码在经过编码的文本文件中往往是作为一条超长的字符串进行存储的。当前多数主流的编码方法,例如base64编码,都会产生一个没有空格字符的超长字符串。由于典型的文本及脚本文件,其内容在字符串的长度方面普遍较短,因此找出那些反常的长串字符可能有助于我们识别该文件中是否存在恶意代码。 上述代码的功能是将某字符串以"单词"为单位用空格、换行及回车加以拆分后获得的结果。其运行之后将自动确定那些最长的字符串内容并在处理之后返回分析结果。 熵 熵是一种用来衡量及描述某值在不确定性方面所表现出来的强度的概念。Shannon(Claude Shannon,信息熵概念及符号逻辑与开关理论的奠基者)位是字节。该测试通过计算来确定目标编码文件中字节数最少的某个文件所必需的"Shannon熵值"。熵测量在识别加密型网页shell方面功效卓著,因为加密过程往往会使对象文本字符串的熵值大幅提升。 上面的代码将对Shannon熵值的具体"数据"进行计算并返回一个0到8之间的浮点数。所谓熵值代表的是"数据"的字节熵量。而浮点数字则相当于表示该"数据"所必需的字符位数。一个包含大量随机内容或特殊信息的文件将需要更多的字符位数来进行描述,也因此产生了较大熵值。利用这种功能来对浮点数值在从2到8区间的日志记录文件进行分析,返回的结果将介于0和1之间。而配合其它计算熵的措施协同工作,上述分析可能将对识别网页shell有所帮助。最终获得的数值越大,数据显示的各种信息的随机性越强、种类越多,也就是说熵量越大。 巧合指数 巧合指数(简称I.C.)是指一种用来对文本进行加密分析或自然语言分析的技术指标。它可以计算某个所有字母的出现机率相对平均的文本中,其字母组合的出现情况。这类计算往往会在分析不同类型的文本后得出挖的结论数值;无论该文本使用的是口头语言还是脚本语言。这一结论性数值在确定诸多同类文件中的异常文本文件中是非常有用的。这可能表明该文件所包含的文本部分有问题,无论是重新编码操作还是加密过程,都会使结果偏离正常的字符应用分布情况。
上面的代码代表对"数据"的巧合指数进行计算,并返回一个浮点数值。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者