【服务器防护】WEB防护 - WEBSHELL攻击探测【转载】
原文:http://www.2cto.com/Article/201511/451757.html
1. 什么是webshell?
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日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。我们一般可以从以下几方面对安全性进行处理:
【服务器防护】WEB防护 - WEBSHELL攻击探测【转载】的更多相关文章
- 阿里云Web应用防火墙采用规则引擎、语义分析和深度学习引擎相结合的方式防护Web攻击
深度学习引擎最佳实践 {#concept_1113021 .concept} 阿里云Web应用防火墙采用多种Web攻击检测引擎组合的方式为您的网站提供全面防护.Web应用防火墙采用规则引擎.语义分析和 ...
- web攻击之八:溢出攻击(nginx服务器防sql注入/溢出攻击/spam及禁User-agents)
一.什么是溢出攻击 首先, 溢出,通俗的讲就是意外数据的重新写入,就像装满了水的水桶,继续装水就会溢出,而溢出攻击就是,攻击者可以控制溢出的代码,如果程序的对象是内核级别的,如dll.sys文件等,就 ...
- 【渗透课程】第四篇-Web安全之信息探测
Web之信息探测,从这篇开始就正式进入了Web渗透实战过程了,嗯,前面都是讲基础,下面我们来讲Web中的信息探测. 信息探测,主要的目的 收集目标服务器系统信息(IP,服务器所用系统等) 收集目标网站 ...
- [转帖]龙芯服务器部署WEB服务的体验和详细步骤
龙芯服务器部署WEB服务的体验和详细步骤 2019年01月02日 18:40:34 weixin_40065369 阅读数 1733 版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权 ...
- [web安全]Web应用漏洞攻击分析与防范
网站攻击主要分为以下几类: (1) sql注入攻击 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.它是利 ...
- [转帖]JavaEE中Web服务器、Web容器、Application服务器区别及联系
JavaEE中Web服务器.Web容器.Application服务器区别及联系 https://www.cnblogs.com/vipyoumay/p/5853694.html 在JavaEE 开发W ...
- 利用Squid反向代理搭建CDN缓存服务器加快Web访问速度
2011年11月26日 ? Web服务器架构 ? 评论数 2 案例:Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入访问用户:电信宽带用户.移动宽带用户出现 ...
- 【转】一种新型的Web缓存欺骗攻击技术
为了减少WEB响应时延并减小WEB服务器负担,现在WEB缓存技术已经用的非常普遍了,除了专门的CDN,负载均衡以及反向代理现在也会缓存一部分的网页内容.这里我要介绍一种WEB缓存欺骗攻击技术,这种攻击 ...
- m2014-architecture-imgserver->利用Squid反向代理搭建CDN缓存服务器加快Web访问速度
案例:Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入访问用户:电信宽带用户.移动宽带用户出现问题:电信用户打开www.abc.com正常,移动用户打开ww ...
随机推荐
- EF查询分页
static List<T> GetPageList(Func<T,bool> whereLambda,Func<T,object> orderLambda,int ...
- 排序练习——找出前m大的数字 分类: 排序 2015-06-08 09:33 21人阅读 评论(0) 收藏
排序练习--找出前m大的数字 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 给定n个数字,找出前m大的数字. 输入 多组输 ...
- CSUFT 1004 This is Halloween: Saving Money
1004: This is Halloween: Saving Money Time Limit: 1 Sec Memory Limit: 128 MB Submit: 11 So ...
- 测可用!ecshop立即购买和加入购物车按钮共存的方法
网上方法很多,但都不能用的,有的是老版本的,有的方法本身就不完整. 应大多数客户要求,我们重新整理下教程,希望对大家有用. 亲测可用!ecshop立即购买和加入购物车按钮共存的方法 第一步:修改ecs ...
- Objective-C学习笔记_命令行参数获取
找到编译目录下执行myapp >./myapp param1 param2 在应用中可以这样来获取param1/param2 NSProcessInfo *proc = [NSProcessIn ...
- Hashtable与ConcurrentHashMap区别
Hashtable与ConcurrentHashMap区别 ConcurrentHashMap融合了hashtable和hashmap二者的优势. hashtable是做了同步的,是线性安全的,(2) ...
- 配置Python+selenium+firefox自动化测试
1.安装python.默认安装 2.安装pip.下载pip-1.5.4包,解压pip-1.5.4,放在C盘,进入pip目录-->键入命令:python setup.py install 再进入 ...
- TCP、UDP
双方都是一种网络传输协议 2.TCP需要建立连接,而UDP不需要建立连接(无连接传输) 3.是否建立真实连接的特性,造成了双方可靠性的差距. TCP属于可靠的传输协议:因为传输前双方建立好了连接,相当 ...
- Linux Shell脚本面试25问
Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件( ...
- 【转载】在Linux中使用VS Code编译调试C++项目
原文:在Linux中使用VS Code编译调试C++项目 最近项目需求,需要在Linux下开发C++相关项目,经过一番摸索,简单总结了一下如何通过VS Code进行编译调试的一些注意事项. 关于VS ...