文章总结: 本文详细记录了一次基于Fastjson反序列化漏洞注入Tomcat内存马的应急响应过程。攻击者通过目录扫描定位后台、爆破弱口令登录、DNSlog探测漏洞后利用Fastjson和BCEL编码注入恶意类,实现命令执行并写入内存马。作者介绍了两种内存马检测方法:一是使用jmap导出堆转储后通过MAT工具分析内存对象定位恶意类;二是使用自研的Java内存马检测工具快速输出结果。文章强调日志完整记录对应急响应的关键作用,并指出只要痕迹未被清除即可通过分析还原攻击链。 综合评分: 62 文章分类: 应急响应,漏洞分析,WEB安全,安全工具,实战经验
记一次基于Fastjson反序列化内存马应急指导
原创
阿杰谈技术 阿杰谈技术
轩公子谈技术
2026年3月27日 20:17 江苏
在遇到应急事情时,应急响应的效率往往取决于日志记录的完整性与分析思路的清晰度。本文以一次 Fastjson 反序列化漏洞导致的内存马攻击事件为例,记录从日志分析到攻击链还原的全过程,希望能为类似场景的处置提供参考。
攻击路径如下:先通过目录扫描定位后台接口地址,再爆破密码登录后台。由于后台存在 JSON 数据传输,攻击者探测 DNSlog,实现命令回显,随后写入内存马,并对内存马进行检测。
环境为云主机上搭建的靶场。
为便于观察数据包,我在 Nginx 默认配置基础上,增加了请求参数、Cookie、XFF 以及请求体中的参数等记录变量。这样在查询日志时,可以更清晰地查看相关内容。
首先登录系统,由于目标明确,因此先对 Web 日志进行分析。
打开日志后,发现均为扫描流量。
随后进行漏洞探测,扫描 Log4j2 漏洞。
接着查看日志,发现登录接口存在密码爆破行为。
由于验证码未参与登录认证校验,导致可绕过并实施爆破。
日志中出现登录成功记录,疑似攻击者爆破密码成功并登录。
随后攻击者探测 DNSlog,根据日志记录,DNSlog 成功收到请求。
随后进行 Fastjson 攻击,返回状态码 200,表明攻击成功。
其中包含一段以 $BCEL 开头的加密数据,通过 BCEL 编码工具可还原出 Class 字节码内容。
攻击者以 Tomcat 中间件为载体,通过反射调用 org.apache.tomcat.util.buf.ByteChunk,并在请求头中添加 Testecho: whoami 执行命令,命令执行结果直接回显在返回包中。
接着又发现一段疑似 Base64 加密的数据,遂再次进行解码。
接着进行内存马写入操作,执行系统命令后确认注入成功。
登录服务器后,进行内存镜像导出。
方法一
执行 jps -l 获取 Java 进程列表
定位目标进程 PID 为 510767
随后使用 jmap 命令导出堆转储
jmap -dump:live,format=b,file=/tmp/dump.hprof 510767。
导出完成后,下载本地,将 dump 文件导入 MAT 内存分析工具进行分析。
找到搜索按钮,下拉-> java basics -> show as histogram
即可分析内存中运行的所有类名称。
点击 java.lang.Object,可列出其所有引用对象,约九千余个。
将这些引用对象全选并复制到文本编辑器中,通过检索 shell、cmd 等恶意关键词进行筛选。
最终成功定位到被注入的类及其路由路径。
方法2
此前借助 AI 编写的一键内存马检测工具,发布三月以来反响良好,具体可跳转至下方文章。
Java内存马检测工具-跨平台通用
使用 -h 参数可查看使用说明。
运行后,数秒内即可输出结果,经筛选后结果一目了然。
每一次攻击都会在系统中留下痕迹,沿着蛛丝马迹层层推导,便如柯南探案般抽丝剥茧。只要记录未被清除,便可通过细致分析还原真相。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:轩公子谈技术 阿杰谈技术 阿杰谈技术《记一次基于Fastjson反序列化内存马应急指导》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论