当前位置: 首页 > news >正文

Java 内存马应急响应与查杀全指南

内存马(无文件马)由于不落地硬盘,传统的杀毒软件和文件完整性监控往往难以察觉。完整的查杀流程需要从内存态、流量态和运行态综合入手。

一、 发现与告警(蛛丝马迹)
(笔记补充:在实战中,告警往往是第一驱动力)

除日常的 CPU/内存飙升外,蓝队监控岗应重点关注以下异常:

流量特征告警:

冰蝎/哥斯拉特征:即便流量加密,连接建立时的强特征(如特定的 Accept、Cache-Control 头,或特定的密码参数如 pass=)仍可能触发 WAF 告警。

请求路径异常:如笔记中所述,对静态资源(.css, .js, .jpg)或不存在的 .ico 发起 POST 请求,且响应码为 200,并伴随大量数据返回。

中间件日志异常:

关注 access_log 中高频访问的未知单一接口。

关注日志中无 Referer、User-Agent 异常(如 Java/1.8.x)的请求。

RASP 告警:

如果企业部署了 RASP(运行时应用自我保护),可以直接捕捉到 Runtime.exec() 或恶意类加载的底层行为。

二、 核心定位(抓出现行)
(笔记补充:细化 Arthas 的实操命令和自动化工具)

除了 jmap 导 dump 文件用 MAT 分析外,实战中最常用的是 Arthas 和 自动化排查工具。

  1. 自动化扫描(首选推荐)
    在紧张的护网中,纯手工排查较慢,通常先上工具盲扫:

cop.jar / java-memshell-scanner:这类工具可以通过 Attach API 注入到运行的 JVM 中,自动扫描出恶意的 Filter、Servlet、Listener 或基于 Java Agent 注入的类。

  1. Arthas 手工排查指令集
    如果扫描工具未覆盖,或需要确认细节,使用 Arthas 进行精准打击:

排查 Filter/Servlet 内存马:
恶意内存马通常名字随机(如 Filter12345)或伪装成正常类(如 LoginFilter)。

Bash

查找所有包含 Filter 的类,重点观察类加载器和没有对应 class 文件的类

sc *.Filter

查找可能被篡改的 Tomcat 核心组件

sc org.apache.catalina.core.ApplicationFilterChain
排查 Spring Interceptor 内存马:

Bash
sc org.springframework.web.servlet.HandlerInterceptor
观察可疑类的反编译代码:
发现可疑类名后,直接反编译看源码,寻找 Runtime.exec、ProcessBuilder、Base64 解码等恶意逻辑。

Bash
jad com.example.VulnFilter
三、 内存马的提取与留存(取证)
在清除之前,必须将恶意类 dump 下来作为攻击证据,用于后续的溯源分析。

Bash

使用 Arthas 将可疑类 dump 到指定目录

dump -d /tmp/memshell com.example.VulnFilter
四、 内存马的清除(拔除毒瘤)
(笔记补充:这是原笔记缺失的关键一步)

  1. 终极方案:重启 Web 容器(推荐)
    原理:内存马寄生于 JVM 内存中,重启 Tomcat/WebLogic 会彻底释放内存,内存马随之灰飞烟灭。

前提:必须先阻断攻击者的植入途径(修复漏洞),否则重启后攻击者可以再次打入。

  1. 动态清除:通过代码卸载(业务不可中断时)
    如果核心业务绝对不允许重启,需要编写特定的 JSP 脚本或利用 Arthas 动态注销组件。

利用 Arthas 的 redefine 或 retransform:
如果攻击者修改了正常的类(如 ApplicationFilterChain),可以将正常的 class 文件重新覆盖回去。

编写 JSP 杀马脚本:
利用反射机制,获取 Tomcat 的 StandardContext,找到恶意的 Filter/Servlet 实例,将其从 FilterMaps 和 FilterDefs 中动态 remove 掉。

五、 漏洞溯源(闭环)
(笔记补充:蓝队初级向中级进阶的核心能力)

内存马只是攻击的结果,不是原因。清除了内存马如果不补漏洞,等于没修。

寻找入口点(RCE 漏洞):
内存马必须通过代码执行漏洞才能注入。回顾告警前几小时甚至几天的流量,重点排查:

反序列化漏洞:如 Fastjson(关注 {"@type":...} 流量)、Shiro(关注巨大的 rememberMe Cookie)、WebLogic XMLDecoder 等。

文件上传漏洞:是否上传了包含注入内存马逻辑的 JSP 文件。

框架 RCE:如 Struts2、ThinkPHP 等历史高危漏洞利用。

修复加固:

升级易受攻击的组件版本(如 Fastjson 升级到安全版本或开启 SafeMode)。

收敛外部资产暴露面。

http://www.jsqmd.com/news/779217/

相关文章:

  • 进阶实战:基于 QiweAPI 构建智能客服机器人(回调与自动化回复)
  • qq邮箱更换电脑登入,需要采用原来手机验证方式-采用短信验证无效,估计是bug——官方网址的不同版本,还有往期怀旧版。
  • 如何在Dev-C++中设置TDM-GCC编译器
  • 基于Claude API的智能代码助手:claudepilot-openclaw项目深度解析
  • 2026年5月中高端求职猎头服务公司选择指南与职比特服务解析 - 得赢
  • 基于开源LLM框架构建领域对话机器人:从ChatPiXiu到实战应用
  • 为什么 Hive 无法通过同步 JDBC 导出百万级数据?
  • 伯远生物:解锁杨树“基因密码”,遗传转化原来这么简单!
  • EasyInstruct框架:模块化指令处理与高质量数据集构建实战
  • 石家庄旅行社去五台山旅游-石家庄去五台山的大巴车(天天发车) - 好物推荐官
  • Cache缓存项目学习3
  • eMule设置IP绑定
  • 基于Git与API自动化的多平台内容分发系统设计与实践
  • 仿生机器人手ExoHand:气动驱动与触觉反馈的工程实践
  • 从资源收藏到实战应用:构建个人提示工程知识体系的系统指南
  • 大厂逼员工用AI:是提效神器,还是裁员前的形式主义套路?
  • 从2E服务写入超长DID说起:一个案例拆解Autosar UDS诊断中‘非主流’的帧交互流程
  • neon源码分析(5)计算层使用slru的一些问题
  • 吴恩达老师课程《AI Prompting for Everyone》
  • 如何通过图解了解 Kubernetes 内部的架构?
  • 桌面应用Docker化:跨平台部署与图形界面容器化实践
  • 2026届最火的五大AI辅助论文平台实测分析
  • 精英的边界:从货币本质到社会进步——关于内卷与正和博弈的底层思考
  • 山西GEO公司怎么选?看这5点避坑指南
  • VS Code实时协作绘图扩展开发:从Monorepo架构到CRDT同步实战
  • 2026 南通黄金回收机构实测:市区+县域全覆盖,变现渠道清晰 - GrowthUME
  • 从零构建自动化静态博客:Hexo + GitHub Pages 全栈实践指南
  • 2025届必备的十大降AI率网站实际效果
  • 降解塑料原料检测进入绿色数字化阶段,IACheck用AI报告审核强化环保合规闭环能力
  • 基于MCP协议的Web自动化:wappmcp项目详解与AI助手集成实践