转自:https://www.jianshu.com/p/77b1533b15d6
“世界上没有绝对安全的系统”,不论你对自己敲出的代码或者网站的安全性有多么拍胸脯的把握,你都不得不认同这至理名言。任何程序都有可能出现漏洞,任何网站都有被入侵的可能。近一段时间以来,各大漏洞一如既往地层出不穷。例如2018新年的第二天Intel就爆出了巨大的硬件缺陷,这迫使全球成千上万的主机商不得不连夜以损耗性能为代价做出产品的升级调整,数百亿的终端至今也仍处于危险之中。几乎每一个0day漏洞的报出,这样的场景都不得不重演。另一方面,我们在要求开发者不断提高产品安全系数的同时,不也应擦亮双眼洞察来往如飞的信息,并积极为突发情况做好准备吗?
如今,建站已经成为所谓“极客”的基本技能之一,各位可能也或多或少的接触到建站相关的技术。毕竟是自己心爱的小站,提前做好安全方面的措施自然必不可少。但正如上文表述,漏洞总是会出现的。对于自己开发的程序,粗心与尚不精湛的技术极有可能埋下漏洞的祸根;对于名声赫赫的各大CMS(如wordpress、typecho)来说,亦会时不时地出现安全问题。譬如前一段时间爆料给你的Typecho之install.php反序列化漏洞。如果你的网站真的倒霉地遭遇了黑客的屠刀,并被留下后门,你应如何以最小的成本清除webshell,保全珍贵的网站数据呢?
这篇文章利用7个各具特色的、PHP与ASP的webshell,测试4款扫描工具对webshell的查杀效果。先来概览一下这七个后门吧:
pic.gif
ASP与PHP两用一句话
one.php
普通的PHP eval型一句话
pure.asp
普通的ASP webshell(大马),特征较明显
powerful.asp
加密过的ASP大马,不容易辨别
coded.php
加密过的PHP大马,同样不容易辨别
recall-func.php
离别歌大牛利用PHP回调函数的特性开发的新一代免杀一句话后门
filebox.php
常用的PHP在线文件管理工具,其实不是正统的后门,放在其中用以对比。
(想下载的朋友可以在此处网盘下载)
我们将这七个文件放在一个wordpress程序的根目录下,并移除wp-content和wp-includes两个文件夹(不然文件太大了= =),模拟真实的生产环境:
OK,让我们开始测试吧~
Python脚本:findWebshell
github地址:https://github.com/he1m4n6a/findWebshell
这个项目是一款基于python开发的webshell检查工具,可以根据特征码匹配检查任意类型的webshell后门。原理和架构都比较简单。
运行细节我就不贴了,我们直接来看扫描结果:
结果是7个后门中仅仅扫描出两个,而且误报了大量wordpress的文件。可见这套程序的特征码库及其匹配机制还是有很大的提升空间的。
WEBSHELL.PUB查杀
webshell.pub提供在线扫描与客户端(支持windows和linux)两种形式的查杀。我将整个模拟网站打包上传进行扫描:
从图片呈现出的查杀结果可以看到,在同样误报了一定数量的wordpress自身文件后,程序扫描出来7个webshell中的5个。其中recall-func.php(PHP函数回调一句话)和coded.php(PHP加密一句话)未被检测出来。测试发现整个查杀过程非常快,几乎是在上传的同时就返回了查杀结果,有可能也是用了特征码匹配的手法。其准确度还是比较可观的。
百度WEBDIR+ webshell扫描服务
WEBDIR+是百度安全团队开发的一套在线webshell扫描服务,目前免费开发使用,可匿名调用API上传压缩包扫描。我上传与上面同样的压缩包,在将近一分钟的等待之后得到了扫描结果:
此套服务对wordpress原生文件的误报降低到3个,并扫描出了7个漏洞中的5个。未被检测出来的webshell是powerful.asp(ASP混淆加密大马)和pure.asp(普通ASP大马)。测试表示WEBDIR+执行需要一定的等待时间,误报率与webshell.pub的服务相比大大降低,但还是有两个ASP后门逃过了天眼,可见产品对于ASP语言的检测仍然有一定的提升空间。
D盾
上面三个工具都可以跨平台使用,而D盾只能在windows平台上运行,这就为linux建站的朋友带来一点不便。D盾的作者啊D原来也是渗透的老玩家,现在金盆洗手做起安全产品来了,而且还供大家免费使用。我们且看看D盾对于如上网站文件的检测结果:
结果出来,检测整个网站目录用时只有7秒之短。在追出了两个wordpress原生文件之外,7个webshell已经被无一幸免地鉴别出来了,并且做了详细到不能再详细的标注。离别歌大牛的PHP回调函数马在其文章中测试时是可以过D盾的,然而现在貌似已经入库了。在D盾的官网你可以看到其更新速度比较频繁,可以说这样比较杰出的扫描结果是和其开发者的充足经验和不断完善的特征库有很大关系的。但其缺点就是只能在windows环境下使用。
OK我们来总结一下,四款扫描工具中要数D盾的性能比较出众。所以我建议Linux建站的朋友可以在网站被入侵后(或者定期)把网站文件打包下来放在D盾中进行扫描,可以较好的揪出隐匿的webshell。
随着人工智能近年来的飞速发展,我相信这新项技术必然在不久的将来被应用于诸如后门查杀这样的领域上,识别精度必然会发生质的提高,以更好的保证我们网站的安全。让我们怀着期待而感激科技的进步吧!~
文章首发于淀粉月刊
作者:爱居正
链接:https://www.jianshu.com/p/77b1533b15d6
来源:
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。