Wireshark 常用指令
一、基础命令与操作
-
启动Wireshark:直接在命令行输入wireshark或tshark(Wireshark的命令行版本)启动程序。
-
捕获数据包:在Wireshark界面点击红色圆形按钮开始捕获,或使用tshark -i <接口名>命令。
-
停止捕获:点击黑色方形按钮停止捕获,或使用Ctrl+C终止tshark命令。
-
保存捕获文件:使用File -> Save保存为.pcap或.pcapng格式。
-
打开捕获文件:使用File -> Open打开已有的捕获文件。
-
应用过滤器:在捕获窗口上方的过滤器栏输入过滤条件,如ip.src == 192.168.1.1。
-
清除过滤器:点击过滤器栏右侧的“X”按钮清除当前过滤器。
-
颜色规则:使用View -> Coloring Rules为不同协议或条件设置不同颜色。
-
时间戳格式:使用View -> Time Display Format选择时间戳显示格式。
-
显示/隐藏列:右键点击列标题,选择显示或隐藏特定列。
二、捕获与接口相关命令
-
列出所有接口:tshark -D列出所有可用于捕获的网络接口。
-
指定接口捕获:tshark -i <接口名>指定接口进行数据包捕获。
-
捕获特定数量的数据包:tshark -c <数量>捕获指定数量的数据包后自动停止。
-
捕获到文件:tshark -i <接口名> -w <文件名>将捕获的数据包保存到文件中。
-
从文件读取并捕获:tshark -r <文件名> -i <接口名>从文件中读取过滤器条件并在接口上应用。
-
设置捕获缓冲区大小:tshark -B <大小>设置捕获缓冲区大小(单位:MB)。
-
设置快照长度:tshark -s <长度>设置捕获每个数据包的最大字节数(快照长度)。
-
捕获时应用显示过滤器:tshark -f "<过滤器>"在捕获时应用显示过滤器。
-
捕获时应用捕获过滤器:tshark -F "<过滤器>"在捕获时应用捕获过滤器。
-
连续捕获模式:tshark -l启用连续捕获模式,实时处理捕获的数据包。
三、显示过滤器与协议分析
-
IP地址过滤:ip.src == 192.168.1.1或ip.dst == 192.168.1.1过滤源或目的IP地址。
-
端口过滤:tcp.port == 80或udp.port == 53过滤特定TCP或UDP端口。
-
协议过滤:http、dns、tftp等直接过滤特定协议的数据包。
-
MAC地址过滤:eth.src == 00:11:22:33:44:55或eth.dst == 00:11:22:33:44:55过滤源或目的MAC地址。
-
子网过滤:ip.src net 192.168.1.0/24过滤源IP地址属于特定子网的数据包。
-
逻辑运算:使用and、or、not进行逻辑运算,如ip.src == 192.168.1.1 and tcp.port == 80。
-
长度过滤:frame.len == <长度>过滤特定长度的数据包。
-
内容过滤:tcp.payload contains "GET"过滤TCP负载中包含特定字符串的数据包。
-
自定义列:使用View -> Add/Remove Columns添加或删除自定义列。
-
协议层次结构:使用Protocol Hierarchy查看数据包的协议层次结构。
四、高级分析与统计
-
流量图:使用Statistics -> Flow Graph生成流量图,分析数据包流向。
-
会话统计:使用Statistics -> Conversations查看会话统计信息。
-
端点统计:使用Statistics -> Endpoints查看网络中的端点信息。
-
服务响应时间:使用Statistics -> Service Response Time分析服务响应时间。
-
IO图表:使用Statistics -> IO Graph生成IO图表,可视化数据包流量。
-
专家信息:使用Analyze -> Expert Info查看专家信息,快速定位潜在问题。
-
数据包注释:右键点击数据包,选择Packet Comment添加注释。
-
数据包标记:使用Edit -> Mark Packet或快捷键Ctrl+M标记数据包。
-
数据包列表导出:使用File -> Export Packet Dissections -> As CSV...导出数据包列表为CSV文件。
-
数据包详情导出:使用File -> Export Packet Details -> As Plain Text...导出数据包详情为纯文本文件。
五、TSHARK命令行进阶
-
实时输出:tshark -i <接口名> -l -V实时输出捕获的数据包详细信息。
-
指定输出格式:tshark -i <接口名> -T <格式>指定输出格式,如-T text、-T pdml等。
-
只输出特定字段:tshark -i <接口名> -e <字段名>只输出指定字段的信息。
-
读取文件并输出:tshark -r <文件名> -V读取文件并输出详细数据包信息。
-
输出到文件:tshark -i <接口名> -w <输出文件名>将捕获的数据包保存到文件中。
-
合并文件:mergecap <输入文件1> <输入文件2> -w <输出文件>合并多个捕获文件。
-
解码协议:tshark -i <接口名> -d <协议名>.<字段名>==<值>解码自定义或未知协议。
-
设置时间参考:tshark -i <接口名> -t ad、-t e、-t u、-t r设置时间戳参考类型。
-
指定捕获文件类型:tshark -r <文件名>.pcapng或.pcap指定捕获文件类型。
-
捕获时指定环回接口:tshark -i lo捕获环回接口的数据包。
六、流量分析与监控
-
流量监控:tshark -i <接口名> -c 1000 -z io,phout监控网络流量并生成报告。
-
会话统计:tshark -i <接口名> -z conv,eth生成会话统计信息。
-
端口统计:tshark -i <接口名> -z port,eth生成端口统计信息。
-
HTTP分析:tshark -i <接口名> -z http,tree分析HTTP流量并生成树状图。
-
DNS分析:tshark -i <接口名> -z dns,tree分析DNS流量并生成树状图。
-
流量矩阵:tshark -i <接口名> -z flow,eth生成流量矩阵。
-
自定义统计:使用tshark -z后跟自定义统计选项生成统计报告。
-
流量捕获限制:tshark -i <接口名> -c <数量> -b duration:<秒>限制捕获时间为指定秒数。
-
流量捕获文件大小限制:tshark -i <接口名> -b filesize:
限制捕获文件大小为指定MB。 -
流量捕获文件数量限制:tshark -i <接口名> -b files:<数量>限制捕获文件数量为指定数量。
七、数据恢复与取证
-
数据恢复:使用File -> Export Objects -> HTTP等选项导出捕获文件中的特定对象。
-
文件分片重组:使用File -> Export Objects -> Reassemble TCP Streams重组TCP分片文件。
八、高级过滤与解析
-
复杂过滤表达式:结合使用多个过滤条件,如ip.src == 192.168.1.1 and tcp.port == 80 and http.request.method == "GET"。
-
基于时间的过滤:使用frame.time_relative或frame.time字段进行基于时间的过滤,如frame.time_relative >= 0.001。
-
基于序列号的过滤:使用frame.number字段进行基于数据包序列号的过滤,如frame.number == 10。
-
基于长度的过滤:使用frame.len或ip.len等字段进行基于数据包或特定协议层长度的过滤。
-
基于校验和的过滤:检查数据包的校验和是否正确,如ip.checksum_status == 0表示校验和正确。
-
基于TCP标志的过滤:使用tcp.flags字段过滤特定TCP标志的数据包,如tcp.flags.syn == 1表示SYN包。
-
基于UDP长度的过滤:使用udp.length字段过滤特定长度的UDP数据包。
-
基于ICMP类型的过滤:使用icmp.type字段过滤特定类型的ICMP数据包,如icmp.type == 8表示Echo请求。