蓝队的自我修养之如何从流量中检测 WebShell

news2024/11/25 7:48:20

HW期间,为防范钓鱼,即日起FreeBuf将取消投稿文章的一切外部链接。给您带来的不便,敬请谅解~

背景

众所周知,攻防演练过程中,攻击队入侵企业网站时,通常要通过各种方式获取
webshell,从而获得企业网站的控制权,然后方便实施之后的入侵行为。在冰蝎、哥斯拉这类加密型 webshell
工具出现之前,中国菜刀、蚁剑这类工具常被攻击队使用,与菜刀和蚁剑不同,冰蝎和哥斯拉使用加密隧道传输数据,不易被安全设备发现,同时,无文件内存
webshell 的兴起,给检测带来了更大的压力。因此,对这类加密型 webshell 和无文件内存 webshell 的检测是非常有必要的。

难点

当前,这类加密型 webshell 检测存在以下难点:* 使用加密隧道传输数据,无明文通讯特征。* 内存 webshell 无文件落地。

目标

通过攻防演练的实践,总结一套关于加密 webshell 和内存 webshell 的检测方法,分析和总结该类 webshell
通讯特征,通过流量及时准确的发现主机失情况,及时处理。

方法论

当出现一个新型 webshell 工具时,我们可以通过如下几个方面总结相关特征,从而实现相关检测。

* webshell 样本:分析 webshell 的执行逻辑,提取 webshell 执行过程中必须存在的函数、参数,对该类 webshell 实现上传、写入的检测。* 通讯过程中必存在参数:分析 webshell 服务端和客户端,提取因实现问题而在交互过程中必须存在的参数。* 加密算法特征:分析该 webshell 通讯过程中的加密方法,获取该加密方法生成的密文所在集合。* 工具本身 bug:因为工具是人力开发的,难以避免会存在一些 bug,这些 bug 可以成为识别该类工具的特征。* 与正常业务不符:分析通讯过程中,该 webshell 和正常业务的不同,可以粗略的筛选出可能异常的通讯。

案例

我们将从以上方法论总结的几种方法,举例说明如何提取特征。

###上传样本

可以通过对上传的样本进行检测,从而发现威胁。我们可以通过分析这类 webshell 工具的源码,提取生成的 webshell
的特征,从而实现检测。以下以哥斯拉为例,可以看到其生成webshell 时导入一个模板,根据模板生成相应的
webshell,所以我们总结生成模板的特征,即可对这类上传行为进行准确的检测。

###通讯过程中必存在参数

在冰蝎 3.0 的服务端,是通过如下代码读取 post 请求。request.getReader().readLine()

代码的意思是,直接读取 post 请求中 body 的内容。所以请求的 http 中,content-type 一定为 application/octet-
stream。否则就会出现非预期 http 编码的情况。这类特征属于通讯过程中必存在参数,可以通过这类特征的组合,对相关 webshell
通讯进行检测(这里仅做举例,这类检测肯定为多特征结合)。

###加密方法存在的一些弱特征

冰蝎通讯时,会建立加密通讯隧道,主要请求体和返回体内容有如下三种情况:

请求体加密方式

|

返回体加密方式—|—AES后 Base64

|

AES后 Base64AES后 Base64

|

AESAES

|

AES对于 AES 后 Base64 加密,其加密后所有值落在 [a-zA-Z0-9+=],很容易通过正则去覆盖。

对于 AES 加密,其加密后的值无 Base64 中相关特征,但是,可以明显看出,密文内容中不可见字符明显增多。可以通过不可见字符进行检测,从而覆盖对
AES 这类加密后的请求体或返回体的识别。

这类仅为一些弱特征,仅举例说明,需要多特征组合,才能实现准确的检测。

###工具本身的 bu g

这类工具都是人力开发的,难免存在一些 bug,我们可以通过找到这些 bug,从而在流量中识别出该类工具。如在冰蝎某一版本中,php 相关 webshell
通讯在一个 http 请求报文中存在两个 PHPSESSID,这属于工具的 bug,可以通过该 bug 以及其他一些特征,识别出该工具。

###与正常业务不符

对于无文件内存 webshell,攻击者为了隐藏攻击行为,将注入 webshell 的路径选为静态文件路径,如 jpg、ico、png
等,但这样就会存在一些异于正常的行为,如请求静态文件返回内容不同、带请求体请求静态文件等。以下为一个冰蝎内存 webshell 的示例。

总结

在本文中,我们总结了从流量中寻找加密型 webshell 和无文件内存 webshell 的特征方法,分别是:* webshell 样本* 通讯过程中必存在参数* 加密方法特征* 工具本身的 bug* 与正常业务不符

在实战测试中,通过上述几点,对加密型 webshell 和无文件内存 webshell
的通讯流量进行分析,总结相关弱特征和强特征,多种特征结合,可以准确识别这类 webshell 的通讯过程,及时处置和发现失陷主机。

webshell 和无文件内存 webshell
的通讯流量进行分析,总结相关弱特征和强特征,多种特征结合,可以准确识别这类 webshell 的通讯过程,及时处置和发现失陷主机。

最后

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,有需要的小伙伴,可以【扫下方二维码】免费领取:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/835246.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

unity TextMeshPro 富文本

<b>粗体标签</b> <i>斜体标签</i> <u>下划线标签</u> <s>删除线标签</s> <sup>上标标签</sup>前面后边上标签 5<sup>。</sup>C <sub>下标标签&#xff0c;如&#xff1a;</sub>H<sub&…

JS进阶-Day2

&#x1f954;&#xff1a;万物皆有裂痕&#xff0c;那是光照进来的地方 JS进阶-Day1——点击此处&#xff08;作用域、函数、解构赋值等&#xff09; JS 进阶 - Day2 深入对象构造函数&#xff08;⭐&#xff09;面试小题&#xff1a; 实例成员静态成员&#xff08;⭐&#xf…

微信小程序nodejs+vue+uniapp高校食堂线上预约点餐系统

本次设计任务是要设计一个食堂线上预约点餐系统&#xff0c;通过这个系统能够满足管理员及学生的食堂线上预约点餐分享功能。系统的主要包括首页、个人中心、学生管理、菜品分类管理、菜品管理、关于我们管理、意见反馈、系统管理、订单管理等功能。 开发语言 node.js 框架&am…

【Opencv入门到项目实战】(二):图像阈值与平滑处理

文章目录 1.图像阈值处理1.1简单阈值处理&#xff08;Simple Thresholding&#xff09;1.2自适应阈值处理&#xff08;Adaptive Thresholding&#xff09;1.3Otsus阈值处理 2.平滑处理1.1均值滤波&#xff08;Mean Filter&#xff09;1.2高斯滤波&#xff08;Gaussian Filter&a…

FPGA纯verilog实现Gzip数据压缩deflate算法,提供工程源码和技术支持

目录 1、前言2、我这儿已有的FPGA压缩算法方案3、FPGA Gzip数据压缩功能和性能4、FPGA Gzip数据压缩设计方案输入输出接口描述数据处理流程LZ77压缩器哈夫曼编码输出缓存 数据输出说明特殊说明 5、vivado仿真6、vivado工程7、上板调试验证FPGA开发板测试本zip算法对比于评估 8、…

【JDK版本差异】Optional.requireNonNullElseGet在JAVA8中的替代表述

Objects.requireNonNullElseGet 是 Java 9 引入的方法&#xff0c;不在 Java 8 中可用。但是&#xff0c; 可以使用 Java 8 的一些功能来模拟类似的效果。 快速查阅 JDK9以上表述&#xff1a; this.principalFactory Objects.requireNonNullElseGet(principalFactory, Defau…

如何测出 Scratch 的指令反应时间

相信看了标题&#xff0c;你一定会很吃惊&#xff0c;你会觉得scratch不是没有反应时间吗&#xff1f; 但其实不是&#xff0c;这也是我偶然间发现的&#xff0c;这期的内容较少&#xff0c;对你的技术涨幅很小&#xff0c;但可以当作娱乐来看 其实就7个代码&#xff0c;但看着…

(自控原理)线性系统的时域分析法

目录 一、系统时间响应的性能指标 1、典型输入信号 2、动态性能与稳态性能 二、一阶系统的时域分析 1、一阶系统的数学模型 2、一阶系统的单位阶跃响应 三、二阶系统的时域分析 1、二阶系统的数学模型 2、二阶系统的单位阶跃响应 3、欠阻尼二阶系统的动态过程分析 4…

redis原理 5:同舟共济 —— 事务

为了确保连续多个操作的原子性&#xff0c;一个成熟的数据库通常都会有事务支持&#xff0c;Redis 也不例外。Redis 的事务使用非常简单&#xff0c;不同于关系数据库&#xff0c;我们无须理解那么多复杂的事务模型&#xff0c;就可以直接使用。不过也正是因为这种简单性&#…

国内版ChatGPT平替

想体验的朋友可以去微信搜索小程序 “ robot buddy ”

2024年杭州电子科技大学MEM项目招生信息全面了解

2024年全国管理类硕士联考备考已经到了最火热的阶段&#xff0c;不少考生开始持续将注意力集中在备考的规划中&#xff01;杭州达立易考教育整合浙江省内的MEM目信息&#xff0c;为大家详细梳理了相关报考参考内容&#xff0c;方便大家更好完成择校以及针对性的备考工作。本期为…

【Spring Boot】Thymeleaf模板引擎 — Thymeleaf表达式

Thymeleaf表达式 本节介绍Thymeleaf的各种表达式&#xff0c;通过一些简单的例子来演示Thymeleaf的表达式及用法。 1.变量表达式 变量表达式即获取后台变量的表达式。使用${}获取变量的值&#xff0c;例如&#xff1a; <p th:text"${name}">hello</p>…

Windows Server 2012 R2 安装 Oracle RAC 11g R2

Windows Server 2012 R2 安装 Oracle RAC 11g R2 环境准备安装系统设置虚拟网络配置虚拟机网卡开机进行系统配置关闭防火墙设置网络系统高级设置修改注册表修改计算机名称设置账户控制RAC1 和 RAC2 的磁盘共享修改 hosts同步时间在 RAC1 RAC2 DATA 中安装 .net3.5在 DATA 中搭建…

windows下redis的下载和安装

文章目录 1 下载2 打开解压文件&#xff0c;可以看到以下内容3 使用命令进行安装和注册redis到window服务4 查看服务 1 下载 https://github.com/MicrosoftArchive/redis/releases 2 打开解压文件&#xff0c;可以看到以下内容 3 使用命令进行安装和注册redis到window服务 …

一文学透设计模式——抽象工厂模式

创建者模式 抽象工厂模式 概念 抽象工厂模式是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 这是很多地方对于抽象工厂模式的描述&#xff0c;说实话感觉不是特别好懂。…

ResNet-残差网络一

文章目录 残差网络深度网络退化残差结构残差网络对比测试plain net VS residual net不同的shrotcut connection残差网络增加层数 著名的残差网络主要是在两片论文里提出&#xff1a; Deep Residual Learning for Image RecognitionIdentity Mappings in Deep Residual Networks…

yolov8在rknn(rv1109/1126)模型转换、量化移植过程

续&#xff1a;rv1109/1126 rknn 模型量化过程_CodingInCV的博客-CSDN博客 Yolov8简介 yolov8是比较新的目标检测模型&#xff0c;根据论文和开源项目的报告&#xff0c;相对使用比较广泛的yolov5提升还比较明显。 yolov8与yolov5相比&#xff0c;结构上的主要区别是将C3结构…

hutool Sm2加解密-自定义公钥私钥

代码 首先说结论&#xff0c;hutool 的SM2对象的公钥私钥是不关联的&#xff0c;你可以存自己的私钥和别人的公钥&#xff0c;这样解密的时候只要协商好就能用了&#xff0c;以下是调换公钥私钥的加解密案例 公钥格式 04公钥x公钥y //使用自定义的公钥私钥生成sm2Testpubli…

android资深工程师如何分析system_server异常

Android系统中的System Server负责管理许多关键功能&#xff0c;例如进程管理、电源管理等。如果System Server出现异常&#xff0c;可能会导致系统重启或部份功能失效。作为Android资深工程师&#xff0c;分析System Server的异常状况时&#xff0c;考虑以下步骤&#xff1a;查…

晶澳转债上市价格预测

晶澳转债 基本信息 转债名称&#xff1a;晶澳转债&#xff0c;评级&#xff1a;AA&#xff0c;发行规模&#xff1a;89.603077亿元。 正股名称&#xff1a;晶澳科技&#xff0c;今日收盘价&#xff1a;31.71元&#xff0c;转股价格&#xff1a;38.78元。 当前转股价值 转债面值…