蓝队技能-应急响应篇Web内存马查杀Spring框架型中间件型JVM分析Class提取

news2024/9/27 4:49:00

知识点:
1、应急响应-Web框架内存马-分析&清除
2、应急响应-Web中间件内存马-分析&清除

注:框架型内存马与中间件内存马只要网站重启后就清除了。
在这里插入图片描述

目前Java内存马具体分类:

1、传统Web应用型内存马

Servlet型内存马:动态注册Servlet及映射路由。

Filter型内存马:动态注册Filter及映射路由。

Listener型内存马:动态注册Listener中的处理逻辑。

哥斯拉是不支持植入Listener型内存马,这里可以用https://github.com/pen4uin/java-memshell-generator项目去生成

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、框架型内存马

SpringController型内存马:动态注册Controller及映射路由。

SpringInterceptor型内存马:动态注册Interceptor及映射路由。

Spring框架启动(Controller型内存马和Interceptor型内存马)
d:\jdk1.8.0_112\bin\java.exe -jar springinject-0.0.1-SNAPSHOT.jar(已经打包好的内存马环境,也是访问某个路径注入内存马)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用只能使用arthas监控工具排查
在这里插入图片描述

sc * | grep Controller

在这里插入图片描述

sc * | grep Interceptor

在这里插入图片描述

jad --source-only com.example.springinject.demos.web.myInjectController3

在这里插入图片描述

jad --source-only com.example.springinject.demos.web.testInjectInterceptor

在这里插入图片描述
清除:
Jar包中删除对应class文件
在这里插入图片描述
在这里插入图片描述

Spring Webflux型内存马:动态注册WebFilter及映射路由。

Spring WebFlux框架启动(Webflux型内存马)
d:\jdk1.8.0_112\bin\java.exe -jar WebFluxMem-0.0.1-SNAPSHOT.jar(已经打包好的内存马环境,直接运行这个jar文件就直接注入了,任意路由)
在这里插入图片描述
在这里插入图片描述
arthas使用语法:
关键字筛选 常规shell触发代码关键字

memshell shell os runtime
sc * | grep Memshell

在这里插入图片描述

jad --source-only com.example.webfluxmem.WebFluxFilterMemshell

在这里插入图片描述

3、中间件型内存马

Tomcat Valve型内存马:动态注册Valve。

哥斯拉不支持该类型内存马植入,只能用脚本方式植入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Tomcat其他类型(如Upgrade、Executor、Poller)的内存马

这些内存马会动态替换或添加全局组件。

4、其他中间件(如Grizzly)的内存马(未讲到)

动态注册Filter及映射路由。其他内存马:

WebSocket型内存马:动态注册WebSocket路由及处理逻辑。

Tomcat JSP型内存马:动态注册Tomcat JSP管理逻辑并实现驻留。

线程型内存马:启动一个无法被杀死的线程。

RMI型内存马:动态启动一个RMI Registry。

5、Agent型内存马(未讲到)

通过Hook并修改关键方法添加恶意逻辑。Agent型内存马在现代webshell管理工具中有广泛实现。

6、检测项目

项目1:arthas(实时监控提取方便调试,需要自行排查找到可疑类)

能排查几乎所有内存马技术
https://github.com/alibaba/arthas

d:\jdk1.8.0_112\bin\java.exe -jar arthas-boot.jar

项目2:shell-analyzer(自动提取需要自己排查)

https://github.com/4ra1n/shell-analyzer
能排查:Filter,Servlet,Listener,Valve类型

项目3:java-memshell-scanner(自动提取排查)

https://github.com/c0ny1/java-memshell-scanner
能排查:Filter,Servlet,Listener类型

7、蓝队内存马大概排查思路

1、弄清楚当前环境的组织架构:中间件 框架等
2、对应查找可能类型的内存马技术
如:框架 springboot
3、基于上述信息想到用何种项目工具便于分析
如:项目 arthas (gui 脚本其他项目不支持)

注意:
不同内存马类型查杀arthas检测:有的是基于内存马固定的后缀,名字,文件中的常见关键字去找到可疑类然后去定性

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

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

相关文章

探索EasyCVR视频融合平台:在视频编解码与转码领域的灵活性优势

随着视频监控技术的飞速发展,各类应用场景对视频数据的处理需求日益复杂多样。从公共安全到智慧城市,再到工业监控,高效、灵活的视频处理能力成为衡量视频融合平台性能的重要标准。在众多解决方案中,EasyCVR视频融合平台凭借其在视…

Java面试题之JVM20问

1、说说 JVM 内存区域 这张图就是一个 JVM 运行时数据图,「紫色区域代表是线程共享的区域」,JAVA 程序在运行的过程中会把他管理的内存划分为若干个不同的数据区域,「每一块儿的数据区域所负责的功能都是不同的,他们也有不同的创建…

Django设计批量导入Excel数据接口(包含图片)

Django设计批量导入Excel数据接口(包含图片) 目录 Django设计批量导入Excel数据接口(包含图片)示例xlsx文件接口详情前端上传FormData后端APIView调用函数 Django 4.2.7 openpyxl 3.1.5示例xlsx文件 接口详情 前端上传FormData …

2-104 基于MATLAB的动态模式分解(Dynamic Mode Decomposition,DMD)

基于MATLAB的动态模式分解(Dynamic Mode Decomposition,DMD),从人类步行数据中提取信息.动态模式分解是一种降维算法,在流体力学领域引入的。与提供内部坐标系和相应投影的SVD相似,DMD为您提供随不同时间行为演变的特定…

【架构】前台、中台、后台

文章目录 前台、中台、后台1. 前台(Frontend)特点:技术栈: 2. 中台(Middleware)特点:技术栈: 3. 后台(Backend)特点:技术栈: 示例场景…

PMOS的原理

PMOS(金属氧化物半导体场效应晶体管)是一种以空穴为主要载流子的场效应管,它的D极(漏极)、S极(源极)和G极(栅极)的工作原理如下: 1. D极(漏极&am…

已存在的Python项目使用依赖管理工具UV

1. 文档 uv文档 2. 如何转换 初始化 uv initrequirements.txt转换成pyproject.toml uv add $(cat requirements.txt)删除requirements.txt 如果更新pyproject.toml之后,使用命令 uv sync替换项目环境 如果有库没有加入依赖,自己手动加一下&am…

详解电力物联网通常使用哪些通信规约?

在电力物联网行业中,通信规约是关键的技术之一,用于实现电网设备与控制中心之间的数据通信和信息管理。本篇就为大家简单说明电力物联网通常使用哪些通信规约。 1、IEC 60870-5-101/104 这是由国际电工委员会(IEC)制定的一系列标…

微信小程序配置prettier+eslint

虽然微信开发者工具是基于vscode魔改的.但是由于版本过低,导致很多插件也用不上新版本.所以在微信开发者工具限制的版本下使用的prettier,eslint也是有版本要求. 本文主要就是记录一下需要的版本号 1.微信开发者工具安装插件 2.package.json中添加以下依赖及安装依赖 "de…

【HarmonyOS】组件长截屏方案

【HarmonyOS】普通组件与web组件长截屏方案:原则是利用Scroll内的组件可以使用componentSnapshot完整的截屏 【普通组件长截屏】 import { componentSnapshot, promptAction } from kit.ArkUI import { common } from kit.AbilityKit import { photoAccessHelper }…

增量式编码器实现原理

目录 概述 1 认识增量式编码器 1.1 概述 1.2 增量式编码器的特性 1.3 编码器的硬件 2 增量式编码器实现原理 2.1 编码器信号 2.2 正反转判断 概述 本文主要介绍增量式编码器实现原理,包括增量式编码器的特性,信号特性,以及如何使用编…

【稳定且高效的分治排序 —— 归并排序算法】

【稳定且高效的分治排序 —— 归并排序算法】 归并排序(Merge sort)是建立在归并操作上的一种有效、稳定的排序算法,采用分治法的典型应用。将已有序的子序列合并,得到完全有序的序列,即先使每个子序列有序&#xff0…

深度探索与实战编码:利用Python与AWS签名机制高效接入亚马逊Product Advertising API获取商品详情

亚马逊商品详情接口技术贴及代码示例 在电商数据分析和产品管理中,获取商品的详细信息是至关重要的一环。亚马逊作为全球领先的电商平台,提供了丰富的商品数据和强大的API接口,使得开发者能够轻松获取商品的详细信息。本文将详细介绍如何使用…

NASA:ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006数据集

目录 简介 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATLAS/ICESat-2 L3A Along Track Inland Surface Water Data V006 简介 ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006 ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006是指由ATLAS/ICESat-2卫星获取的针对陆地…

矿石运输船数据集、散货船数据集、普通货船数据集、集装箱船数据集、渔船数据集以及客船数据集

海船:用于船只检测的大规模精准标注数据集 我们很高兴地介绍一个新的大规模数据集——海船,该数据集专为训练和评估船只目标检测算法而设计。目前,这个数据集包含31,455张图像,并涵盖了六种常见的船只类型,包括矿石运…

en造数据结构与算法C# 二叉排序树 泛型类的基本构成

前置知识:二叉树 en造数据结构与算法C# 二叉树的顺序存储和前中后序遍历-CSDN博客 二叉排序树基本规则 二叉排序树的特点就是有序,其基本规则分为两个点 1.按照顺序去存储节点(下图绿色的顺序) 2.其次,在第一点的基础上,比…

python之装饰器、迭代器、生成器

装饰器 什么是装饰器? 用来装饰其他函数,即为其他函数添加特定功能的函数。 装饰器的两个基本原则: 装饰器不能修改被装饰函数的源码 装饰器不能修改被装饰函数的调用方式 什么是可迭代对象? 在python的任意对象中&#xff…

Centos 7.9 Kubeadm安装k8s1.20.11

一、环境 主机用途192.168.76.140k8s-master1192.168.76.141k8s-node1 二、设置yum源 由于系统已经关闭,可以用centos9尝试 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak vi /etc/yum.repos.d/CentOS-Base.repo# 使用阿里云的y…

ARM基础架构-文档导读系列

第一章 简介 Introducing the Arm architecture 第二章 指令集 Armv8-A Instruction Set ArchitectureLearn the architecture -A64 Instruction Set Architecture 第三章 指令集 ARM异常模型GICv3 v4 overviewGeneric Interrupt Controller v3 and v4, VirtualizationArm…

皮肤病检测-目标检测数据集(包括VOC格式、YOLO格式)

皮肤病检测-目标检测数据集(包括VOC格式、YOLO格式 数据集: 链接:https://pan.baidu.com/s/1XNTo-HsBCHJp2UA-dpn5Og?pwdlizo 提取码:lizo 数据集信息介绍: 共有 2025 张图像和一一对应的标注文件 标注文件格式提供…