PCAP文件分析工具

mcpcap是一个模块化的Python MCP服务器,用于分析PCAP文件,支持DNS、DHCP、ICMP等多种协议分析,适用于网络安全、网络故障排查和取证调查。

  • by mcpcap
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 mcpcap/mcpcap

使用说明

mcpcap(通常指一种用于网络数据捕获的文件格式,全称可能为Microsoft Common Packet Capture,但具体名称可能因上下文而异,此处直接翻译为“MCPCAP”以保持原样)

一个用于分析PCAP文件的模块化Python MCP(模型上下文协议)服务器。mcpcap使大型语言模型(LLMs)能够使用特定于协议的分析工具读取和分析网络数据包捕获文件,这些工具接受本地文件路径或远程URL作为参数(无需文件上传,只需提供PCAP文件的路径或URL)。

概述

mcpcap采用模块化架构来分析PCAP文件中的各种网络协议。每个模块都提供了专门的分析工具,这些工具可以独立调用并适用于任何PCAP文件,使其非常适合与Claude Desktop和其他MCP客户端进行集成。

主要特点

  • 无状态MCP工具每个分析接受PCAP文件路径或URL作为参数(无需文件上传)
  • 模块化架构DNS、DHCP、ICMP和CapInfos模块,具有对新协议的轻松扩展性
  • 本地与远程PCAP支持分析来自本地存储或HTTP URL的文件
  • Scapy 集成利用scapy强大的数据包解析能力
  • 专业分析提示安全、网络和法证分析指南
  • JSON 响应针对大型语言模型(LLM)消费优化的结构化数据格式

安装

mcpcap 需要 Python 3.10 或更高版本。

使用 pip

pip install mcpcap

使用紫外线

uv add mcpcap

使用uvx(一次性使用)

uvx mcpcap

快速入门

1. 启动MCP服务器

以无状态MCP服务器模式启动mcpcap:

# Default: Start with DNS, DHCP, and ICMP modules
mcpcap

# Start with specific modules only
mcpcap --modules dns

# With packet analysis limits
mcpcap --max-packets 1000

2. 连接您的MCP客户端

配置您的MCP客户端(如Claude Desktop)以连接到mcpcap服务器:

{
  "mcpServers": {
    "mcpcap": {
      "command": "mcpcap",
      "args": []
    }
  }
}

3. 分析PCAP文件

通过提供文件路径或URL(不支持文件上传),使用分析工具处理任何PCAP文件:

DNS分析:

analyze_dns_packets("/path/to/dns.pcap")
analyze_dns_packets("https://example.com/remote.pcap")

DHCP分析:

analyze_dhcp_packets("/path/to/dhcp.pcap")
analyze_dhcp_packets("https://example.com/dhcp-capture.pcap")

ICMP分析:

analyze_icmp_packets("/path/to/icmp.pcap")
analyze_icmp_packets("https://example.com/ping-capture.pcap")

CapInfos分析:

analyze_capinfos("/path/to/any.pcap")
analyze_capinfos("https://example.com/capture.pcap")

可用工具

DNS分析工具

  • **analyze_dns_packets(pcap_file)**完整的DNS流量分析
    • 提取DNS查询和响应
    • 识别查询的域名和子域名
    • 分析查询类型(A、AAAA、MX、CNAME 等)
    • 追踪查询频率和模式
    • 检测潜在的安全问题

DHCP分析工具

  • **analyze_dhcp_packets(pcap_file)**全面的DHCP流量分析
    • 跟踪DHCP事务(DISCOVER、OFFER、REQUEST、ACK)
    • 识别DHCP客户端和服务器
    • 监控IP地址分配和租约信息
    • 分析DHCP选项和配置
    • 检测DHCP异常和安全问题

ICMP分析工具

  • **analyze_icmp_packets(pcap_file)**完整的ICMP流量分析
    • 分析带有响应时间的ping请求和回复
    • 识别网络连接性和可达性问题
    • 追踪TTL值和路由路径(traceroute数据)
    • 检测ICMP错误消息(不可达、超时)
    • 监控潜在的基于ICMP的攻击或侦察活动

CapInfos分析工具

  • **analyze_capinfos(pcap_file)**PCAP文件的元数据和统计信息
    • 文件信息(大小、名称、链路层封装)
    • 数据包统计(数量、数据大小、平均数据包大小)
    • 时间分析(持续时间、时间戳、数据包速率)
    • 数据吞吐量指标(字节/秒,比特/秒)
    • 类似于Wireshark的capinfos(1)工具

分析提示

mcpcap提供专门的分析提示来指导大型语言模型(LLM)的分析:

DNS 提示

  • security_analysis - 聚焦威胁检测、DGA(域名生成算法)域名、DNS隧道技术
  • network_troubleshooting - 识别DNS性能和配置问题
  • forensic_investigation - 时间线重建和证据收集

DHCP 提示符

  • dhcp_network_analysis - 网络管理和IP管理
  • dhcp_security_analysis - 安全威胁和流氓DHCP检测
  • dhcp_forensic_investigation - DHCP事务的法证分析

ICMP 提示

  • icmp_network_diagnostics - 网络连接和路径分析
  • icmp_security_analysis - 基于ICMP的攻击和侦察检测
  • icmp_forensic_investigation - 时间线重建和网络映射

配置选项

模块选择

# Load specific modules
mcpcap --modules dns              # DNS analysis only
mcpcap --modules dhcp             # DHCP analysis only
mcpcap --modules icmp             # ICMP analysis only  
mcpcap --modules dns,dhcp,icmp,capinfos    # All modules (default)

分析限制

# Limit packet analysis for large files
mcpcap --max-packets 1000

完整配置示例

mcpcap --modules dns,dhcp,icmp,capinfos --max-packets 500

CLI 参考指南

mcpcap [--modules MODULES] [--max-packets N]

选项:

  • --modules MODULES逗号分隔的要加载的模块(默认: dns,dhcp,icmp,capinfos)
    • 可用模块: dns, dhcp, icmp, capinfos
  • --max-packets N每个文件最多分析的数据包数(默认:无限制)

示例:

# Start with all modules
mcpcap

# DNS analysis only
mcpcap --modules dns

# With packet limits for large files
mcpcap --max-packets 1000

示例

示例PCAP文件已包含在内 examples/ 目录:

  • dns.pcap - 用于测试DNS分析的DNS流量
  • dhcp.pcap - DHCP 四向握手捕获
  • icmp.pcap - ICMP ping 和 traceroute 流量

与MCP Inspector一起使用

npm install -g @modelcontextprotocol/inspector
npx @modelcontextprotocol/inspector mcpcap

然后测试工具:

// In the MCP Inspector web interface
analyze_dns_packets("./examples/dns.pcap")
analyze_dhcp_packets("./examples/dhcp.pcap")
analyze_icmp_packets("./examples/icmp.pcap")
analyze_capinfos("./examples/dns.pcap")

建筑学

mcpcap的模块化设计支持轻松扩展:

核心组件

  1. **BaseModule(基础模块)**共享文件处理、验证和远程下载
  2. 协议模块DNS、DHCP 和 ICMP 分析实现
  3. MCP 接口工具注册和提示管理
  4. FastMCP 框架MCP服务器实现

工具流程

MCP Client Request → analyze_*_packets(pcap_file)
                  → BaseModule.analyze_packets()
                  → Module._analyze_protocol_file()
                  → Structured JSON Response

添加新模块

通过以下方式创建新的协议模块:

  1. 继承自 BaseModule
  2. 实施 _analyze_protocol_file(pcap_file)
  3. 在MCP服务器上注册分析工具
  4. 添加专业分析提示

未来的模块可能包括:

  • HTTP/HTTPS流量分析
  • TCP连接跟踪
  • BGP路由分析
  • SSL/TLS证书分析
  • 网络取证工具

远程文件支持

两种分析工具均可通过HTTP/HTTPS URL接收远程PCAP文件:

# Examples of remote analysis
analyze_dns_packets("https://wiki.wireshark.org/uploads/dns.cap")
analyze_dhcp_packets("https://example.com/network-capture.pcap")
analyze_icmp_packets("https://example.com/ping-test.pcap")
analyze_capinfos("https://example.com/network-metadata.pcap")

特点:

  • 自动临时下载与清理
  • 对……的支持 .pcap, .pcapng,以及 .cap 文件
  • 支持HTTP/HTTPS协议

安全考虑事项

在分析PCAP文件时:

  • 文件可能包含敏感的网络信息
  • 在可能的情况下,远程下载通过HTTPS进行
  • 临时文件会自动清理
  • 考虑远程文件的来源和可信度

做出贡献

欢迎投稿!投稿领域包括:

  • 新协议模块添加对HTTP、BGP、TCP等的支持。
  • 增强分析改进现有的DNS/DHCP分析
  • 安全特性增加更多的威胁检测能力
  • 演出优化大型PCAP文件的分析

许可证

麻省理工学院(MIT)

要求

  • Python 3.10及以上版本
  • Scapy(数据包解析与分析)
  • 请求(远程文件访问)
  • fastmcp(MCP服务器框架)

文档

支持

对于问题、疑问或功能请求,请在GitHub上提交一个议题。