温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
WebShell
应急
响应
检测
方法
研究
实践
物联网技术 2023年/第8期 智能处理与应用Intelligent Processing and Application1080 引 言WebShell 通常指网站服务器的后门恶意文件,是一种以可执行网页脚本文件的形式存在于 Web 服务器上,一般具有文件上传下载、在线编辑、数据库操作、命令执行等功能,因经常与常规的网页文件混合保存在同一个目录中,具有极强的隐蔽性。WebShell 可以轻松绕过防火墙,不被防火墙拦截,同时对它的操作只在 Web 日志中留下使用痕迹,而不会在系统日志中留下数据操作的痕迹。网络入侵者通过网站文件上传、SQL注入等漏洞植入WebShell到网站服务器目录上,应用专门的后门管理工具进行连接恶意文件成功后,从而达到持续控制网站服务器权限目的。1 WebShell 分类WebShell 分类通常有两种形式:一种是按照脚本语言类型划分;另一种就是按照脚本功能和大小划分。1.1 脚本类型分类常见的Web网页形式有PHP语言、ASP语言、JSP语言等,因此 WebShell 划分为 PHP、ASP 和 JSP 三种类型1,常见的 WebShell 脚本见表 1 所列。(1)PHP 类型 WebShell 脚本PHP(Hypertext Preprocessor)为 超 文 本 预 处 理 器,PHP 可以支持常见的 MySQL、Oracle 等数据库和常见的Windows 和 Linux 操作系统,适合用来做 Web 动态网站开发,并可以把它嵌入到 HTML 语言中。表 1 WebShell 分类简单脚本WebShell 分类WebShell 简单脚本PHP 型 WebShell 脚本ASP 型 WebShell 脚本JSP 型 WebShell 脚本(2)ASP 类型 WebShell 脚本ASP(Active Server Page)为活动服务器网页,用于各种动态网站服务的开发,与数据库和其他应用程序交互也是非常方便,支持 Windows 操作系统上 IIS 服务器运行的 程序。(3)JSP 类型 WebShell 脚本JSP(Java Server Page)是一种动态 Web 资源的开发技术。JSP 是在传统的网页 HTML 文件中插入 Java 程序段和JSP 标记,从而形成 JSP 文件。1.2 脚本大小和功能分类按照 WebShell 的大小和功能将其划分为一句话木马、小马和大马三类。(1)一句话木马型 WebShell。顾名思义就是文件内容只有一句话,如表 1 中的 WebShell 简单脚本所示,传入的参数方法常有 POST、GET 和 Request 方法。POST 方法提交的参数可以使用中国菜刀、蚁剑等远程管理工具连接目标受害服务器;GET 方法提交的参数通过 URL 地址形式WebShell 应急响应检测方法研究与实践朱振南,金京犬(安徽邮电职业技术学院,安徽 合肥 230031)摘 要:互联网上的 Web 信息系统的飞速发展,给人们的生活和办公上带来了便利。然而,近年来网络安全事件频发,暴露出互联网的 Web 信息系统面临的风险和其脆弱性。作为网站服务器的后门恶意文件,即 WebShell,其具有极强的隐蔽性,是黑客入侵网站的重要手段,直接影响着互联网上 Web 信息系统的安全与效率。因此,对WebShell 的分析和研究就显得极为重要。鉴于此,讨论 WebShell 的分类方法,分析了两种 WebShell 的上传方法,给出了当前 WebShell 检测的主流方法,介绍了 WebShell 应急响应的一般流程。最后给出一个 Windows 操作系统服务器,针对 WebShell 应急响应处置流程进行实验。实验结果表明,结合现有的 WebShell 检测和响应技术可以保障Web 信息系统的安全性、可用性和稳定性。关键词:应急响应;WebShell 检测;Web 信息系统;网络安全;WebShell 分类;Web 日志分析中图分类号:TP393.08 文献标识码:A 文章编号:2095-1302(2023)08-0108-03收稿日期:2022-07-15 修回日期:2022-09-02基金项目:安徽省高校自然科学重点研究项目(2022AH052959)阶段性研究成果DOI:10.16667/j.issn.2095-1302.2023.08.0292023年/第8期 物联网技术智能处理与应用Intelligent Processing and Application109连接目标受害服务器;Request 方法提交的参数既可以使用POST 方法又可以使用 GET 方法连接目标受害服务器。假设 IP 地址为 192.168.1.6 目标服务器根目录下有一个隐藏的GET 类型的一句话木马文件.a.php,利用访问方式 http:/192.168.1.6/.a.php?cmd=system(cat/flag.txt);获取敏感文件/flag.txt 内容,如图 1 所示,参数 cmd 是攻击者远程控制服务器的连接密码。图 1 一句话木马利用(2)小马型 WebShell。该类型功能比较简单,文件容量也是比较小,一般用来创建后者上传大马 WebShell 文件。如图 2 所示,利用小马 small.php 创建一个新的文件 New.php,其功能是可以绕过各大杀毒软件、安全狗、D 盾的php 类型的一句话恶意文件,且连接密码为“1”。图 2 小马创建 New.php(3)大马型 WebShell。该类型 WebShell 功能比较齐全,体积较大。把文件上传与下载、编辑、数据库管理、提权等功能集在一个 GUI 界面,操作方便。图 3 是经典的大马操作界面。图 3 经典大马 GUI 界面2 WebShell 上传方法当网站中存在高危漏洞,攻击者利用这些高危漏洞就可以把 WebShell 上传到网站,网站的访问权限被进一步提升,常见的 WebShell 上传方法有以下两种。2.1 利用文件上传漏洞上传 WebShell网站中经常需要上传一些像图片、Word 和 Excel 等附件,但是有时候仅仅实现了文件上传功能,没有对用户输入的数据做严格的过滤,存在文件上传漏洞。文件上传漏洞是最常见上传 WebShell 的方法。有些网站只是在前端 JavaScript 做控制,这种控制方法没有任何实际效果,攻击者可以通过浏览器开发者模式绕过。利用文件上传漏洞绕过上传 WebShell方式有多种,如通过黑名单、双写、大小写、00 截断、服务器解析和图片码等方式绕过服务器,进而上传恶意的WebShell。2.2 利用 SQL 注入漏洞上传 WebShell网站中某些功能经常需要和数据库进行交互操作,比如搜索框、登录框、注册入口等,攻击者通过构造一些 SQL语句拼接在原程序设计的语句之后,从而导致数据库受损被脱库、删除,甚至整个服务器权限沦陷。结合 union 联合查询方法和 into outfile 方法,把 WebShell 写入到指定的文件中,例如可以采用 payload:xxx union select into outfile/var/www/html/1.php#,把一句话木马写入到网站的根目录下 1.php 的文件中。使用 into outfile 方法写入 WebShell 到指定文件中有 3 个限制条件,即需要知道远程目录、需要远程目录有写权限、需要数据库开启了 secure_file_priv 选项功能。3 WebShell 检测方法WebShell 典型检测方法有静态检测、动态检测、日志检测和基于机器学习检测四大研究方向。各类检测方法的比较见表 2 所列。表 2 WebShell 检测方法比较WebShell检测方法检测时间范围优 点缺 点静态检测入侵实施前检测实现简单,对于已知WebShell 检测效率高误报漏报率高动态检测入侵执行时检测能检测出未知 WebShell,误报率低实现困难,时效性差日志检测入侵执行后检测实现简单,效果明显日志数据庞大,检测效率低机器学习检测入侵实施前检测准确率高学习算法设计困难,误报率高3.1 基于静态的 WebShell 检测基于静态的检测方法2主要是检测 WebShell 文件本身,通过预先设计好的正则表达式检测文件内容是否包含有执行系统的高危函数、特征值等属性,这类检测方法要求特征库全面、正则表达式的数据处理能力强,但对于变形、加密、免杀处理和新型未知的 WebShell 不能识别,导致漏报率 很高。3.2 基于动态的 WebShell 检测基于动态的检测方法3主要是通过检测敏感函数和流量分析方法,抓取攻击者和目标服务器之间互动的协议层面流物联网技术 2023年/第8期 智能处理与应用Intelligent Processing and Application110量,分析 WebShell 关联特征,包括 payload 特征、文件大小、文件执行权限等。这类检测方法对于已知和未知的 WebShell检测效果都很好,但是访问流量数据比较大,在时效性方面还有待进一步研究提高。3.3 基于日志的 WebShell 检测基于日志的 WebShell 检测4是通过海量的日志数据建立检测模型,对常见的多种日志提取和综合分析,可有效识别 WebShell 的上传行为。这类检测方法是在已经入侵实事的基础上进行检测,同时日志数据庞大,实时性差。3.4 基于机器学习的 WebShell 检测传统针对 WebShell 的检测方法耗时耗力、漏报和漏报率比较高、检测效果也不是很明显特点。近年来,很多前辈研究学者们提出了基于机器学习检测 WebShell 的方法5。基于机器学习算法有很强的数据自处理能力以及特征自学习能力,这类检测方法主要是依赖机器学习算法的选择,前辈研究学者提出了将决策树算法6、随机森林改进算法、K 近邻算法等融入到 WebShell 检测算法中,检测的准确率得到了提高,同时降低了误报率和漏报率。4 WebShell 应急响应流程可以使用同源文件比较快速地定位 WebShell 的位置,查看 Web 日志文件,分析异常访问流量。WebShell 应急响应流程如图 4 所示。图 4 WebShell 应急响应流程(1)可以使用一些类似 D 盾和河马 WebShell 的 Web 查杀工具,扫描网站根目录,判断 WebShell 创建的时间和攻击范围,以便后续依据该时间进行溯源分析;(2)对网站的 Web 访问日志和错误日志进行重点分析,特别是攻击时间前后的日志信息,从而判断攻击者的攻击 路径;(3)分析网站中可能存在漏洞的位置,并对已发现的漏洞进行复现,还原攻击者的活动路径;(4)清除已知存在的 WebShell,对系统和网站应用程序进行安全加固,修复已知漏洞。5 WebShell 应急响应实践某 文 件 管 理 应 用 系 统 采 用 asp 语 言 开 发,搭 建 在Windows 操作系统服务器上,在一次巡检过程中,发现文件管理系统后台登录页面被篡改,应急响应处置流程7如下:Step1:WebShell 排查。利用检测工具 D 盾扫描网站根目录,发现 WebShell 痕迹,查看对应的文件内容,确认为WebShell,如图 5 所示。通过 D 盾扫描结果定位 WebShell位于网站的根目录 D:Webupfileaffix 下,文件的创建时间为 2021 年 12 月 22 日 16 时 34 分至 38 分。图 5 D 盾扫描 WebShellStep2:Web 日志分析。分析相应时间范围内的 Web 应用日志文件,发现有一个终端 IP 地址为 172.*.*.20 在 2021 年 12 月 16 日试图多次登录网站服务器管理后台,但都没有登录成功,如图 6 所示。图 6 登录后台失败事件在 2021 年 12 月 21 日,发现入侵者通过用户 down 账号成功连接到数据库,如图 7 所示,并使用数据库里面的管理员账号成功登录网站服务