Wireshark MCP服务器
一种模型上下文协议(MCP)服务器,通过以下方式提供网络数据包分析功能 Wireshark/鲨鱼 在远程机器(例如Kali Linux)上。
该服务器使AI助手能够通过标准化的MCP接口执行复杂的网络流量分析、数据包捕获、协议检查和以安全为重点的操作。
特性
- 实时数据包捕获 -使用BPF过滤器捕获远程接口上的网络流量
- PCAP分析 -读取并分析现有的pcap文件
- 协议统计 -生成协议层次结构、对话、端点和I/O统计信息
- 河流重建 -遵循TCP、UDP、HTTP和TLS流
- 文件提取 -从HTTP、SMB、DICOM、IMF和TFTP流量中提取文件
- 深度包检测 -解码包含完整协议细节的数据包
- 凭证提取 -在HTTP基本身份验证、FTP、Telnet和表单提交中搜索凭据
- HTTP对象导出 -从捕获中列出和导出HTTP对象
先决条件
- Node.js 18+
- SSH访问安装了tshark的远程计算机(例如Kali Linux)
- 配置了基于SSH密钥的身份验证(无密码)
sudo远程机器上的数据包捕获访问
安装
git clone https://github.com/schwarztim/sec-wireshark-mcp.git
cd sec-wireshark-mcp
npm install
npm run build配置
设置以下环境变量:
| 变量 | 描述 | 默认值 |
|---|---|---|
WIRESHARK_SSH_HOST | 远程计算机的SSH主机名或IP | kali |
WIRESHARK_SSH_USER | SSH用户名(如果使用SSH配置,则可选) | (空) |
WIRESHARK_PCAP_DIR | 远程主机上的pcap文件目录 | /tmp/mcp-pcaps |
配置示例
export WIRESHARK_SSH_HOST="192.168.1.100"
export WIRESHARK_SSH_USER="kali"或者使用SSH配置条目:
# ~/.ssh/config
Host kali
HostName 192.168.1.100
User kali
IdentityFile ~/.ssh/id_rsa使用Claude Desktop
添加到您的Claude Desktop配置(~/.claude/user-mcps.json 或克劳德桌面设置):
{
"mcpServers": {
"wireshark": {
"command": "node",
"args": ["/path/to/sec-wireshark-mcp/dist/index.js"],
"env": {
"WIRESHARK_SSH_HOST": "kali",
"WIRESHARK_SSH_USER": "kali"
}
}
}
}可用工具
tshark_list_interfaces
列出远程计算机上用于数据包捕获的可用网络接口。
tshark_capture
在指定接口上启动数据包捕获。
参数:
interface(必填):网络接口(例如。,eth0,wlan0)count:要捕获的数据包数量(默认值:10,最大值:1000)filterBPF捕获滤波器(例如。,port 80,host 192.168.1.1)timeout:捕获超时(秒)(默认值:10,最大值:60)outputFile:将捕获保存到远程主机上的pcap文件
tshark_read_pcap
读取并分析pcap文件。
参数:
file(必需):远程主机上pcap文件的路径filter:Wireshark显示过滤器count:要返回的最大数据包数(默认值:100,最大值:1000)fields:要提取的特定字段(例如。,['ip.src', 'ip.dst', 'tcp.port'])
tshark_filter
对pcap文件应用显示过滤器。
参数:
file(必填):pcap文件的路径filter(必填):显示过滤器(例如。,http.request,dns,tcp.flags.syn == 1)outputFormat:json,text,或fields(默认值:json)fields:使用时要提取的字段fields格式
tshark_stats
从pcap文件生成协议统计信息。
参数:
file(必填):pcap文件的路径type(必填):hierarchy,conversations,endpoints,io,http,或dnsprotocol:用于对话/端点的协议(例如。,tcp,udp,ip)
tshark_follow_stream
重建TCP、UDP、HTTP或TLS流。
参数:
file(必填):pcap文件的路径protocol(必填):tcp,udp,http,或tlsstreamIndex:流索引号(默认值:0)format:ascii,hex,或raw(默认值:ascii)
tshark_extract_files
从协议流量中提取文件。
参数:
file(必填):pcap文件的路径protocol:http,dicom,imf,smb,或tftp(默认值:http)outputDir:提取文件的目录(默认:/tmp/mcp-extracted)
tshark_decode
具有完整协议细节的深度数据包检查。
参数:
file(必填):pcap文件的路径packetNumber:要解码的特定数据包编号filter:显示筛选器以选择数据包protocols:要显示的具体协议(例如。,['http', 'tcp', 'ip'])verbose:显示所有协议详细信息(默认值:false)
tshark_extract_credentials
在网络流量中搜索潜在凭据。
参数:
file(必填):pcap文件的路径
搜索HTTP基本身份验证、FTP凭据、HTTP POST表单数据和Telnet数据。
tshark_export_objects
从捕获中列出和导出HTTP对象。
参数:
file(必填):pcap文件的路径listOnly:仅列出对象而不提取(默认值:true)outputDir:提取对象的目录
安全考虑
- 此服务器通过SSH在远程计算机上执行命令
- 实施输入净化以防止命令注入
- 使用具有适当权限的SSH密钥身份验证
- 考虑捕获机器的网络分段
- 远程机器需要
sudo实时捕捉访问权限 - 凭据提取功能应仅用于授权的安全测试
发展
# Run in development mode
npm run dev
# Build for production
npm run build
# Start production server
npm start许可证
MIT许可证-请参阅 许可证 了解详情。
贡献
欢迎投稿!请随时提交拉取请求。
