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安全, 云资产清单, 可观测性, 域名收集, 威胁情报, 安全插件, 密码管理, 开发者工具, 开发者评论分析, 恶意软件分析, 样本分析, 沙箱, 签名检测, 网络信息收集, 网络安全, 自动化攻击, 逆向工程, 隐私保护