网络上有很多关于免杀木马的说法,但如果不了解主流的杀毒或者waf的检验方式,也仅仅是类似于爆破,运气好可以进去,运气差可以换个payload。所以在此之前,请先了解一下所有的检验方式。
通常状况下,应用Webshell时不易在系统日志中留下记录查询,反而是将Webshell页面的浏览数据和数据上传记录查询留在网站的Web日志中。根据搭建大量的日志文件来检验异常文件,日志分析检测技术称之为:HTTP异常请求模型检验。其优点是当网站的浏览人数级别达到一致值时,该检验方式有着较大的参考价值。其缺陷是存在一定的虚警率,而且对于大量的日志文件,检测工具的处理能力和效率会变得非常低。
在脚本文件中,静态检验就是指对关键字、危险函数、文件修改时间、文件权限、文件所有者与其他文件的关联等多维特征进行检验,即首先建立恶意字符串数组特征库。在webshell中查找已经知道的webshell的精确性很高,但是缺陷是有很高的漏报率和误报率,0daywebshell非常容易被忽视。以下是具体检验方式:Web外壳特征检验。根据对webshell文件进行归纳,提取出比较常见的特征码、矩阵的特征值、威胁函数构成的规则,然后根据关键词匹配脚本文件找到webshell,进而产生有着正则表达式的静态检验方式,是一种常用的静态检验方式。
更常用的方式例如:
该命令将执行eval\system\cmd_shell\assert等系统调用的函数。
统计学特征检验,某些变形混淆经常发生在webshell中,通常检验不了,但这些类型的脚本明显不同于普通脚本,它们根据统计文本熵、字符串长度、特殊符号个数、重合指数、压缩比率等来制定相应的规则,以防止混淆webshell。“Neopi”是基于统计的Webshell后门检测工具,它应用五种统计方法来搜索脚本文件中可能混淆的或编写过的恶意代码。
信息熵(Entropy):用ASCII编码表测量文件不确定性;最长单词(LongestWord):最长字符串数组可能会被编码或混淆;重合指数(IndexofCoincidence):低重合指数表示文件代码可能已被加密或混效;
特征(特征):搜索文件中已经知道的恶意代码字符串数组片段;压缩(Compression):对文件进行压缩的比率。这样就很好明白了,有一些文件名看了一眼就知道是webshell,也就是总结了某些比较常见的webshell文件名,然后再过滤。
例如:php、webshell.php等文件。
文档行为检查(动态检查),DynamicTrade就是指根据Webshell运行时应用的系统命令或网络通信量和状态的异常情况来判断威胁的程度,而Webshell通常是加密的,进而避免静态特征的检验,在运行Webshell时需要向系统发送系统命令,以控制系统或其他用途。在行为模式中,根据检验系统调用来监控甚至拦截系统命令的执行,进而深度检验脚本文件的安全性。以下是具体的检验方式:一个webshell通常有着系统调用、系统配置、数据库、文件操作等功能,它的行为方式决定了在其数据流中的参数有着某些显著的特点。