FlareVM MCP服务器
    
模型上下文协议(MCP)服务器,提供对Windows恶意软件分析工具的远程访问 FlareVM 通过统一的界面。这使得AI代理和安全分析师能够执行全面的恶意软件分析和逆向工程任务,而无需手动工具交互。该项目旨在实现代理AI集成,简化FlareVM之间的文件传输,同时保持其隔离。
快速安装
三种支持的安装路径:
单行安装程序(Kali/Debian)
curl -sSL https://raw.githubusercontent.com/zixuantemp/flarevm-mcp/main/install.sh | bash在以下位置创建venv ~/.flarevm-mcp/venv,安装程序包并存储 系统密钥环中的FlareVM密码。
pip(任何Linux/MOSC/WSL)
pip install git+https://github.com/zixuantemp/flarevm-mcp.git
flarevm-mcp # runs the MCP server on stdio码头工人
docker run -i --rm \
-e FLAREVM_HOST=192.168.100.10 \
-e FLAREVM_USER=xtemp \
-e FLAREVM_PASSWORD=infected \
ghcr.io/zixuantemp/flarevm-mcp安装后,向您的MCP客户端注册(~/.claude/.mcp.json 或 claude_desktop_config.json)--安装程序打印一个准备粘贴的代码段。
MCP功能
此服务器实现了完整的MCP功能集:
- 工具(48) --看
resources/tools-reference.md. - 提示(5) --常见任务的预处理工作流程。看
prompts/.
- triage_unknown_sample, behavioral_analysis, unpack_workflow, injection_hunt, persistence_audit_report.
- 资源(5) --动态和静态参考材料:
- flarevm://tools/inventory — Test-Path 每个配置的工具都是实时的。 - flarevm://config/fakenet-default --生成FakeNet配置。 - flarevm://docs/yara-rules --已安装YARA规则列表+索引。 - flarevm://docs/cheatsheet --常见的工作流程配方。 - flarevm://status/connection --实时FlareVM健康检查。
- 技能(3) --Claude Code技能包
skills/:
triage-malware-sample, incident-response-windows, automated-unpacking.
安全
爆炸在一个 一次性VM,从不在分析师主持上。看 安全.md 对于完整的威胁模型,凭证处理 规则以及如何报告漏洞。
许可证
麻省理工学院 --版权所有(c)2026资讯通。
______________________________________________________________________
什么是FlareVM MCP?
FlareVM MCP 用于在您的分析环境(通常是Kali Linux)和隔离的Windows恶意软件分析VM(FlareVM)之间架起桥梁,以便在Linux和Windows环境上进行分析。它通过MCP协议暴露了40多种恶意软件分析工具,允许:
- 远程文件操作 -上传/下载样本和工件
- 静态分析 -封隔器检测(DIEC)、能力分析(CAPA)、管柱提取(FLOSS)
- 动态分析 -过程监控、网络监控、注册表跟踪
- 调试器 -x64dbg脚本,Winkey崩溃分析
- 仪器仪表 -Frida挂钩用于运行时API监控
- IDA Pro集成 -通过RPC进行反编译和注释
架构概述
┌─────────────────────────────────┐
│ AI Agent / Claude Code │
│ (Kali Linux / Local Machine) │
└────────────────┬────────────────┘
│
MCP (stdio)
│
┌────────▼─────────┐
│ FlareVM MCP │
│ Server │
│ (Python/FastMCP)│
└────────┬─────────┘
│
┌────────────┼────────────────────────┐
│ │ │
WinRM SMB Share IDA RPC
│ │ (localhost)
│ │ │
┌───▼────────────▼─────────────────────┐ │
│ FlareVM (Windows VM) │ │
│ ┌──────────────────────────────────┐ │ │
│ │ Malware Analysis Tools: │ │ │
│ │ - Procmon (process monitoring) │ │ │
│ │ - DIE (packer detection) │ │ │
│ │ - FLOSS (string extraction) │ │ │
│ │ - CAPA (capability analysis) │ │ │
│ │ - x64dbg (debugger) │ │ │
│ │ - WinDbg (dump analysis) │ │ │
│ │ - Frida (dynamic instrumentation)│ │ │
│ │ - FakeNet-NG (network sim) │ │ │
│ │ - Autoruns (persistence) │ │ │
│ │ - Regshot (registry monitoring) │ │ │
│ │ - IDA Pro (reverse engineering) │ │ │
│ └──────────────────────────────────┘ │ │
│ │ │
│ IDA Pro Server (port 13337)──────────┘ │
└────────────────────────────────────────┘当前功能
文件传输操作
upload_file-将文件从Kali上传到FlareVM(大于8KB使用SMB,小于8KB使用WinRM)download_file-将分析工件下载回Kali- 自动SHA256校验和验证完整性
基本系统工具
check_connection-验证WinRM连接并获取系统信息execute_powershell-运行任意PowerShell命令read_file-远程读取文件内容get_file_hash-计算MD5/SHA1/SHA256哈希值list_processes-使用可选筛选枚举正在运行的进程
动态分析
procmon_start-使用可选的进程筛选启动进程监视器procmon_stop-停止进程监视器捕获procmon_export_csv-将PML日志导出到CSV进行分析execute_with_monitoring-执行二进制文件并进行全面监控(procmon+网络)monitor_network_realtime-实时网络连接监控process_hacker_info-通过process Hacker获取详细的流程信息regshot_snapshot-注册表快照(分析之前/之后/比较分析)autoruns_analyze-分析自动启动程序和持久性
静态分析
die_analyze-使用DetectItEasy(DIEC)检测编译器/打包器floss_extract_strings-使用FLOSS提取模糊字符串capa_analyze-使用CAPA框架识别恶意软件功能
动态仪表
frida_list_processes-列出可用于Frida注射的工艺frida_spawn_and_attach-生成并将Frida附加到进程中frida_attach_pid-通过PID连接到正在运行的进程frida_run_script-执行Frida检测脚本
调试与分析
x64dbg_load-在x64dbg GUI中启动可执行文件x64dbg_run_script-创建并执行x64dbg脚本windbg_analyze_dump-使用Winchester分析崩溃转储
网络仿真
fakenet_start-启动FakeNet NG网络模拟fakenet_stop-停止FakeNet NG并检索日志
IDA Pro集成(FlareVM中未内置)
ida_get_metadata-获取已加载二进制文件的元数据ida_list_functions-带分页的列表函数ida_decompile_function-将函数分解为伪代码ida_disassemble_function-获取程序集列表ida_list_strings-以二进制形式列出字符串ida_set_comment-在IDA中添加/修改注释ida_rename_function-重命名函数
系统要求
主机(Kali/分析)
- Python 3.10+
python3-winrm-Windows远程管理库smbclient-用于大文件传输python-keyring-用于凭证存储fastmcp-MCP服务器框架
FlareVM(Windows分析虚拟机)
- 操作系统:Windows 10/11
- 远程管理:已启用并配置为远程访问
- SMB共享:可选但推荐(命名
KaliShare) - 所需工具:
- Procmon(系统内部) - x64dbg - WinDBG - DIEC(DetectItEasy CLI) - 牙线 - 纠正和预防措施 - Frida for Windows - Faket坚果 - 自动运行(系统内部) - 注册表对比 - IDA Pro(可选,用于IDA工具)
安装
1.克隆存储库
cd /home/kali
git clone https://github.com/zixuantemp/flarevm-mcp.git
cd flarevm-mcp2.安装依赖项
# Requires Python > 3.10
pip install -r requirements.txt
sudo apt-get install smbclient3.配置凭据
# Store FlareVM credentials in system keyring
python3 8KB),请在FlareVM上配置SMB共享:
1. 创建共享:
New-Item -Path "C:\Share" -ItemType Directory -Force New-SmbShare -Name "KaliShare" -Path "C:\Share" -FullAccess "Everyone"
2. Kali的测试:
smbclient //192.168.100.128/KaliShare -U xtemp -c "ls"
### IDA Pro集成
如果使用IDA Pro工具:
1. 在FlareVM上安装IDA Pro
1. 安装IDA Pro MCP插件:https://github.com/mandiant/ida-pro-mcp
1. 启动IDA Pro,MCP服务器正在监听 `localhost:13337`
1. 在FlareVM上验证:
netstat -ano | findstr :13337
## 使用示例
### 1.快速恶意软件分类
Using with Claude Code or Python
from mcp_client import MCPClient
client = MCPClient("flarevm")
Upload sample
client.call("upload_file", { "local_path": "/home/kali/samples/malware.exe", "remote_path": "C:\\temp\\sample.exe" })
Get static analysis
die_result = client.call("die_analyze", { "file_path": "C:\\temp\\sample.exe" }) print(f"Packer: {die_result}")
Extract strings
strings = client.call("floss_extract_strings", { "file_path": "C:\\temp\\sample.exe" })
Get capabilities
capa_result = client.call("capa_analyze", { "file_path": "C:\\temp\\sample.exe" })
### 2.行为分析与监控
Monitor process execution
result = client.call("execute_with_monitoring", { "executable": "C:\\temp\\sample.exe", "arguments": "--test", "duration": 30 })
Download procmon logs
client.call("download_file", { "remote_path": result["ProcmonLog"], "local_path": "/home/kali/analysis/procmon_logs.pml" })
### 3.API与Frida挂钩
Hook Windows API during execution
frida_script = """ Interceptor.attach(Module.findExportByName("kernel32.dll", "CreateProcessW"), { onEnter: function(args) { console.log("[*] CreateProcess called with: " + args[1].readUtf16String()); } }); """
result = client.call("frida_run_script", { "target": "sample.exe", "script_content": frida_script })
### 4.使用x64dbg进行交互式调试
Load in debugger
client.call("x64dbg_load", { "executable": "C:\\temp\\sample.exe" })
Create breakpoint script
script = """ bp 0x00401000 BreakOnDll(kernel32.dll, false) bp CreateProcessW """
client.call("x64dbg_run_script", { "script_content": script })
### 5.IDA Pro分析
Decompile function
decomp = client.call("ida_decompile_function", { "address": "0x00401000" })
Add comment
client.call("ida_set_comment", { "address": "0x00401000", "comment": "Entry point - possible C2 setup" })
Rename function
client.call("ida_rename_function", { "function_address": "0x00401050", "new_name": "decrypt_config" })
### 6.持久性分析
Check autostart programs
autoruns = client.call("autoruns_analyze")
Take registry snapshots
before = client.call("regshot_snapshot", { "action": "first", "output_dir": "C:\\temp\\regshot" })
Run malware
client.call("execute_with_monitoring", { "executable": "C:\\temp\\sample.exe", "duration": 30 })
Compare after
after = client.call("regshot_snapshot", { "action": "second", "output_dir": "C:\\temp\\regshot" })
comparison = client.call("regshot_snapshot", { "action": "compare", "output_dir": "C:\\temp\\regshot" })
## 建议设置
### 设置1:最小分析实验室
**组件**:
- Kali Linux虚拟机(4GB内存,20GB存储空间)
- FlareVM Windows 10(8GB RAM,50GB存储空间)
- 网络:隔离实验室网络(无互联网)
- 存储:样本/日志共享文件夹
**工具已启用**:
- Procmon,x64dbg,DIE,FLOSS,CAPA
**最适合**:快速分类、静态分析、基本动态分析
**预计安装时间**:2-3小时
### 设置2:高级研究实验室
**组件**:
- Kali Linux(专用主机,8GB+RAM)
- 多个FlareVM快照(每种样本类型一个)
- IDA Pro用于逆向工程
- 网络:隔离+FakeNet用于网络连接的恶意软件
- 存储空间:500GB+用于分析工件
**工具已启用**:
- 所有工具:Procmon、x64dbg、Wings、DIE、FLOSS、CAPA、Frida、IDA Pro、FakeNet
**工作流程**:
1. 静态分析(DIE、FLOSS、CAPA)
1. 行为分析(Procmon、网络监控)
1. 交互式调试(x64dbg,Frida)
1. 深度逆向工程(IDA Pro)
**最适合**:专业的恶意软件分析、研究、威胁情报
**预计安装时间**:8-10小时
### 设置3:自动分析管道
**组件**:
- Kali Linux(自动化主机)
- FlareVM(自动分析)
- 消息队列(Redis/RabbitMQ可选)
- 结果数据库(SQLite/MongoDB)
**工作流程**:
Sample Upload → Static Analysis → Dynamic Analysis → Report Generation
**最适合**:批量样品分析、蜜罐集成、SOC自动化
**预计安装时间**:1-2天
## API 参考
### 工具类别
#### 文件传输
- `upload_file(local_path, remote_path)`
- `download_file(remote_path, local_path)`
#### 系统运维
- `check_connection()`
- `execute_powershell(command)`
- `read_file(path)`
- `get_file_hash(path, algorithm)`
- `list_processes(filter?)`
#### 动态分析
- `procmon_start(output_file, process_filter?)`
- `procmon_stop()`
- `procmon_export_csv(pml_file, csv_file)`
- `execute_with_monitoring(executable, arguments?, duration?)`
- `monitor_network_realtime(duration?, process_filter?)`
- `process_hacker_info(process_name_or_pid)`
- `regshot_snapshot(action, output_dir)`
- `autoruns_analyze(verify_signatures?)`
#### 静态分析
- `die_analyze(file_path)`
- `floss_extract_strings(file_path, min_length?)`
- `capa_analyze(file_path)`
#### 调试
- `x64dbg_load(executable, script_file?)`
- `x64dbg_run_script(script_content, save_path?)`
- `windbg_analyze_dump(dump_file, commands?)`
#### Frida仪器
- `frida_list_processes()`
- `frida_spawn_and_attach(executable, script_path)`
- `frida_attach_pid(pid, script_path)`
- `frida_run_script(target, script_content)`
#### 网络仿真
- `fakenet_start(config_file?)`
- `fakenet_stop()`
#### IDA Pro
- `ida_get_metadata()`
- `ida_list_functions(offset, count)`
- `ida_decompile_function(address)`
- `ida_disassemble_function(start_address)`
- `ida_list_strings(offset, count)`
- `ida_set_comment(address, comment)`
- `ida_rename_function(function_address, new_name)`
## 故障排除
### 连接问题
**问题**:“无法读取的用户名…没有这样的设备或地址”
Solution: Verify FlareVM IP is reachable ping 192.168.100.10
**问题**:“WinRM连接超时”
Solution: Enable WinRM on FlareVM Run as Administrator on FlareVM: Enable-PSRemoting -Force Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force
**问题**:“找不到钥匙圈密码”
Solution: Store credentials in keyring python3 -c "import keyring; keyring.set_password('flarevm', 'xtemp', 'password')"
### 文件传输问题
**问题**:“SMB连接失败”
Solution:
- Verify SMB share exists: net share
- Check network connectivity: ping
- Verify credentials: smbclient -U user
**问题**:“文件上传验证失败”
Solution: Check available disk space on remote machine diskspace C:\temp\
### 工具执行
**问题**:“找不到工具”错误
Solution: Verify tool path in server.py matches your FlareVM installation Check: C:\Tools\sysinternals\Procmon.exe
**问题**:文件操作“权限被拒绝”
Solution: Ensure running WinRM as user with appropriate permissions Run: whoami on FlareVM
## 安全考虑
### 孤立
- 始终在隔离网络上运行FlareVM(除非需要,否则没有互联网)
- 对分析系统和生产系统使用单独的凭据
- 在执行未知二进制文件之前快照FlareVM
### 凭据管理
- 使用系统密钥环(不是硬编码密码)
- 定期轮换凭据
- 使用WinRM的最低权限用户帐户
### 网络安全
- 将WinRM限制为仅限受信任的网络
- 如果通过不受信任的网络连接,请使用VPN
- 监视WinRM流量是否存在异常
### 恶意软件安全
- **永不** 在主机上执行未知二进制文件
- **总是** 使用FlareVM检测可疑恶意软件
- 在行为分析之前验证VM快照
- 将FakeNet用于网络连接的恶意软件
## 贡献
欢迎投稿!拜托:
1. 分叉存储库
1. 创建特征分支(`git checkout -b feature/amazing-feature`)
1. 添加新功能的测试
1. 更新文档
1. 提交拉取请求
## 许可证
本项目按原样提供,用于安全研究和恶意软件分析。
## 参考文献
-
- [模型上下文协议](https://modelcontextprotocol.io/)
- [WinRM文档](https://docs.microsoft.com/en-us/windows/win32/winrm/about-windows-remote-management)
- [Frida动态仪器](https://frida.re/)
- [IDA Pro MCP插件](https://github.com/mandiant/ida-pro-mcp)
## 支持
对于问题、疑问或建议:
- 在GitHub上打开一个问题
- 检查现有文档
- 审查特定工具的文档
______________________________________________________________________
**最后更新**: 2026-04-17
**版本**: 1.0.0