您现在的位置是:首页 > 密码破解

Python安全运维实战演练:对于几类特殊隐藏方法的Webshell查杀

作者:果E安全网时间:2020-10-25 23:42:52分类:密码破解

简介Webshell一直全是系统管理员讨厌见到的物品,一旦在网站导航里看到了生疏的webshell基础表明网址早已被网络攻击拿到了。立在网络攻击的视角,要想渗入一台网络服务器,第一个总体目标也是想尽办法的找寻系统漏洞提交webshell。?针对webshell的安全防护一般根据二点:一是在网络攻击提交和浏览时根据特点搭配开展检验阻拦或限定文件种类阻拦提交;二便是平时根据webshell文件特

Webshell一直全是系统管理员讨厌见到的物品,一旦在网站导航里看到了生疏的webshell基础表明网址早已被网络攻击拿到了。立在网络攻击的视角,要想渗入一台网络服务器,第一个总体目标也是想尽办法的找寻系统漏洞提交webshell。?

针对webshell的安全防护一般根据二点:一是在网络攻击提交和浏览时根据特点搭配开展检验阻拦或限定文件种类阻拦提交;二便是平时根据webshell文件特点的静态数据查杀(也是有根据系统日志的,在这儿不做探讨)。第一种方式并不是大家今日要探讨的,waf、安全狗等一系列专用工具能够完成相对的作用。第二种方法静态数据查杀,一般会搭配一些关键词、风险涵数、一些特点编码及她们的各种各样数据加密方式,以遍历文件的方法来开展查杀。殊不知也有很多种多样根据毁坏遍历标准(使故意文件没法被遍历到)的隐藏方法,一般能够做到防止被查杀的目地。今日大家说起的便是: 怎样利用python完成对于这几类特殊隐藏方法的webshell查杀。

NTFS互换数据流(alternate data streams,通称ADS)是NTFS磁盘格式的一个特点,在NTFS文件系统软件下,每一个文件都能够存有好几个数据流,就是除开主文件流以外还能够有很多非主文件流住宿在主文件流中。它应用資源继承来保持与文件有关的信息内容,尽管我们无法见到数据流文件,可是它确是真正存有于大家的系统软件中的。

利用ntfs互换数据流隐藏文件的方法很早以前就出現了,详细介绍利用这类方法来隐藏webshell的文章内容也许多。这类隐藏方法关键对于一句话木马,由于假如被包括的文件为马来西亚则失去隐藏的实际意义(若被包括的文件为马来西亚,会立即自动跳转到马来西亚网页页面,原网页页面也就等同于被伪造了,非常容易便会被发觉)。前几天干了个检测,却察觉自己手头上常常应用的好多个webshell查杀专用工具竟然都检验不出来,最好是的結果只报了一个异常文件包括,便考虑到亲自动手写一写。

总体逻辑性非常简单,最先遍历web应用所属的文件夹,找到全部利用ntfs互换数据流隐藏的文件,构成一个list;次之遍历全部.asp文件(以asp为例子),找到全部选用了包括头的.asp文件,将其途径做为value,将被包括的文件途径做为key,创建一个dict。与以前的list做比照,若在dict中发觉了存有于list中的原素,则判断它为webshell,最终将其途径輸出,并另外将包括它的.asp文件途径輸出。简言之便是以这一包括了ntfs互换数据流文件的姿势来判断它是不是为webshell。

应用到的windows指令:dir /r #显示信息文件的预留数据流

图片 1.png

简易科谱下,windows的畸型目标目录有很多种多样,一般就是指文件名中存有好几个.号,比如\\a…\\,用户界面下无法打开和删掉,命令行界面也只有根据windows的短文件名开展浏览。

Windows的保存文件名,比如aux、prn、con、nul、com1~9、lpt1~9这些,windows不允许客户以基本方法自主建立,但能够根据copy或是echo等指令再加上网络位置\\\\.\\来建立,浏览还要在绝对路径前再加上\\\\.\\来浏览(比如type )。

利用的情况下能够单种应用还可以一起应用,比如C:\\inetpub\\wwwroot\\a…\\aux.asp

大家必须采用指令:dir /x #显示信息为非 8.3 文件名造成的短名字

图片 2.png

这儿出示了2个涵数,searchSFN()找到运用文件目录中全部畸型目标目录相匹配的短文件名和全部windows保存文件名,回到2个文件目录目录,deleteSFN()决策是不是删掉她们。

0X03 驱动器隐藏webshell(Easy File Locker)

驱动器隐藏的基本原理是在windows的表针遍历到一个文件夹的时,提升一个文件夹尺寸的偏移,立即绕过文件夹,进而做到隐藏的目地。如今最普遍到的驱动器隐藏一般是依靠第三方软件Easy File Locker完成的,两年前也就存有了,可是介绍我自己检测的結果吧,手头上的webshell查杀专用工具全军覆灭,没有一个能体现出一点印痕的。简易写了个涵数用以查询是不是存有Easy File Locker的服务项目并删掉。利用了windows下的sc qc xlkfs、net stop xlkfs和sc delete xlkfs三条指令,xlkfs是Easy File Locker的服务项目名。(这儿写出脚本制作方式是为了更好地便捷事后写出软件添加传统式查杀专用工具,不然立即应用指令就可以)

针对这几类根据毁坏遍历标准的隐藏方法,实际上都能够从其隐藏的姿势立即判断它便是心怀不轨的文件,要不然为何要做贼心虚的隐藏呢?但更靠谱的方法便是先修复遍历,让被隐藏的文件都可以被遍历到,随后再对文件开展基本的查杀。第一部分和第二一部分出示的涵数的最后目地全是为了更好地最终出示相匹配的可浏览的目标目录目录,第三一部分终止并删除了Easy File Locker的服务项目,文件当然就修复了可遍历性。这儿出示的涵数独立还可以应用,但更强烈推荐的作法是将其写出软件的方式添加传统式查杀的专用工具中,使文件可以被遍历后,再对文件开展基本查杀标准的搭配。Github上面有许多 python的webshell查杀新项目,搭配的一些特点库哪些的早已很全了,写出软件添加后亲自测试实际效果非常好,大伙儿有兴趣爱好能够自身伸伸手去完成。

(之上试验自然环境根据windows server 2008r2 standard,iis 7.0)

郑重声明:

果E安全网所有活动均为互联网所得,如有侵权请联系本站删除处理,转载请注明本站地址。

我来说两句