1.概述
笔者一直在重视webshell的安全剖析,最近就这段时刻的心得体会和咱们做个共享。
webshell一般有三种检测办法:
依据流量方法 依据agent方法(本质是直接剖析webshell文件) 依据日志剖析方法
Webshell的分类笔者总结如下:
前段时刻因为作业的需求完结了一个Webshell检测体系,依据其时的需求写了一篇关于运用依据Agent模型和依据日志剖析模型来检测服务器上的文件是否是Webshell的文章,原文能够拜见:
http://www.sec-un.org/ideas-like-article-espionage-webshell-method.html
2.依据流量的webshell检测考虑
在研讨了上述两种模型的检测之后就考虑能否在网络流量上完结Webshell剖析和检测。毕竟要完结Agent模型和日志剖析模型需求的本钱太大不只要考虑兼容性问题还需求考虑性能及安全性的问题,而假如选用流量(网关)型检测的话本钱和布置难度会减小许多,所以有了此文依据流量(网关型)的Webshell检测办法。
要完结通过网络流量检测Webshell首要就需求对流量进行“可视化”,“可视化”的办法有许多能够学习现在市场上一些老练的结构来完结这儿就不再多述。咱们首要评论在Webshell被上传到服务器及Webshell在拜访进程中网络流量中发生的payload来完结Webshell检测。
3.上传进程中的Payload
咱们知道正常的网站在有需求的情况下一般会答应上传一些“无害”的文件可是不会答应上传以脚本文件方法存在的文件例如:PHP、ASP、JSP等,而Webshell就是以这种脚本文件的方法存在而且被服务器解析的。在上传进程中尽管不会呈现一些进犯payload。可是要向服务器上传文件所以也会发生一些和上传相关的Payload。下面咱们评论一下常见的两种上传的Webshell的方法即上传“大马”和“小马”。
3.1上传"大马"
这种办法通过POST直接上传一个Webshell文件或许通过简略的变形然后上传到服务器上,如下面的一个比如:
2009-02-10 06:32:58 W3SVC77065997 XXXX.XXXX.XXXX.XXXX POST /lesson_manage/upload/40/ASP.asp – 80 – XXXX.XXXX.XXXX.XXXX Mozilla/4.0+compatible;+MSIE+6.0; 200 0 0
从上面这条拜访记载中能够发现如下要害特:POST upload ASP.asp 200 通过这几个要害特征的就能够剖分出ASP.php可能是一个疑似Webshell。
3.2上传"小马"
在不能直接上传“大马”Webshell的情况下黑客一般会上传一个“小马”以帮忙完结上传“大马”或许上传一句话Webshell并合作一个客户端完结操控服务器,这儿咱们也不评论怎么上传“小马”以及一句话Webshell。咱们只评论怎么运用“小马”来上传“大马”。
这种办法的特别点在于不是一个完好的文件在网络中中传输而是一个存在于HTTP协议中的一个参数在网络中传输,传输参数的办法既可能是GET也可能是POST,咱们来看下面一个实在的比如:
在上图中咱们不难发现这显然是运用一句话木马客户端通过POST的方法正在上传一个Webshell的脚本代码,而且将内容写入一句话木马相同目录下的一个body.asp的文件傍边,然后完结上传“大马”。在截取到的流量数据中能够发现,如:act= body.asp value=Execute等payload,通过在检测这些payload就能够在上传的进程中剖析Webshell及其行为。
4.拜访进程中的Payload
于Webshell是被制造用来操控服务器或许盗取秘要信息的,要完结这些才能进犯者就必须向Webshell发送一些操控指令然后操作Webshell。在操控指令中一般包括特征显着的进犯payload。咱们来调查一下如下几种payload:
上图中显然是Webshell正在企图衔接网站的数据库,而且进犯者运用的是POST的办法向Webshell提交衔接参数,其间能够发现的payload有:action=sqladmin,dbhost=localhost,dbport=3306,dbuser=root,dbpass=1qaz2wsx,connect=connect等。
咱们再看一个由闻名一句话Webshell管理工具“菜刀”长途操控“菜刀马”并宣布的指令的流量数据:
上图中看出“菜刀”运用了base64的办法加密了发送给“菜刀马”的指令,通过剖析咱们能够调查到其间的两个要害payload z1和z2。
z1=Y21k& z2=Y2QgL2QgIkQ6XHd3d1xxaHJkd3dcIiZ3aG9hbWkmZWNobyBbU10mY2QmZWNobyBbRV0%3D
通过解密加密的内容能够得到解密的payload
z1=cmd z2=cd /d “D:wwwqhrdww”&whoami&echo [S]&cd&echo [E]7
解密之后的payload就尤为显着了,从中咱们能够找到cd /d cmd whoami echo [S] &cd &echo [E]7等payload.
通过必定的payload堆集和规矩的定制再通过和其它检测进程相结合能够构成一套依据流量剖析Webshell剖析引擎,而且能够该引擎能够很便利的嵌入到现有的网关型设备或云上完结Webshell的深度剖析。
[1] [2] [3] [4] [5] 黑客接单网