securi3ytalent/Malware-Analysis-MCP-server

GitHub: securi3ytalent/Malware-Analysis-MCP-server

基于 MCP 协议的恶意软件分析服务器,为 Cursor IDE 集成 MalwareBazaar 和 VirusTotal 威胁情报查询能力。

Stars: 0 | Forks: 0

# 恶意软件分析 MCP 服务器 (Cursor MCP Server) 这是一个 **Cursor MCP (Model Context Protocol) 服务器**,通过与 MalwareBazaar Community API/VirusTotal 交互,为授权的防御性研究工作流程提供**实时威胁情报 / 恶意软件样本元数据**。 ## 功能概览 - 来自 MalwareBazaar 的**最新样本元数据** (`get_recent`) - 针对特定 `sha256` 的**详细元数据** (`get_info`) - 与特定**标签**关联的样本 (`get_taginfo`) - VirusTotal 分析统计摘要 (`vt_lookup`) - Telegram 告警 (`send_alert`) - 通过计算**本地文件**的哈希值,对照 MalwareBazaar/VirusTotal 进行检查 (`check_local_file`) - 针对恶意软件家族/签名的**推荐分析博客/资源** (`suggest_analysis_blogs`) ## 系统要求 - Windows 10+ - Node.js (推荐 LTS 版本) - `npm` ## 安装 在项目文件夹内执行: ``` npm install ``` ## 配置 (.env) 在根目录的 `.env` 文件中进行设置: ``` PORT=3000 # MalwareBazaar(必需) MB_AUTH_KEY=YOUR_ABUSECH_AUTH_KEY # VirusTotal(可选 - 仅用于 vt_lookup) VT_API_KEY=YOUR_VT_KEY # Telegram(可选 - 仅用于 send_alert) TG_BOT_TOKEN=YOUR_BOT_TOKEN TG_CHAT_ID=YOUR_CHAT_ID ``` - **获取 `MB_AUTH_KEY` 的地址**: `https://auth.abuse.ch/` ## Cursor MCP 设置 (重要) Cursor 从 `mcp.json` 运行 MCP 服务器。 对于此仓库,**全局 Cursor 配置**文件 `c:\Users\user\.cursor\mcp.json` 包含一个使用 stdio 传输运行的 `malware-mcp` 条目: - `cmd.exe /c npx -y ts-node ${workspaceFolder}/mcp-server.ts` - 通过 `envFile: ${workspaceFolder}/.env` 自动加载 `.env` ### 更改配置后 - 重启 Cursor (或重新加载 MCP) 以加载新配置。 ## 运行 (手动测试) 你也可以在本地运行它: ``` npx ts-node mcp-server.ts ``` 这是一个 **stdio MCP 服务器**,因此你不会看到“Web 服务器风格”的输出 —— Cursor/MCP 主机将通过 MCP 协议进行通信。 ## MCP 工具 ### 帮助 打印快速使用指南,列出所有工具和示例提示/参数。 **输入** - 无 **示例** ``` Run help ``` ### 获取最近 从 MalwareBazaar 获取最新样本元数据。 **输入** - `limit` (1..100, 默认 10) - `selector` (`"100"` 或 `"time"`, 默认 `"100"`) **示例** ``` { "limit": 10, "selector": "100" } ``` ### 获取信息 获取特定样本的完整元数据。 **输入** - `hash` (sha256 字符串) **示例** ``` { "hash": "81ddacc1d4689616b993f34465cb372e6046c035b45a4831343bd55ed37d48ee" } ``` ### 获取标签信息 获取与特定标签关联的样本。 **输入** - `tag` (必需) - `limit` (1..1000, 默认 100) **示例** ``` { "tag": "TrickBot", "limit": 50 } ``` ### virustotal_lookup (别名: vt_lookup) VirusTotal 分析统计摘要。 **输入** - `hash` (sha256 字符串) **示例** ``` { "hash": "81ddacc1d4689616b993f34465cb372e6046c035b45a4831343bd55ed37d48ee" } ``` ### 发送警报 通过你的 Telegram 机器人发送消息。 **输入** - `message` (字符串) **示例** ``` { "message": "🚨 New malware sample: ..." } ``` ### get_file (已禁用) 此工具被故意**禁用**,因为它涉及下载活动的恶意软件二进制文件。 ### 检查本地文件 计算本地文件(在本机上)的 **SHA256**,并检查它是否与 MalwareBazaar 中的已知条目匹配。可选择通过 SHA256 执行 **VirusTotal** 查询 (需要 `VT_API_KEY`)。 **输入** - `path` (字符串, 必需): 文件的绝对路径 - `vt` (布尔值, 可选, 默认 `true`): 同时运行 VirusTotal 查询 **示例** ``` { "path": "C:\\\\Users\\\\user\\\\Downloads\\\\somefile.exe", "vt": true } ``` ### 建议分析博客 为相同的恶意软件家族/签名推荐相关的**分析博客/资源** (Malpedia / MITRE / abuse.ch / 供应商分析报告)。 你可以直接传递**签名名称**,或者传递一个**哈希值**,它会先尝试通过 MalwareBazaar 解析签名。 **输入** - `signature` (字符串, 可选) - `hash` (字符串, 可选; 推荐 sha256) **示例** ``` { "signature": "HijackLoader" } ``` ``` { "hash": "4f9669712b6cd325eba9e94faf73a7d6ac29cdb724e857f5693aebe542f64b94" } ``` ## 实用工具 (编码/加密/压缩/分析) 这些工具**离线**运行 (无上传),适用于快速数据转换和分析。 ### base64_encode ``` { "text": "hello" } ``` ### base64_decode ``` { "base64": "aGVsbG8=" } ``` ### url_encode / url_decode ``` { "text": "a+b c" } ``` ### hex_encode / hex_decode ``` { "text": "hello" } ``` ### gzip_compress 压缩 UTF-8 文本并返回 **base64**。 ``` { "text": "hello" } ``` ### gzip_decompress 从 **base64** (gzip 字节) 解压缩回 UTF-8。 ``` { "base64": "" } ``` ### hash_text ``` { "alg": "sha256", "text": "hello" } ``` ### entropy ``` { "text": "hello" } ``` ### hexdump_text ``` { "text": "hello", "limitBytes": 256 } ``` ### aes_gcm_encrypt 使用 AES-256-GCM 和 PBKDF2 派生密钥 (密码 + 盐) 加密 UTF-8 文本。返回一个 JSON 封装。 ``` { "text": "secret", "password": "pass123", "salt": "cyberchef-lite" } ``` ### aes_gcm_decrypt ``` { "envelope": "{...json...}", "password": "pass123" } ``` ## 文件 - `mcp-server.ts`: **真正的 MCP stdio 服务器** (推荐用于 Cursor MCP) ## 故障排除 - **`MalwareBazaar Auth-Key missing`**: 在 `.env` 中设置 `MB_AUTH_KEY`。 - **工具未在 Cursor 中显示**: 重启 Cursor 并检查 MCP 日志。 - **`VT API key missing`**: `vt_lookup` 需要在 `.env` 中设置 `VT_API_KEY`。 - **`VT API key missing`**: `virustotal_lookup` (或 `vt_lookup`) 需要在 `.env` 中设置 `VT_API_KEY`。 - **Telegram 错误**: 验证 `TG_BOT_TOKEN` 和 `TG_CHAT_ID`。
标签:API集成, Ask搜索, Conpot, Cursor, DAST, GNU通用公共许可证, IOC提取, IP 地址批量处理, MalwareBazaar, MCP服务器, MITM代理, Node.js, TypeScript, VirusTotal, Windows安全, 云资产清单, 可观测性, 域名收集, 威胁情报, 安全插件, 密码管理, 开发者工具, 开发者评论分析, 恶意软件分析, 样本分析, 沙箱, 签名检测, 网络信息收集, 网络安全, 自动化攻击, 逆向工程, 隐私保护