Provides tools for scanning, detecting, and removing Java memory shells on Linux systems, including process management, system information retrieval, and remote command execution via SSH.
Provides tools for scanning, detecting, and removing Java memory shells on macOS systems, including process management, system information retrieval, and remote command execution via SSH.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Memory Shell Detector MCPscan Java process 1234 for suspicious memory shells"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Memory Shell Detector MCP
基于 FastMCP 构建的 Java 内存马检测和清理工具 MCP 服务器,支持本地执行和 SSH 远程执行。
项目地址:https://github.com/RuoJi6/memory-shell-mcp
功能
功能 | 工具名称 | 对应命令 |
执行命令(本地/SSH) |
| - |
下载检测工具 |
| - |
列出Java进程 |
|
|
扫描指定进程 |
|
|
查看可疑类代码 |
|
|
移除内存马 |
|
|
导出检测报告 |
|
|
获取系统信息 |
| - |
检测网络状态 |
| - |
安全特性
移除内存马前会先获取源代码供 AI 分析确认
需要 AI 确认后(
ai_confirmed=True)才会执行移除操作自动处理移除确认提示
环境要求
Python 3.10+
JDK 1.8+(目标机器)
uv(Python 包管理器)
快速开始(uvx 方式)
发布到 PyPI 后,直接使用 uvx 运行,无需安装:
MCP 配置(uvx 方式)
支持 MCP 的客户端:本工具可配置到任何支持 Model Context Protocol 的 AI 客户端,包括但不限于:
AI 助手:Claude Desktop、Claude Code
以下是常用客户端的配置示例:
Kiro
在 .kiro/settings/mcp.json 中添加:
Claude Desktop
在 claude_desktop_config.json 中添加:
说明:
env中的环境变量均为可选配置。不配置时,工具会下载到系统临时目录,SSH 参数可通过 AI 对话传入。
开发者模式(本地源码)
安装
运行
MCP 配置(开发者模式)
说明:
env中的环境变量均为可选配置。不配置时,工具会下载到系统临时目录,SSH 参数可通过 AI 对话传入。
环境变量说明(可选)
变量 | 说明 |
| 检测工具(JAR 文件)存放目录,不设置则下载到系统临时目录 |
| SSH 主机地址 |
| SSH 用户名 |
| SSH 密码 |
| SSH 私钥路径(与密码二选一) |
| SSH 端口(默认 22) |
| JDK 路径(可选) |
所有环境变量均为可选,不配置也可正常使用
设置环境变量后,调用工具时无需每次传入对应参数
如果
TOOLS_DIR目录中已存在工具文件,download_detector_tools会跳过下载SSH 参数也可以通过 AI 对话动态传入,优先级高于环境变量
使用流程
完整检测流程
第一步:准备工作
第二步:扫描检测
第三步:源码分析(关键步骤)
内存马判断标准:
✅ 是否包含命令执行代码(
Runtime.exec、ProcessBuilder)✅ 是否包含反射调用敏感方法
✅ 是否有异常的网络连接或文件操作
✅ 是否动态注册 Filter/Servlet/Listener
✅ 是否有加密/编码的可疑字符串(Base64、AES 等)
✅ 是否有 Webshell 特征(参数名为 cmd/command/exec 等)
✅ 类名是否异常(随机字符串、与业务无关)
✅ 是否有类加载器操作(defineClass、ClassLoader)
第四步:清除内存马
第五步:生成报告(可选)
示例提示词
直接复制以下提示词发送给 AI 即可开始检测:
本地检测
SSH 远程检测
内存马类型说明
类型 | 特征 | 移除难度 |
Filter 型 | 实现 | 中等,可能需要多次移除 |
Servlet 型 | 继承 | 中等 |
Listener 型 | 实现 | 较易 |
Spring Controller | 使用 | 中等 |
Spring Interceptor | 实现 | 中等 |
Agent 型 | 通过 | 困难,可能需要重启 |
Valve 型 (Tomcat) | 继承 | 中等 |
旧版使用流程(简化版)
1. 下载检测工具
2. 列出 Java 进程
3. 扫描可疑进程
4. 查看可疑类源代码
5. 移除内存马
SSH 远程执行
方式1:环境变量预设
在 MCP 配置的 env 中设置:
调用时只需设置 use_ssh=True:
方式2:AI 对话动态传入
直接告诉 AI SSH 连接信息:
对话传入的参数优先级高于环境变量
工具下载地址
工具会自动从以下地址下载:
Agent JAR:
https://xget.xi-xu.me/gh/RuoJi6/memory-shell-mcp/releases/download/1/detector-agent-1.0.0-SNAPSHOT.jarCLI JAR:
https://xget.xi-xu.me/gh/RuoJi6/memory-shell-mcp/releases/download/1/memory-shell-detector-cli.jar
支持系统
Windows / Linux / macOS
风险等级说明
等级 | 说明 |
CRITICAL | 确认为内存马,需立即处理 |
HIGH | 高度可疑,建议人工确认 |
MEDIUM | 中等风险,可能是正常组件 |
LOW | 低风险,基本可排除 |
SAFE | 安全,已在白名单中 |
注意事项
扫描其他进程需要足够的系统权限
目标进程和检测工具需使用相同或兼容的 JDK 版本
Agent JAR 需要和 CLI JAR 放在同一目录下
Agent 型内存马无法通过本工具移除,需要重启应用
移除内存马可能影响应用正常运行,建议先备份
发布到 PyPI
参考项目
memory-shell-detector - Java 内存马检测工具核心实现
Xget - GitHub 文件加速下载服务
License
MIT License