«

Wireshark 常用指令

Paladin 发布于 阅读:366 oTher


一、基础命令与操作

  1. 启动Wireshark:直接在命令行输入wireshark或tshark(Wireshark的命令行版本)启动程序。

  2. 捕获数据包:在Wireshark界面点击红色圆形按钮开始捕获,或使用tshark -i <接口名>命令。

  3. 停止捕获:点击黑色方形按钮停止捕获,或使用Ctrl+C终止tshark命令。

  4. 保存捕获文件:使用File -> Save保存为.pcap或.pcapng格式。

  5. 打开捕获文件:使用File -> Open打开已有的捕获文件。

  6. 应用过滤器:在捕获窗口上方的过滤器栏输入过滤条件,如ip.src == 192.168.1.1。

  7. 清除过滤器:点击过滤器栏右侧的“X”按钮清除当前过滤器。

  8. 颜色规则:使用View -> Coloring Rules为不同协议或条件设置不同颜色。

  9. 时间戳格式:使用View -> Time Display Format选择时间戳显示格式。

  10. 显示/隐藏列:右键点击列标题,选择显示或隐藏特定列。

二、捕获与接口相关命令

  1. 列出所有接口:tshark -D列出所有可用于捕获的网络接口。

  2. 指定接口捕获:tshark -i <接口名>指定接口进行数据包捕获。

  3. 捕获特定数量的数据包:tshark -c <数量>捕获指定数量的数据包后自动停止。

  4. 捕获到文件:tshark -i <接口名> -w <文件名>将捕获的数据包保存到文件中。

  5. 从文件读取并捕获:tshark -r <文件名> -i <接口名>从文件中读取过滤器条件并在接口上应用。

  6. 设置捕获缓冲区大小:tshark -B <大小>设置捕获缓冲区大小(单位:MB)。

  7. 设置快照长度:tshark -s <长度>设置捕获每个数据包的最大字节数(快照长度)。

  8. 捕获时应用显示过滤器:tshark -f "<过滤器>"在捕获时应用显示过滤器。

  9. 捕获时应用捕获过滤器:tshark -F "<过滤器>"在捕获时应用捕获过滤器。

  10. 连续捕获模式:tshark -l启用连续捕获模式,实时处理捕获的数据包。

三、显示过滤器与协议分析

  1. IP地址过滤:ip.src == 192.168.1.1或ip.dst == 192.168.1.1过滤源或目的IP地址。

  2. 端口过滤:tcp.port == 80或udp.port == 53过滤特定TCP或UDP端口。

  3. 协议过滤:http、dns、tftp等直接过滤特定协议的数据包。

  4. MAC地址过滤:eth.src == 00:11:22:33:44:55或eth.dst == 00:11:22:33:44:55过滤源或目的MAC地址。

  5. 子网过滤:ip.src net 192.168.1.0/24过滤源IP地址属于特定子网的数据包。

  6. 逻辑运算:使用and、or、not进行逻辑运算,如ip.src == 192.168.1.1 and tcp.port == 80。

  7. 长度过滤:frame.len == <长度>过滤特定长度的数据包。

  8. 内容过滤:tcp.payload contains "GET"过滤TCP负载中包含特定字符串的数据包。

  9. 自定义列:使用View -> Add/Remove Columns添加或删除自定义列。

  10. 协议层次结构:使用Protocol Hierarchy查看数据包的协议层次结构。

四、高级分析与统计

  1. 流量图:使用Statistics -> Flow Graph生成流量图,分析数据包流向。

  2. 会话统计:使用Statistics -> Conversations查看会话统计信息。

  3. 端点统计:使用Statistics -> Endpoints查看网络中的端点信息。

  4. 服务响应时间:使用Statistics -> Service Response Time分析服务响应时间。

  5. IO图表:使用Statistics -> IO Graph生成IO图表,可视化数据包流量。

  6. 专家信息:使用Analyze -> Expert Info查看专家信息,快速定位潜在问题。

  7. 数据包注释:右键点击数据包,选择Packet Comment添加注释。

  8. 数据包标记:使用Edit -> Mark Packet或快捷键Ctrl+M标记数据包。

  9. 数据包列表导出:使用File -> Export Packet Dissections -> As CSV...导出数据包列表为CSV文件。

  10. 数据包详情导出:使用File -> Export Packet Details -> As Plain Text...导出数据包详情为纯文本文件。

五、TSHARK命令行进阶

  1. 实时输出:tshark -i <接口名> -l -V实时输出捕获的数据包详细信息。

  2. 指定输出格式:tshark -i <接口名> -T <格式>指定输出格式,如-T text、-T pdml等。

  3. 只输出特定字段:tshark -i <接口名> -e <字段名>只输出指定字段的信息。

  4. 读取文件并输出:tshark -r <文件名> -V读取文件并输出详细数据包信息。

  5. 输出到文件:tshark -i <接口名> -w <输出文件名>将捕获的数据包保存到文件中。

  6. 合并文件:mergecap <输入文件1> <输入文件2> -w <输出文件>合并多个捕获文件。

  7. 解码协议:tshark -i <接口名> -d <协议名>.<字段名>==<值>解码自定义或未知协议。

  8. 设置时间参考:tshark -i <接口名> -t ad、-t e、-t u、-t r设置时间戳参考类型。

  9. 指定捕获文件类型:tshark -r <文件名>.pcapng或.pcap指定捕获文件类型。

  10. 捕获时指定环回接口:tshark -i lo捕获环回接口的数据包。

六、流量分析与监控

  1. 流量监控:tshark -i <接口名> -c 1000 -z io,phout监控网络流量并生成报告。

  2. 会话统计:tshark -i <接口名> -z conv,eth生成会话统计信息。

  3. 端口统计:tshark -i <接口名> -z port,eth生成端口统计信息。

  4. HTTP分析:tshark -i <接口名> -z http,tree分析HTTP流量并生成树状图。

  5. DNS分析:tshark -i <接口名> -z dns,tree分析DNS流量并生成树状图。

  6. 流量矩阵:tshark -i <接口名> -z flow,eth生成流量矩阵。

  7. 自定义统计:使用tshark -z后跟自定义统计选项生成统计报告。

  8. 流量捕获限制:tshark -i <接口名> -c <数量> -b duration:<秒>限制捕获时间为指定秒数。

  9. 流量捕获文件大小限制:tshark -i <接口名> -b filesize:限制捕获文件大小为指定MB。

  10. 流量捕获文件数量限制:tshark -i <接口名> -b files:<数量>限制捕获文件数量为指定数量。

七、数据恢复与取证

  1. 数据恢复:使用File -> Export Objects -> HTTP等选项导出捕获文件中的特定对象。

  2. 文件分片重组:使用File -> Export Objects -> Reassemble TCP Streams重组TCP分片文件。

八、高级过滤与解析

  1. 复杂过滤表达式:结合使用多个过滤条件,如ip.src == 192.168.1.1 and tcp.port == 80 and http.request.method == "GET"。

  2. 基于时间的过滤:使用frame.time_relative或frame.time字段进行基于时间的过滤,如frame.time_relative >= 0.001。

  3. 基于序列号的过滤:使用frame.number字段进行基于数据包序列号的过滤,如frame.number == 10。

  4. 基于长度的过滤:使用frame.len或ip.len等字段进行基于数据包或特定协议层长度的过滤。

  5. 基于校验和的过滤:检查数据包的校验和是否正确,如ip.checksum_status == 0表示校验和正确。

  6. 基于TCP标志的过滤:使用tcp.flags字段过滤特定TCP标志的数据包,如tcp.flags.syn == 1表示SYN包。

  7. 基于UDP长度的过滤:使用udp.length字段过滤特定长度的UDP数据包。

  8. 基于ICMP类型的过滤:使用icmp.type字段过滤特定类型的ICMP数据包,如icmp.type == 8表示Echo请求。

Wireshark