Skip to main content

Java内存马检测和清理工具的MCP服务器 - Memory Shell Detector MCP Server

Project description

Memory Shell Detector MCP

基于 FastMCP 构建的 Java 内存马检测和清理工具 MCP 服务器,支持本地执行和 SSH 远程执行。

项目地址:https://github.com/RuoJi6/memory-shell-mcp

功能

功能 工具名称 对应命令
执行命令(本地/SSH) execute_command -
下载检测工具 download_detector_tools -
列出Java进程 list_java_processes -l
扫描指定进程 scan_process -s <PID>
查看可疑类代码 view_class_code -v <类名> -p <PID>
移除内存马 remove_memory_shell -r <类名> -p <PID>
导出检测报告 export_report --report
获取系统信息 get_system_info_tool -
检测网络状态 check_network -

安全特性

  • 移除内存马前会先获取源代码供 AI 分析确认
  • 需要 AI 确认后(ai_confirmed=True)才会执行移除操作
  • 自动处理移除确认提示

环境要求

  • Python 3.10+
  • JDK 1.8+(目标机器)
  • uv(Python 包管理器)

快速开始(uvx 方式)

发布到 PyPI 后,直接使用 uvx 运行,无需安装:

uvx memory-shell-mcp

MCP 配置(uvx 方式)

支持 MCP 的客户端:本工具可配置到任何支持 Model Context Protocol 的 AI 客户端,包括但不限于:

以下是常用客户端的配置示例:

Kiro

.kiro/settings/mcp.json 中添加:

{
  "mcpServers": {
    "memory-shell-detector": {
      "command": "uvx",
      "args": ["memory-shell-mcp"],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}

Claude Desktop

claude_desktop_config.json 中添加:

{
  "mcpServers": {
    "memory-shell-detector": {
      "command": "uvx",
      "args": ["memory-shell-mcp"],
      "env": {}
    }
  }
}

说明env 中的环境变量均为可选配置。不配置时,工具会下载到系统临时目录,SSH 参数可通过 AI 对话传入。


开发者模式(本地源码)

安装

git clone https://github.com/RuoJi6/memory-shell-mcp.git
cd memory-shell-mcp

# 创建虚拟环境并安装依赖
uv venv --python python3.12
source .venv/bin/activate  # Linux/macOS
# .venv\Scripts\activate   # Windows

uv pip install -e .

运行

# 激活虚拟环境后
memory-shell-mcp

MCP 配置(开发者模式)

{
  "mcpServers": {
    "memory-shell-detector": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/memory-shell-mcp",
        "memory-shell-mcp"
      ],
      "env": {}
    }
  }
}

说明env 中的环境变量均为可选配置。不配置时,工具会下载到系统临时目录,SSH 参数可通过 AI 对话传入。


环境变量说明(可选)

变量 说明
TOOLS_DIR 检测工具(JAR 文件)存放目录,不设置则下载到系统临时目录
SSH_HOST SSH 主机地址
SSH_USERNAME SSH 用户名
SSH_PASSWORD SSH 密码
SSH_KEY_PATH SSH 私钥路径(与密码二选一)
SSH_PORT SSH 端口(默认 22)
JAVA_HOME JDK 路径(可选)
  • 所有环境变量均为可选,不配置也可正常使用
  • 设置环境变量后,调用工具时无需每次传入对应参数
  • 如果 TOOLS_DIR 目录中已存在工具文件,download_detector_tools 会跳过下载
  • SSH 参数也可以通过 AI 对话动态传入,优先级高于环境变量

使用流程

1. 下载检测工具

调用 download_detector_tools
- 不指定 tools_dir 则从 TOOLS_DIR 环境变量读取,都没有则下载到系统临时目录
- 会自动检测网络是否可用
- 如果工具已存在则跳过下载

2. 列出 Java 进程

调用 list_java_processes()

3. 扫描可疑进程

调用 scan_process(pid=进程ID)

4. 查看可疑类源代码

调用 view_class_code(class_name="类名", pid=进程ID)

5. 移除内存马

# 第一次调用:获取源代码供 AI 分析
调用 remove_memory_shell(class_name="类名", pid=进程ID)

# AI 确认后第二次调用:执行移除
调用 remove_memory_shell(class_name="类名", pid=进程ID, ai_confirmed=True)

SSH 远程执行

方式1:环境变量预设

在 MCP 配置的 env 中设置:

"env": {
  "TOOLS_DIR": "/your/tools/directory",
  "SSH_HOST": "192.168.1.100",
  "SSH_USERNAME": "root",
  "SSH_PASSWORD": "password"
}

调用时只需设置 use_ssh=True

调用 scan_process(pid=12345, use_ssh=True)

方式2:AI 对话动态传入

直接告诉 AI SSH 连接信息:

调用 scan_process(
    pid=12345,
    use_ssh=True,
    ssh_host="192.168.1.100",
    ssh_username="root",
    ssh_password="password"
)

对话传入的参数优先级高于环境变量


工具下载地址

工具会自动从以下地址下载:

  • Agent JAR: https://xget.xi-xu.me/gh/RuoJi6/memory-shell-mcp/releases/download/1/detector-agent-1.0.0-SNAPSHOT.jar
  • CLI 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 安全,已在白名单中

注意事项

  1. 扫描其他进程需要足够的系统权限
  2. 目标进程和检测工具需使用相同或兼容的 JDK 版本
  3. Agent JAR 需要和 CLI JAR 放在同一目录下
  4. Agent 型内存马无法通过本工具移除,需要重启应用
  5. 移除内存马可能影响应用正常运行,建议先备份

发布到 PyPI

# 1. 注册 PyPI 账号并获取 API Token
# https://pypi.org/manage/account/token/

# 2. 构建包
uv build

# 3. 发布到 PyPI
uv publish --token YOUR_PYPI_TOKEN

# 4. 发布后即可通过 uvx 运行
uvx memory-shell-mcp

参考项目

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

memory_shell_mcp-0.1.3.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

memory_shell_mcp-0.1.3-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file memory_shell_mcp-0.1.3.tar.gz.

File metadata

  • Download URL: memory_shell_mcp-0.1.3.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for memory_shell_mcp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 edd0e42ea8aa658d381710dc6f0801f2dec409877b103c5089b51901ec16847f
MD5 bf700d0601a91a5085ef72146038490d
BLAKE2b-256 6fda999af02350bcbafb20449583368661f537bc7da902e476884ae4a6eade19

See more details on using hashes here.

File details

Details for the file memory_shell_mcp-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: memory_shell_mcp-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for memory_shell_mcp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 98f458feb5a1325c06a4b3b5f1321f31f37259fa0e1e69dc0b2d580f5faa03f9
MD5 f9243ebfb78fcbf25baab328d13b705f
BLAKE2b-256 3cdfa3dbd38ea9793693cc015895154b2bb921aa0a92a7344f350d1b0ab4290f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page