-->
当前位置:首页 > 实验 > 正文内容

【实验目的】

  • Webshell介绍

  • Luz4年前 (2020-12-11)实验2469

【实验目的】

  • Webshell介绍

  • 理解Webshell是什么,有什么作用

  • webshell的查杀

【实验原理】

1.Webshell简介

  webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。

  顾名思义,"web"的含义是显然需要服务器开放web服务,"shell"的含义是取得对服务器某种程度上操作权限。webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。


  由上图可见,一个完整的webshell会有很多的功能,而现在国内webshell又有了多次变化,比如小马的产生等等。

2.webshell的主要分类: 基于功能强弱

  • 全功能型:几乎包含所有功能

  • 文件管理:基本的文件管理

  • 命令执行:执行系统命令

  • 上传型:负责上传"大马",其他提权文件

  • 一句话型:极简

3.webshell可实现的功能:

  • 文件管理

  • 执行命令

  • 扫描端口

  • 系统信息

  • mysql执行

  • mysql管理

  • 其他数据库管理

  • 扫描木马

  • 反弹链接

  • 等等

【实验步骤】

步骤1:webshell是什么

  1.1 简单的说来,webshell就是一个木马后门,黑客在入侵了一个网站后,常常在将这些 木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。

  然后黑客就可以用web的方式,通过木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。

  1.2 为了更好的理解webshell,我们收入另外两个概念。

  木马:全称是"特洛伊木马(Trojan Horse)",原指古希腊士兵藏在木马内进入敌方城市从而占领敌方城市的故事。在Internet上,"特洛伊木马"指一些程序设计人员在其可从网络上下载 (Download)的应用程序或游戏中,包含了可以控制用户的计算机系统的程序,可能造成用户的系统被破坏甚至瘫痪。

  后门:后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。但是,如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成了安全风险,容易被黑客当成漏洞进行攻击。

  eg:网页后门,线程后门,扩展后门,C/S后门,账号后门等。

步骤2:检测webshell

  2.1 工具检测是最基础的,比如利用悬镜服务器卫士,D盾等工具


 

图3

  2.2 但不管是什么工具都是基于规则和方法的,下面就列举了几种检测方法:

  静态检测

  静态特征检测是指对脚本文件中所使用的关键词、高危函数、文件修改的时间、文件权限、文件的所有者以及和其它文件的关联性等多个维度的特征进行检 测,即先建立一个恶意字符串特征库,例如:"组专用大马|提权|木马|PHP\s?反弹提权cmd执行","WScript.Shell、 Shell.Application、Eval()、Excute()、Set Server、Run()、Exec()、ShellExcute()",同时对WEB文件修改时间,文件权限以及文件所有者等进行确认。通常情况下 WEB文件不会包含上述特征或者特征异常,通过与特征库的比对检索出高危脚本文件。

  该检测方法的优点:可快速检测,快速定位;

  缺点:容易误报,无法对加密或者经过特殊处理的Webshell文件进行检测。尤其是针对窃密型Webshell无法做到准确的检测,因为窃密型Webshell通常具有和正常的WEB脚本文件具有相似的特征。

  动态检测

  动态特征检测通过Webshell运行时使用的系统命令或者网络流量及状态的异常来判断动作的威胁程度,Webshell通常会被加密从而避免静态 特征的检测,当Webshell运行时就必须向系统发送系统命令来达到控制系统或者操作数据库的目的,通过检测系统调用来监测甚至拦截系统命令被执行,从 行为模式上深度检测脚本文件的安全性。

  优点:可用于网站集群,对新型变种脚本有一定的检测能力。

  缺点:针对特定用途的后门较难检测,实施难度较大。

  日志分析

  使用Webshell一般不会在系统日志中留下记录,但是会在网站的web日志中留下Webshell页面的访问数据和数据提交记录。日志分析检测 技术通过大量的日志文件建立请求模型从而检测出异常文件,称之为:HTTP异常请求模型检测。例如:一个平时是GET的请求突然有了POST请求并且返回 代码为200、某个页面的访问者IP、访问时间具有规律性等。
  优点:采用了一定数据分析的方式,网站的访问量达到一定量级时这种检测方法的结果具有较大参考价值。
  缺点:存在一定误报,对于大量的访问日志,检测工具的处理能力和效率会比较低。

  统计学

  在Webshell后门检测中被使用较为广泛的一种方法是统计学方法,NeoPi是国外流行的一个基于统计学的Webshell后门检测工具,它使用五种计学方法在脚本文件中搜索潜在的被混淆或被编码的恶意代码。

  NeoPi使用以下五种检测方法:

  • 1、信息熵(Entropy):通过使用ASCII码表来衡量文件的不确定性;

  • 2、最长单词(Longest Word):最长的字符串也许潜在的被编码或被混淆;

  • 3、重合指数(Index of Coincidence):低重合指数预示文件代码潜在的被加密或被混效过;

  • 4、特征(Signature):在文件中搜索已知的恶意代码字符串片段;

  • 5、压缩(Compression):对比文件的压缩比。

  采用这种检测方法也存在明显的弱点,NeoPi的检测重心在于识别混淆代码,它常常在识别模糊代码或者混淆编排的木马方面表现良好。未经模糊处理的 代码对于NeoPi的检测机制较为透明。如果代码整合于系统中的其它脚本之上,这种"正常"的文件极可能无法被NeoPi识别出来。 

  建立机器学习日志分析系统

  由于数据库操作记录日志量非常大,使用人工的方法难以进行精确筛选和审计。所以需要建立一套机器自学习的日志审计系统。该日志审计系统主要基于查询模型白名单学习与数学统计模型这两方面进行设计。
  查询模型白名单学习系统:

  在一个网站系统中,由于系统业务逻辑相对固定,执行的数据库查询语句可以归类并且是可预测的,基于这些事实可以建立一套自学习系统,在无人值守的状态下进行无监督的机器学习。在对日志进行泛化处理之后,根据特征(包括时间,查询语句,参数等)建立N维的特征向量。使用k-均值聚类算法对日志进行初步分组。其中对参数的处理使用局部加权线性回归算法预测参数类型。对聚类后的数据进行抽样,使用贝叶斯决策树进行抽样结果的机器决策。

  数学统计模型系统:

  由于窃密型web应用脚本后门只服务于入侵者,所执行的查询语句也是超出业务系统正常使用逻辑的,在一个有一定访问量级的业务系统中,窃密使用的查询语句是执行量最少的。对业务系统数据库的日志进行参数归一化处理后,正常应用中的查询语句与窃密使用的语句从数量上来看一定有数量级的差距。可以建立查询语句的统计模型,也可以对窃密型Webshell行为进行审计。

 

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。