webshell连接工具冰蝎检测特征提取

2023-11-01 16:10

本文主要是介绍webshell连接工具冰蝎检测特征提取,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1⃣️、概述

        冰蝎作为新款的webshell连接工具,使用效果非常好。本文主要从冰蝎使用过程产生的流量里提取检测特征。部分提取思路从基于流量侧检测冰蝎webshell交互通讯获得了启发。后经过测试发现了关于冰蝎工具的通用检测特征(针对目前已公开的版本)。下面详细介绍本文内容。

2⃣️、各版本对比

        目前冰蝎共分为六个版本分别是:V1.0、V1.1、V1.2、V1.2.1、V2.0、V2.0.1。其中从V1.1开始(包含V1.1)新增随机UserAgent支持,每次会话会从17种常见UserAgent中随机选取。其中各版本详细区别看参考冰蝎各版本更新日志。

3⃣️、流量分析

        以下部分主要描述基于流量侧检测冰蝎webshell交互通讯?️没有介绍到的或者笔者经过测试后与其的不同点。以及提取关于冰蝎工具的通用特征
        测试环境:

win7 x64运行服务端分别包含phpStudy、java version "10.0.2、apache-tomcat-9.0.10、IIS。
win7 x32运行客户端java version “1.8.0_171”、各版本冰蝎工具。

        针对PHP类型,都需要开启扩展openssl冰蝎工具才能正常连接上。

V1.0

        针对V1.0版本的冰蝎工具,笔者经过模拟测试php-webshell如下所示:
V1.0
        如下图所示是首包的关键信息:

首包请求方法GET
User-Agent:Java/1.8.0_171
完整URL172.16.103.169/shell.php?pass=1
首包响应状态码200
Content-Length:16
响应内容b748de2f2e199344

        以下是首个POST包的关键信息:

请求方法POST
User-Agent:Java/1.8.0_171
响应状态码200
Transfer-Encoding:chunked

        从首包请求中可以了解到,首包完整的请求URL?️包含了webshell的密码(pass),此处需要考虑的是当密码”pass“变化的时候,请求URL是否也会变化呢?以及响应体长度为16Byte,并且User-Agent为Java/1.8.0_171,经过对比可发现此处的User-Agent的值与测试机JAVA环境有关,故不能作为检测特征。
        在首个POST包?️请求测User-Agent为Java/1.8.0_171,响应头?️出现Transfer-Encoding: chunked,通过检索可发现在动态网页?️都有可能出现此值,因此POST方法+“Transfer-Encoding: chunked“的检测误报率也会挺大的。
        到这里可以针对V1.0可以想到的检测特征就是针对请求首包的检测。关键点分别如下:

1、请求方法
2、请求URL
3、响应状态码
4、响应体长度
5、响应体内容

V1.1

        冰蝎工具从V1.1开始(包含V1.1)新增随机UserAgent支持,每次会话会从17种常见UserAgent中随机选取。
        如下图所示是针对V1.1冰蝎版本的php类webshell的测试:
V1.1        以下所示是V1.1首包的关键信息:

首包请求方法GET
完整URL172.16.103.169/shell.php?pass=1224142732
首包响应状态码200
Content-Length:16
响应内容821d6147c3f2d9bc

        以下所示是V1.1首个POST包的关键信息:

请求方法POST
响应状态码200
Transfer-Encoding:chunked

        在V1.1版本?️除了user-agent:其他信息和V1.0都很类似。

V2.0.1

        以下是V2.0.1的php测试记录,如下图所示:
V2.0.1
        以下所示是V2.0.1(php)首包的关键信息:

首包请求方法GET
完整URL172.16.103.169/shell.php?pass=230
首包响应状态码200
Content-Length:16
响应内容86aa2b3ba044f7af

        以下是V2.0.1的asp测试记录,如下图所示:
V2.0.1-asp
        以下所示是V2.0.1(asp)首包的关键信息:

首包请求方法GET
完整URL172.16.103.169/shell.php?pass=621
首包响应状态码200
Content-Length:16
响应内容7F4FFE3A66F63D50

        通过对V2.0.1的asp、php类型的测试发现首个请求包和V1.0也是及其类似。

更换密码“pass”

        以下所示为更换了密码“pass”后在V2.0.1?️php类型的测试结果,密码更换为了“chopper”。
Vchopper
        以下所示是V2.0.1(php)更换密码后首包的关键信息:

首包请求方法GET
完整URL172.16.103.169/shell.php?chopper=146
首包响应状态码200
Content-Length:16
响应内容c4854b8ab7e8fc39

4⃣️、通用特征提取

        通过以上旧版本与新版本冰蝎工具做对比发现从请求首包提取检测特征是较为准确的。其中关键元素如下:

1、请求方法
2、请求URL
3、响应状态码
4、响应体长度
5、响应体内容

请求方法

        此处默认为GET

请求方法

        在请求URL?️webshell密码会嵌套其中,如“pass”、“chopper”。因此请求URL?️需要用正则表达式进行匹配。如下所示:
在这里插入图片描述

响应状态码

        此处默认为200

响应体长度

        此处默认为16

响应体内容

        此处需要进行正则匹配如下所示:
在这里插入图片描述

5⃣️、规则验证

        此处直接利用yara规则匹配数据包进行规则验证即可。如下所示为规则内容:
在这里插入图片描述
        yara检测结果如下:
在这里插入图片描述

6⃣️、总结

        冰蝎作为一款新的webshell连接工具与中国菜刀等不同的是其使用的是特定webshell且通信?(加密),用户反应效果好。与此同时各大厂商也给出了自己的检测规则,笔者此处用的yara检测由于没?️进行区别请求/响应测误报率应该不小。

7⃣️、奉上资源

        所有信息如有侵权,请及时与我联系!!!
        1、yara3.4.0
        2、冰蝎下载地址
        3、参考文章(@12306小哥)
        4、关于blog?️什么不对的地方或者疑问烦请评论区留言或者私信哈。
        5、关于blog用到的数据包等,如有需要请在评论区留下Email。

这篇关于webshell连接工具冰蝎检测特征提取的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/dianzhongsou2379/article/details/100599116
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/324179

相关文章

java连接opcua的常见问题及解决方法

《java连接opcua的常见问题及解决方法》本文将使用EclipseMilo作为示例库,演示如何在Java中使用匿名、用户名密码以及证书加密三种方式连接到OPCUA服务器,若需要使用其他SDK,原理... 目录一、前言二、准备工作三、匿名方式连接3.1 匿名方式简介3.2 示例代码四、用户名密码方式连接4

MySQL 表的内外连接案例详解

《MySQL表的内外连接案例详解》本文给大家介绍MySQL表的内外连接,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录表的内外连接(重点)内连接外连接表的内外连接(重点)内连接内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

电脑蓝牙连不上怎么办? 5 招教你轻松修复Mac蓝牙连接问题的技巧

《电脑蓝牙连不上怎么办?5招教你轻松修复Mac蓝牙连接问题的技巧》蓝牙连接问题是一些Mac用户经常遇到的常见问题之一,在本文章中,我们将提供一些有用的提示和技巧,帮助您解决可能出现的蓝牙连接问... 蓝牙作为一种流行的无线技术,已经成为我们连接各种设备的重要工具。在 MAC 上,你可以根据自己的需求,轻松地

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行