原文:http://www.2cto.com/Article/201511/451757.html

1. 什么是webshell?

    基于b/s架构的软件部署在Internet上,那么安全性是必须要关注的,攻击者可以采用各种方式进行攻击,获取系统的控制权,其中webshell是常见的攻击方式。
    Webshell是攻击者在被攻击网站上植入的asp、php、jsp程序文件,攻击者在入侵了一个web系统后,常常在将这些asp、php、jsp木 马后门文件放置在web服务器的web目录中,与正常的网站文件混在一起。然后攻击者就可以通过正常的web访问方式,访问其植入asp、php、jsp 程序木马后门控制web服务器,包括创建、修改、删除文件,上传下载文件,查看数据库,执行任意程序命令等。
    webshell攻击应用于所有基于b/s结构的系统,包括网站、OA(www.chysoft.net)、CRM、ERP等等。

2. webshell的分类

  大马、小马、一句话马

  

2.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。

2.2上传"小马"

在不能直接上传“大马”Webshell的情况下黑客通常会上传一个“小马”以协助完成上传“大马”或者上传一句话Webshell并配合一个客户端实现控制服务器,这里我们也不讨论如何上传“小马”以及一句话Webshell。我们只讨论如何利用“小马”来上传“大马”。

这种方式的特殊点在于不是一个完整的文件在网络中中传输而是一个存在于HTTP协议中的一个参数在网络中传输,传输参数的方式既可能是GET也可能是POST,我们来看下面一个真实的例子:

 

在上图中我们不难发现这显然是使用一句话木马客户端通过POST的形式正在上传一个Webshell的脚本代码,并且将内容写入一句话木马相同目录 下的一个body.asp的文件当中,从而实现上传“大马”。在截取到的流量数据中可以发现,如:act= body.asp value=Execute等payload,通过在检测这些payload就可以在上传的过程中分析Webshell及其行为。

2.3. 访问过程中的Payload

于Webshell是被制作用来控制服务器或者窃取机密信息的,要实现这些能力攻击者就必须向Webshell发送一些控制指令从而操作Webshell。在控制指令中通常包含特征明显的攻击payload。我们来观察一下如下几种payload:

上图中显然是Webshell正在试图连接网站的数据库,并且攻击者使用的是POST的方式向Webshell提交连接参数,其中可以发现的 payload 有:action=sqladmin,dbhost=localhost,dbport=3306,dbuser=root,dbpass=1qaz2wsx,connect=connect 等。

3、webshell的检测

参考文章:http://www.sec-un.org/ideas-like-article-espionage-webshell-method.html

Webshell的检测的三种手段

从安全防护能力看,检测是第一位的能力,webshell的检测主要有以下几种方式:

(1)基于流量的webshell检测引擎

方便部署,通过流量镜像直接分析原始信息。基于payload的行为分析,不仅对已知webshell进行检测,还能识别出未知的、伪装性强的 webshell。对webshell的访问特征(IP/UA/Cookie)、payload特征、path特征、时间特征等进行关联分析,以时间为索 引,还原攻击事件。

(2)基于文件的webshell分析引擎

检测是否包含webshell特征,例如常用的各种函数。检测是否加密(混淆处理)来判断是否为webshell文件hash检测,创建webshell 样本hashing库,进行对比分析可疑文件。对文件的创建时间、修改时间、文件权限等进行检测,以确认是否为webshell沙箱技术,根据动态语言沙 箱运行时的行为特征进行判断

(3)基于日志的webshell分析引擎

支持常见的多种日志格式。对网站的访问行为进行建模,可有效识别webshell的上传等行为对日志进行综合分析,回溯整个攻击过程。

三种检测方式,基于文件的检测,很多时候获取样本的部署成本比较高,同时仅仅靠样本无法看到整个攻击过程。基于日志的有些行为信息在日志中看不到,总体来说还是基于“流量”的看到的信息最多,也能更充分的还原整个攻击过程。

4. webshell的应对措施

了解了webshell的基本原理之后,最关键的防止器植入asp、php、jsp等木马程序文件,使用webshell一般不会在系统日志中 留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。我们一般可以从以下几方面对安全性进行处理:

1、Web软件开发的安全
    A、程序中存在文件上载的漏洞,攻击者利用漏洞上载木马程序文件。
    B、防sql注入、防暴库、防COOKIES欺骗、防跨站脚本攻击。
2、服务器的安全和web服务器的安全
    A、服务器做好各项安全设置,病毒和木马检测软件的安装(注:webshell的木马程序不能被该类软件检测到),启动防火墙并关闭不需要的端口和服务。
    B、提升web服务器的安全设置
    C、对以下命令进行权限控制(以windows为例):
    cmd.exe net.exe net1.exe ping.exe netstat.exe ftp.exe tftp.exe telnet.exe
3、ftp文件上载安全
    设置好ftp服务器,防止攻击者直接使用ftp上传木马程序文件到web程序的目录中
4、文件系统的存储权限
    设置好web程序目录及系统其它目录的权限,相关目录的写权限只赋予给超级用户,部分目录写权限赋予给系统用户。
  将web应用和上传的任何文件(包括)分开,保持web应用的纯净,而文件的读取可以采用分静态文件解析服务器和web服务器两种服务器分 别读取(Apache/Nginx加tomcat等web服务器),或者图片的读取,有程序直接读文件,以流的形式返回到客户端。
5、不要使用超级用户运行web服务
    对于apache、tomcat等web服务器,安装后要以系统用户或指定权限的用户运行,如果系统中被植入了asp、php、jsp等木马程序文件,以超级用户身份运行,webshell提权后获得超级用户的权限进而控制整个系统和计算机。

【服务器防护】WEB防护 - WEBSHELL攻击探测【转载】的更多相关文章

  1. 阿里云Web应用防火墙采用规则引擎、语义分析和深度学习引擎相结合的方式防护Web攻击

    深度学习引擎最佳实践 {#concept_1113021 .concept} 阿里云Web应用防火墙采用多种Web攻击检测引擎组合的方式为您的网站提供全面防护.Web应用防火墙采用规则引擎.语义分析和 ...

  2. web攻击之八:溢出攻击(nginx服务器防sql注入/溢出攻击/spam及禁User-agents)

    一.什么是溢出攻击 首先, 溢出,通俗的讲就是意外数据的重新写入,就像装满了水的水桶,继续装水就会溢出,而溢出攻击就是,攻击者可以控制溢出的代码,如果程序的对象是内核级别的,如dll.sys文件等,就 ...

  3. 【渗透课程】第四篇-Web安全之信息探测

    Web之信息探测,从这篇开始就正式进入了Web渗透实战过程了,嗯,前面都是讲基础,下面我们来讲Web中的信息探测. 信息探测,主要的目的 收集目标服务器系统信息(IP,服务器所用系统等) 收集目标网站 ...

  4. [转帖]龙芯服务器部署WEB服务的体验和详细步骤

    龙芯服务器部署WEB服务的体验和详细步骤 2019年01月02日 18:40:34 weixin_40065369 阅读数 1733   版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权 ...

  5. [web安全]Web应用漏洞攻击分析与防范

    网站攻击主要分为以下几类: (1) sql注入攻击 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.它是利 ...

  6. [转帖]JavaEE中Web服务器、Web容器、Application服务器区别及联系

    JavaEE中Web服务器.Web容器.Application服务器区别及联系 https://www.cnblogs.com/vipyoumay/p/5853694.html 在JavaEE 开发W ...

  7. 利用Squid反向代理搭建CDN缓存服务器加快Web访问速度

    2011年11月26日 ? Web服务器架构 ? 评论数 2 案例:Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入访问用户:电信宽带用户.移动宽带用户出现 ...

  8. 【转】一种新型的Web缓存欺骗攻击技术

    为了减少WEB响应时延并减小WEB服务器负担,现在WEB缓存技术已经用的非常普遍了,除了专门的CDN,负载均衡以及反向代理现在也会缓存一部分的网页内容.这里我要介绍一种WEB缓存欺骗攻击技术,这种攻击 ...

  9. m2014-architecture-imgserver->利用Squid反向代理搭建CDN缓存服务器加快Web访问速度

    案例:Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入访问用户:电信宽带用户.移动宽带用户出现问题:电信用户打开www.abc.com正常,移动用户打开ww ...

随机推荐

  1. EF查询分页

    static List<T> GetPageList(Func<T,bool> whereLambda,Func<T,object> orderLambda,int ...

  2. 排序练习——找出前m大的数字 分类: 排序 2015-06-08 09:33 21人阅读 评论(0) 收藏

    排序练习--找出前m大的数字 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 给定n个数字,找出前m大的数字.   输入  多组输 ...

  3. CSUFT 1004 This is Halloween: Saving Money

    1004: This is Halloween: Saving Money Time Limit: 1 Sec      Memory Limit: 128 MB Submit: 11      So ...

  4. 测可用!ecshop立即购买和加入购物车按钮共存的方法

    网上方法很多,但都不能用的,有的是老版本的,有的方法本身就不完整. 应大多数客户要求,我们重新整理下教程,希望对大家有用. 亲测可用!ecshop立即购买和加入购物车按钮共存的方法 第一步:修改ecs ...

  5. Objective-C学习笔记_命令行参数获取

    找到编译目录下执行myapp >./myapp param1 param2 在应用中可以这样来获取param1/param2 NSProcessInfo *proc = [NSProcessIn ...

  6. Hashtable与ConcurrentHashMap区别

    Hashtable与ConcurrentHashMap区别 ConcurrentHashMap融合了hashtable和hashmap二者的优势. hashtable是做了同步的,是线性安全的,(2) ...

  7. 配置Python+selenium+firefox自动化测试

    1.安装python.默认安装 2.安装pip.下载pip-1.5.4包,解压pip-1.5.4,放在C盘,进入pip目录-->键入命令:python setup.py install  再进入 ...

  8. TCP、UDP

    双方都是一种网络传输协议 2.TCP需要建立连接,而UDP不需要建立连接(无连接传输) 3.是否建立真实连接的特性,造成了双方可靠性的差距. TCP属于可靠的传输协议:因为传输前双方建立好了连接,相当 ...

  9. Linux Shell脚本面试25问

    Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件( ...

  10. 【转载】在Linux中使用VS Code编译调试C++项目

    原文:在Linux中使用VS Code编译调试C++项目 最近项目需求,需要在Linux下开发C++相关项目,经过一番摸索,简单总结了一下如何通过VS Code进行编译调试的一些注意事项. 关于VS ...