使用说明
🦖 Velociraptor法医MCP服务器
将Claude Desktop变成DFIR工作站。
一个统一的模型上下文协议(MCP)服务器,将Claude Desktop连接到您的Velociraptor实例和本地取证工具。在一台服务器上进行远程端点调查+本地证据分析。包括Velociraptor的Docker部署。
这有什么作用
您无需在Velociraptor GUI、终端VQL会话和取证脚本之间切换,只需与Claude交谈,它就会为您运行它们。请克劳德:
- “查找工作站-01,告诉我最后一次看到它是什么时候” → 向Velociraptor查询客户信息
- “从该端点收集用户列表” → 开始a
Linux.Sys.Users工件收集和检索结果 - “哈希/证据/恶意软件样本/中的所有文件” → 递归SHA-256哈希本地目录
- “检查syslog中是否提到该二进制文件” → 使用关键字搜索扫描系统日志
- “将文件元数据与日志条目交叉引用” → 将时间戳、哈希值和日志点击量关联到取证报告中
- “运行VQL查询以显示端点上所有正在运行的进程” → 直接执行自定义VQL
所有结果都会在聊天中返回。无复制粘贴。无标签切换。从终点到证据的完整法医链。
🛠️ 集成工具(12)
遥控——迅猛龙(vr_*)
| 工具 | 说明 |
|---|---|
| vr_身份验证 | 测试与Velociraptor的gRPC连接 |
| vr_get_agent_info | 按主机名查找客户端→ client_id,操作系统,代理版本,最后出现时间 |
| vr_run_vql | 在服务器上执行任意VQL查询 |
| vr_list_artifacts | 列出所有可用的客户端工件及其描述 |
| vr_artifact_details | 获取特定工件的完整规格 |
| vr_collect_artifact | 在远程端点上启动工件收集(返回flow_id) |
| vr_get_collection_results | 轮询并检索已完成的收集结果(具有重试逻辑) |
当地法医(Local_*)
| 工具 | 说明 |
|---|---|
| 本地_文件_元数据 | SHA-256、文件大小、时间戳(沙盒到SAFE_BASE) |
| local_hash_目录 | 递归散列目录中的每个文件 |
| 本地扫描日志 | 按关键字搜索Linux syslog或macOS统一日志 |
| local_correlate | 将文件元数据与日志条目进行交叉引用 |
| local_forensic_report | 结合文件+日志数据生成结构化取证报告 |
主要特点
- 双模:两种工具包都可以独立工作——只使用Velociraptor部署,只使用本地工具,或者两者都使用
- 路径沙盒:所有local_*工具验证路径是否保持在SAFE_BASE内
- 异步流轮询:收集结果会自动重试,直到流完成
- 多源伪影:自动处理具有多个数据源的工件
- 工具过滤:通过DISABLED_tools环境变量禁用单个工具
- 只读模式:使用READ_ONLY=true阻止写入操作(工件收集)
🚀 快速开始
先决条件
- Docker&Docker编写
- Python 3.11+
- 克劳德桌面
1.部署Velociraptor(Docker)
cd docker/
docker compose up -d
# Wait ~30 seconds for initialization
docker logs velociraptor --tail 10
# Should see: "Starting gRPC API server" and "Frontend is ready"
默认GUI:https://localhost:9889(admin/admin--更改此设置!)
2.生成API密钥
chmod +x generate-api-key.sh
./generate-api-key.sh
这创造了 api.config.yaml 使用gRPC凭据,并自动修复主机访问的连接字符串。
3.安装MCP服务器
cd ../
python3.11 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
4.配置
cp .env.example .env
# Edit .env — set your paths:
# VELOCIRAPTOR_API_KEY=/path/to/api.config.yaml
# SAFE_BASE=/home/youruser/evidence
5.配置克劳德桌面
添加到 ~/.config/Claude/claude_desktop_config.json (Linux)或 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"velociraptor-forensic": {
"command": "/path/to/velociraptor-forensic-mcp/.venv/bin/python",
"args": ["-m", "velociraptor_forensic_mcp"],
"cwd": "/path/to/velociraptor-forensic-mcp",
"env": {
"VELOCIRAPTOR_API_KEY": "/path/to/api.config.yaml",
"VELOCIRAPTOR_SSL_VERIFY": "false",
"SAFE_BASE": "/home/youruser/evidence",
"LOG_LEVEL": "INFO"
}
}
}
}
6.重新启动克劳德桌面
工具将自动显示。开始调查。
🔑 环境变量
| 变量 | 描述 | 默认值 | 必填 |
|---|---|---|---|
VELOCIRAPTOR_API_KEY |
api.config.yaml的路径 | -- | 用于远程工具 |
VELOCIRAPTOR_SSL_VERIFY |
验证gRPC TLS证书 | true |
|
VELOCIRAPTOR_TIMEOUT |
gRPC超时(秒) | 30 |
|
SAFE_BASE |
本地取证工具的根目录 | -- | 用于本地工具 |
MCP_SERVER_HOST |
绑定主机以进行SSE传输 | 127.0.0.1 |
|
MCP_SERVER_PORT |
绑定SSE传输端口 | 8000 |
|
LOG_LEVEL |
DEBUG/INFO/警告/错误 | INFO |
|
DISABLED_TOOLS |
逗号分隔的工具名称可禁用 | -- | |
READ_ONLY |
块工件收集 | false |
🐳 Docker Velociraptor安装程序
这 docker/ 文件夹包含在Docker中运行Velociraptor的所有内容,并映射了端口以避免常见冲突:
| 主机端口 | 服务 | 用途 |
|---|---|---|
| 9000 | 客户端前端 | Velociraptor代理签到 |
| 9001 | gRPC API | MCP服务器在此连接 |
| 9889 | Web GUI | 您的浏览器 |
注册测试客户端
要将运行Docker的机器注册为Velociraptor客户端:
cd docker/
# Copy client binary and config
docker cp velociraptor:/velociraptor/clients/linux/velociraptor_client_repacked ./velociraptor_client
chmod +x velociraptor_client
docker exec velociraptor cat client.config.yaml > client.config.yaml
sed -i 's|https://VelociraptorServer:8000/|https://localhost:9000/|' client.config.yaml
# Run the client (Ctrl+C to stop)
sudo ./velociraptor_client --config client.config.yaml client -v
💡 使用示例
全面终点调查
查找端点弹出窗口,收集其用户列表,并检查系统日志中是否有任何可疑条目
克劳德链: vr_get_agent_info → vr_collect_artifact → vr_get_collection_results → local_scan_syslog
文件完整性检查
“哈希/evention/case-2024/中的所有文件,并检查系统日志中是否出现任何文件”
克劳德链: local_hash_directory → local_correlate 对于每个可疑文件
自定义VQL调查
“运行VQL查询以显示客户端C.1393a876d1c48287上的所有侦听网络连接”
克劳德使用 vr_collect_artifact 随着 Linux.Network.Netstat 或通过以下方式编写自定义VQL vr_run_vql
快速分类
“扫描syslog查看“身份验证失败”并给我一个摘要”
克劳德使用 local_scan_syslog 并综合结果
📁 项目结构
velociraptor-forensic-mcp/
├── velociraptor_forensic_mcp/
│ ├── __init__.py # Package metadata
│ ├── __main__.py # CLI entry point
│ ├── config.py # Dataclass configs (Velociraptor, Forensic, Server)
│ ├── exceptions.py # Custom exception hierarchy
│ ├── vr_client.py # Velociraptor gRPC client
│ ├── forensic_helpers.py # Local forensic functions
│ └── server.py # FastMCP server with all tools/prompts/resources
├── docker/
│ ├── docker-compose.yaml # Velociraptor Docker deployment
│ └── generate-api-key.sh # API key generation script
├── tests/
│ └── test_forensic.py # Unit tests
├── pyproject.toml # Python packaging
├── .env.example # Configuration template
└── README.md
🔒 安全
- API密钥保护:
api.config.yaml包含私钥--chmod 600它 - 路径沙盒:所有本地工具仅限于SAFE_BASE目录
- 最小特权:使用生成API密钥
--role api,investigator不administrator - 工具过滤:通过DISABLED_tools禁用不需要的工具
- 只读模式:设置
READ_ONLY=true防止工件收集 - 永不承诺
api.config.yaml或.env到版本控制
🧪 运行测试
source .venv/bin/activate
pytest -v
🏗️ 建筑
该服务器将两个开源项目组合成一个统一的MCP接口:
- 远程工具 改编自 socforts/velociraptor mcp服务器 (gRPC操作)
- 本地工具 改编自 axdithyaxo/mcp法医工具包 (沙盒文件分析)
这两个工具包都根据设置的环境变量独立激活。您可以只运行Velociraptor,只运行本地,或两者同时运行。
⚠️ 法律免责声明
此工具用于 仅授权数字取证和事件响应。在从端点收集工件之前,始终确保您有适当的授权。未经授权访问计算机系统是非法的。
🤝 贡献
欢迎拉取请求。要添加新工具,请执行以下操作:
- 在中添加该功能
forensic_helpers.py(本地)或vr_client.py(远程) - 在中创建Pydantic输入模型
server.py - 在中注册该工具
_register_forensic_tools()或_register_velociraptor_tools() - 添加测试
- 提交PR
📬 联系
- 不一致: sgtwolf787
- github: @哈克罗比
白帽子或不戴帽子🎩
与克劳德一起建造。在实时Velociraptor部署上进行了测试。保持合法。