找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

5088

积分

0

好友

704

主题
发表于 1 小时前 | 查看: 5| 回复: 0

上一篇文章详细介绍了Agent、MCP的概念与编写。本文将聚焦于MCP的实际应用,通过一个具体案例,详细阐述如何编写一个功能完善且高效的MCP。

原文地址:https://ruoji6.github.io/posts/19293.html

自动化查杀Java内存马

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

执行效果展示

内存马扫描结果分析界面截图

详细的内存马检测报告

编写思路

以下是使用大模型(如kiro)编写内存马查杀MCP时可以参考的提示词:

帮我编写一个内存马查看/清理的MCP:

前置:
1、你需要在网络搜索什么是MCP
2、了解python的uv(当前目录下,我已执行:uv venv --python python3.12 ,uv init,你后面执行命令统一在虚拟环境执行:source .venv/bin/activate,在uv init 创建的main.py文件中编写代码)
3、查看当前目录下的`工具使用说明.md`文件

结合查看`工具使用说明.md`文件完成下面需求(提示:使用FastMCP编写完成):
1、本地执行命令(来执行:4,5,6,7)
2、ssh连接并可以执行命令(来执行:4,5,6,7)
3、可以让用户输入工具目录地址,如果没有输入就使用下面地址下载到临时目录(注意windows/linux/macos等临时目录)【此处下载需要先测试网络环境是否可用,可用就可以下载。注意:windows/linux/macos 中下载的命令,尽可能的兼容系统】
https://xget.xi-xu.me/gh/RuoJi6/memory-shell-detector/releases/download/2/detector-agent-1.0.0-SNAPSHOT.jar
https://xget.xi-xu.me/gh/RuoJi6/memory-shell-detector/releases/download/2/memory-shell-detector-cli.jar
4、结合查看`工具使用说明.md`文件可以执行工具命令(-l)
5、结合查看`工具使用说明.md`文件可以执行工具命令(-s)
6、结合查看`工具使用说明.md`文件可以执行工具命令(-v -p)
7、结合查看`工具使用说明.md`文件可以执行工具命令(-r -p)
【注意,在执行此命令删除内存马的时候,需要:1、使用-v命令获取内存马源代码,并发送给AI,惊喜判断是否是内存马,如果是方可清除 2、在执行此命令的时候,会有下面信息,需要输入y,如:[!] 警告: 移除内存马可能影响应用正常运行确认移除 org.apache.jsp.filter_002dinject_jsp$ShellFilter? (y/N): y】
8、运行完成之后,在当前目录输出md文件,描述功能,以及mcp配置信息

其中涉及的核心项目:

运行效果 - 查找内存马

内存马项目地址https://github.com/0ofo/java-memshell

测试环境

  • servlet + tomcat
    • servlet
    • filter
    • Listener
  • 模型:glm-4.7

MCP配置TOOLS_DIR可以为空不设置,将会自动下载到tmp目录,参考:https://github.com/RuoJi6/memory-shell-mcp):

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

提示词

帮我查看本机的java web服务,并排查是否存在内存马(判断标准):工具扫描出来之后,你需要反编译源代码,通过分析源代码,判断是否是内存马,以免在后续操作中,误删正确信息。

运行结果

内存马检测结果汇总

AI工具调用图

工具调用链性能监控表格

AI思考流程图

安全检测流程步骤界面

运行效果 - 删除内存马

测试环境

  • SpringBoot
    • controller
    • interceptor
  • 模型:glm-4.7
  • Agent:claude

MCP服务器识别与功能列表

MCP配置TOOLS_DIR可以为空不设置,将会自动下载到tmp目录,参考:https://github.com/RuoJi6/memory-shell-mcp):

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

提示词(“进程名包含 com.example.demo.DemoApplication”是可选项,用于让AI快速定位目标服务):

帮我检测本机的 Java Web 服务(进程名包含 com.example.demo.DemoApplication),排查是否存在内存马。

检测要求:
1. 先下载检测工具,然后列出 Java 进程找到目标 PID
2. 扫描该进程,获取所有可疑类列表
3. 对每个可疑类反编译源代码,分析是否为内存马
4. 如果确认是内存马,执行移除操作
5. 移除后再次扫描验证,某些内存马需要多次移除才能彻底清除
6. 最后给我一个检测报告总结

运行结果

SpringBoot应用内存马清除报告

编写思路解析

再次回顾核心提示词:

帮我编写一个内存马查看/清理的MCP:
...

以上述提示词为例,我们可以总结出编写高效MCP提示词的两个关键点:

  1. 让AI了解最新的知识(弥补AI知识库的滞后性)
    • 了解最新的MCP标准与uvx工具的使用方式。
    • 让AI阅读项目附带的工具使用说明.md文档,理解工具的具体功能和命令行参数。
  2. 清晰定义任务目标与执行路径
    • 明确告知AI需要实现的功能:本地命令执行、SSH远程执行、工具下载、进程列表、反编译分析、内存马删除等。
    • 规划好任务流,例如先下载工具,再扫描,接着分析源码确认,最后执行清除。

参考链接

通过将AI的推理与决策能力,与专业的Java内存马检测工具相结合,我们构建了一个自动化、智能化的安全检测与响应流程。这种“AI + 专用工具”的模式,极大地提升了安全运维的效率和准确性,为Web应用安全防护提供了新的思路。更多类似的技术实践与开源项目探讨,欢迎关注云栈社区




上一篇:Burp AI 2025.3实战测试:体验赛博郎中如何自动挖掘漏洞
下一篇:聊聊DynamicTp v1.2.2:AI程序员Devin如何贡献95%+代码
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-8 05:58 , Processed in 0.574215 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表