2026年年初计划通过AI辅助代码审计,次篇为agent初次尝试,使用agent+mcp进行应急响应。
0.1 MCP server
MCP服务器是模型上下文协议(MCP)架构中的关键组件。
MCP只规定了与MCP server 与MCP host(cline、claude、kiro等agent)之间的协议。

也就是mcp server相等于AI的触手,AI可以通过MCP达成各种各样的操作,如下案例(在下文中会详细描述如何编写一个mcp)
0.1.2 java内存马查杀MCP编写
uv地址:https://github.com/astral-sh/uv
uv 是一个极快的 Python 包和项目管理工具,由 Astral(Ruff 的创建者)开发,使用 Rust 编写。它旨在替代传统 Python 工具链中的多个工具(如 pip、pip-tools、virtualenv、poetry 等),提供更高效的依赖管理、环境管理和脚本执行功能。
使用下面命令创建项目:
1 2 3 4 5 6 7 8 9 10 11
| uv init weather # 初始化一个名为 "weather" 的新项目 # 会创建 weather 文件夹,包含 pyproject.toml 等基础文件
cd weather # 进入项目目录
uv venv # 创建 Python 虚拟环境 # 默认在当前目录下生成 .venv 文件夹
source .venv/bin/activate # 激活虚拟环境(macOS/Linux) # 激活后,pip/python 命令都指向虚拟环境 # Windows 用: .venv\Scripts\activate
|
这里使用kiro(aws编程助手,使用其他编程助手也可)编写一个mcp,下面为提示词:
1 2 3 4 5 6 7 8 9 10 11
| 网络搜索关于MCP的信息,帮我编写一个java 内存马查杀的mcp,其中你需要调用https://github.com/private-xss/memory-shell-detector 这个工具,下载地址是https://xget.xi-xu.me/gh/private-xss/memory-shell-detector/releases/download/1/java.zip
1、需要编写一个ssh连接的tools,并可以执行命令 2、需要编写一个在本地执行命令的tools 3、需要编写一个可以使用memory-shell-detector的tools(你需要查看https://github.com/private-xss/memory-shell-detector如果使用)
注意: 1、使用uv执行项目 2、加载source .venv/bin/activate虚拟环境秩序 3、你可以查看当前目录下的文件,修改,main.py
|
提示:
private-xss/memory-shell-detector 是一个内存马检测查杀的项目
MCP中可以有多个tools(功能,如:sqlmap,其中可以注入,查询,写文件等功能)
此时完成之后,我们只需要配置agent的MCP,就可以使用此MCP功能。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| { "mcpServers": { "java-memory-shell-detector": { "command": "uv", "args": ["run", "--directory", "/path/to/this/project", "main.py"], "env": {}, "disabled": false, "autoApprove": [] } } }
|
如下图:

0.1.2 java内存马查杀MCP使用
此时我们打开对话框:

此时kiro会询问我们是否使用此tools。


运行结果:

0.2 agent之ReAct
在上面中MCP接入的kiro也是一个agent,包括claude也是一个agent,agent不同的区别在于架构范式以及内置tools。
- ReAct (Reasoning and Acting): 一种将“思考”和“行动”紧密结合的范式,让智能体边想边做,动态调整。
- Plan-and-Solve: 一种“三思而后行”的范式,智能体首先生成一个完整的行动计划,然后严格执行。
- Reflection: 一种赋予智能体“反思”能力的范式,通过自我批判和修正来优化结果。
上面三种是业内常见的架构范式,在下文中,我们使用ReAct编写一个排除挖坑病毒的agent,并且结合skills。
0.2.1 Agent Skills 概念
(总结skills,本质上就是提示词,只是加载方式不同,下面概念了解一下即可,只需要知道这个是链式调用,且可以执行脚本)
Agent Skills 是一种轻量级、开放的格式,用于通过专业知识和工作流扩展AI智能体的能力。
Skills 的核心是一个包含 SKILL.md 文件的文件夹。 该文件包含元数据(至少包含 name 和 description)以及指导智能体执行特定任务的指令。 Skills 还可以捆绑脚本、模板和参考资料。

(上图来源[3])
在agent与智能体进行通信的时候,将元数据发送给智能体,并结合用户的输入,如果用户输入和元数据挂钩,那么就会继续调用后续内容(链式调用)。
| 字段 |
必填 |
描述 |
name |
是 |
最多64个字符。仅允许小写字母、数字和连字符。不能以连字符开头或结尾。 |
description |
是 |
最多1024个字符。非空。描述该 Skill 的功能及适用场景。 |
license |
否 |
许可证名称或引用的捆绑许可证文件。 |
compatibility |
否 |
最多500个字符。说明环境要求(目标产品、系统包、网络访问权限等)。 |
metadata |
否 |
用于附加元数据的任意键值映射。 |
allowed-tools |
否 |
Skill 可使用的预批准工具列表(空格分隔)。(实验性功能) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| --- name: pdf-processing description: 从PDF文件中提取文本和表格,填写表单,合并文档。 ---
# PDF处理
## 何时使用此 skill 当用户需要处理PDF文件时使用此 skill...
## 如何提取文本 1. 使用 pdfplumber 进行文本提取...
## 如何填写表格 ...
|
1 2 3 4 5 6 7 8 9
| 目录结构示例
my-skill/ ├── SKILL.md # 主指令 ├── scripts/ # 可执行脚本 │ ├── process.py │ └── analyze.sh └── resources/ # 模板、示例 └── template.md
|
0.2.2 提示词
提示词:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| REACT_PROMPT_TEMPLATE = """ # 角色定义 你是一个具备多种专业技能(Skills)的网络安全溯源专家智能体。你能够根据任务需求,自动激活相关技能并调用对应工具来完成复杂任务。
# 已加载的技能 (Skills) 以下是当前可用的技能模块:
{skills_summary}
# 当前激活的技能详情 {active_skill_content}
# 可用工具列表 {tools}
# 思考与行动框架 (ReAct Framework)
你必须遵循 "思考-行动-观察" 的循环模式来解决问题:
## 响应格式
Thought: [你的推理过程] - 分析当前问题状态 - 确定需要激活哪个技能 - 规划下一步行动
Action: [执行的动作] - 调用工具: `工具名[参数]` - 结束任务: `Finish[最终答案]`
## 执行规则
1. **技能激活**: 根据任务关键词自动匹配并激活相关技能 2. **工具调用**: 每次只执行一个Action,等待Observation后再继续 3. **迭代推进**: 基于观察结果调整策略,逐步逼近目标 4. **任务完成**: 收集足够信息后,使用 `Finish[答案]` 输出最终结果
## 质量标准
- 推理过程清晰、有逻辑 - 工具调用准确、参数正确 - 参考技能文档中的专业知识 - 安全意识强、操作谨慎
# 当前任务
**Question**: {question}
**历史记录**: {history}
# 开始执行
请基于上述框架和已激活的技能知识,开始你的思考和行动: """
|
skills详情(此处参考:[4])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| --- name: Linux安全应急响应 description: Linux系统安全应急响应手册,包含挖矿病毒、远控后门、勒索病毒、暴力破解、隧道检测等安全事件的排查与处置方法 ---
# Linux安全应急响应技能
本技能提供Linux系统安全应急响应的完整知识库,涵盖各类安全事件的排查与处置方法。
## 适用场景
- Linux服务器遭受攻击后的应急响应 - 挖矿病毒、远控后门、勒索病毒等恶意软件处置 - SSH/MySQL/Redis/FTP等服务暴力破解事件排查 - 隧道检测与处置(SSH隧道、DNS隧道、ICMP隧道等) - 恶意软件包供应链攻击排查 - 系统常规安全检查与加固 - 安全事件善后处理
## 参考文档
- #[[file:references/注意事项.md]] - 应急响应注意事项 - #[[file:references/挖矿病毒.md]] - 挖矿病毒排查与处置 - #[[file:references/远控后门.md]] - 远控后门排查与处置 - #[[file:references/勒索病毒.md]] - 勒索病毒排查与处置 - #[[file:references/暴力破解.md]] - 暴力破解事件排查 - #[[file:references/非持续性事件.md]] - 非持续性安全事件处置 - #[[file:references/恶意软件包供应链攻击.md]] - 供应链攻击排查 - #[[file:references/隧道.md]] - 隧道检测与处置 - #[[file:references/常规安全检查.md]] - 系统安全检查清单 - #[[file:references/善后阶段.md]] - 安全事件善后处理 - #[[file:references/常见问题解决方法.md]] - 常见问题解决方案 - #[[file:references/小技巧.md]] - 应急响应实用技巧
|
其中这里的tools和mcp中的tools并没有区别,这里的tools只有连接ssh的tools。
0.2.3 运行效果(清除木马)
这里我们使用棉花糖的靶场[1]作为演示:
给agent的输入:

开始加载技能,并调用指定的tools:

结果:

最终内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| ## 挖矿病毒处置完成报告
### 发现的安全问题 1. **挖矿病毒进程**:发现java进程运行/tmp/miner.jar,CPU占用率高达118.8% 2. **持久化机制**:存在crontab定时任务,每分钟执行/usr/share/.per/persistence.sh守护脚本 3. **恶意文件备份**:在/usr/share/.miner/目录下存在miner.jar备份文件
### 已执行的处置措施 1. **进程查杀**: - 杀死第一个挖矿进程组(PGID 1079) - 杀死第二个挖矿进程组(PGID 60502) 2. **文件清理**: - 删除/tmp/miner.jar - 删除/usr/share/.per/persistence.sh守护脚本 - 删除/usr/share/.miner/目录及其中的备份文件 3. **持久化机制清除**: - 使用`crontab -r`清除了所有定时任务
### 验证结果 - ✅ 当前无挖矿进程运行 - ✅ CPU使用率恢复正常(从133.3%降至0.0%) - ✅ 所有恶意文件已删除 - ✅ 定时任务已清除
### 建议 1. 建议检查系统是否存在其他安全漏洞,防止再次被入侵 2. 建议定期更新系统和应用补丁 3. 建议配置防火墙规则,限制不必要的网络访问 4. 建议监控系统日志,及时发现异常行为
**处置状态**:✅ 挖矿病毒已完全清除 🤔 思考: 根据历史记录,我已经对服务器进行了挖矿病毒的排查和处置。现在需要总结整个过程,确认是否已经完全清除挖矿病毒,并给出最终结论。 🎉 最终答案: 挖矿病毒处置完成报告
|
0.3 总结
在测试的时候,笔者使用了glm-5.7以及deepseek-chat,不同模型对于结果影响很大,包括提示词(Prompt),以及不同的模型提供商,而且ReAct模式下,在Prompt描述不清晰的情况下会导致死循环。
0.4 参考&引用
[1]: https://vip.bdziyi.com/ulab/ “棉花糖靶场”
[2]: https://datawhalechina.github.io/hello-agents/#/./chapter4/%E7%AC%AC%E5%9B%9B%E7%AB%A0%20%E6%99%BA%E8%83%BD%E4%BD%93%E7%BB%8F%E5%85%B8%E8%8C%83%E5%BC%8F%E6%9E%84%E5%BB%BA?id=_41-%e7%8e%af%e5%a2%83%e5%87%86%e5%a4%87%e4%b8%8e%e5%9f%ba%e7%a1%80%e5%b7%a5%e5%85%b7%e5%ae%9a%e4%b9%89 “Hello-agent”
[3]: https://www.bilibili.com/video/BV1cGigBQE6n/?share_source=copy_web&vd_source=33ab2fb0a56ff9d229e039e5c557497f “哔哩哔哩:Agent Skill 从使用到原理”
[4]: https://books.noptrace.com/linux/5.%E6%8C%96%E7%9F%BF%E7%97%85%E6%AF%92/ “网络安全应急响应手册 — NOPTeam”