Java内存马检测工具-跨平台通用
文章介绍了一款内存马检测工具的功能与使用方法,包括内存马类型(容器型、框架型、Agent型)、检测原理(无class文件、关键字、字节码特征等)、操作功能(进程扫描、反编译、移除内存马等)及环境要求,并提供了工具的运行方式与命令参数说明。 2025-12-30 04:48:0 Author: www.freebuf.com(查看原文) 阅读量:0 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

检测能力

容器型内存马

  • Tomcat: Filter、Servlet、Listener、Valve
  • Jetty: Filter、Servlet、Handler
  • WebLogic: Filter、Servlet
  • JBoss/WildFly (Undertow): Filter、Servlet
  • Resin: Filter、Servlet

框架型内存马

  • Spring MVC/Spring Boot: Controller、Interceptor
  • Shiro: Filter

Agent型内存马

  • 冰蝎 (Behinder)
  • 哥斯拉 (Godzilla)
  • 蚁剑 (AntSword)
  • 天蝎 (Suo5)
  • 通过 Instrumentation/ClassFileTransformer 修改的类

检测原理

  1. 无class文件检测: 动态注入的内存马在磁盘上没有对应的.class文件
  2. 类名关键字检测: evil、shell、cmd、backdoor、hack、exploit、payload、behinder、godzilla、antsword、memshell、webshell、inject、malicious、trojan、reverse
  3. 字节码特征检测: Runtime.exec、ProcessBuilder、ScriptEngine、ClassLoader.defineClass、JNDI lookup、反序列化等危险调用
  4. 类路径检测: 不在标准jar/war/classes目录中的类

操作功能

  • 进程扫描: 自动发现系统中运行的Java进程
  • 代码反编译: 查看可疑类的源代码,支持语法高亮
  • 内存马移除: 支持移除 Filter、Servlet、Listener、Valve、Controller、Interceptor
  • 报告导出: 支持JSON和文本格式的检测报告

环境要求

  • JDK 1.8+

快速开始

图形界面使用

java -jar memory-shell-detector-gui.jar

命令行使用

列出Java进程

java -jar memory-shell-detector-cli.jar -l

扫描指定进程

java -jar memory-shell-detector-cli.jar -s <PID>

查看可疑类代码

java -jar memory-shell-detector-cli.jar -v <类名> -p <PID>

移除内存马

java -jar memory-shell-detector-cli.jar -r <类名> -p <PID>

导出检测报告

# JSON格式
java -jar memory-shell-detector-cli.jar --report report.json -p <PID> -f json

# 文本格式
java -jar memory-shell-detector-cli.jar --report report.txt -p <PID> -f text

命令行参数

参数 说明
-l, --list 列出所有Java进程
-s, --scan <PID> 扫描指定进程
-v, --view <类名> 查看类的反编译代码
-r, --remove <类名> 移除指定的内存马
-p, --pid <PID> 指定目标进程ID
--report <文件> 导出检测报告
-f, --format <格式> 报告格式: json/text
--hex 以十六进制显示字节码
--force 强制执行(跳过确认)
--verbose 显示详细输出
-h, --help 显示帮助信息

支持移除的内存马类型

类型 支持移除
Filter
Servlet
Listener
Valve
Controller
Interceptor
Agent (Agent型无法移除,需重启应用)

风险等级

等级 说明
CRITICAL 确认为内存马,需立即处理
HIGH 高度可疑,建议人工确认
MEDIUM 中等风险,可能是正常组件
LOW 低风险,基本可排除
SAFE 安全,已在白名单中

注意事项

  1. 权限要求: 扫描其他进程需要足够的系统权限
  2. JDK版本: 目标进程和检测工具需使用相同或兼容的JDK版本
  3. 移除风险: 移除内存马可能影响应用正常运行,建议先备份
  4. Agent型: Agent型内存马无法通过本工具移除,需要重启应用
  5. 重启Tomcat: 修改Agent后需要重启Tomcat才能生效(Agent会被JVM缓存)

免责声明

1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。

2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。

3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/web/464587.html
如有侵权请联系:admin#unsafe.sh