0x00 内存马概述
内存马(Memory Shell) 是一种无文件驻留的恶意代码技术,通过直接修改Java容器的运行时内存(如Servlet容器、Spring上下文)实现持久化控制。与传统WebShell相比具有无文件落地、无日志特征、重启失效的特点。
攻击场景
- 反序列化漏洞:通过Fastjson/WebLogic等漏洞注入
- JSP后门植入:利用上传漏洞写入内存马加载器
- 中间件漏洞:Tomcat Filter/Servlet动态注册
主流类型
| 类型 | 驻留机制 | 检测难度 |
|---|---|---|
| Servlet型 | 动态注册恶意Servlet | ★★☆☆☆ |
| Filter型 | 插入恶意过滤器链 | ★★★☆☆ |
| Listener型 | 注册生命周期监听器 | ★★★★☆ |
| Controller型 | 植入Spring MVC控制器 | ★★★★★ |
0x01 内存马原理
技术架构
以Tomcat Filter型内存马为例,攻击流程如下:
漏洞触发 → 获取StandardContext → 创建恶意Filter →
插入Filter链首 → 持久化到内存Context
核心代码分析
- 获取当前Context(通过ThreadLocal):
WebappClassLoaderBase classLoader = (WebappClassLoaderBase) Thread.currentThread().getContextClassLoader();
StandardContext context = (StandardContext) classLoader.getResources().getContext();
- 动态注册Filter:
FilterDef filterDef = new FilterDef();
filterDef.setFilterNam

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



