课时1 认识Wireshark的界面
Wireshark的界面
标题栏:显示不活的抓包文件的名称、Wireshark的版本号等
菜单栏
工具栏:常用功能的快捷按钮
Filter:筛选器
PackageList面板:显示每个数据帧的摘要,这里捕获到的实际上是数据帧。使用表格形式列出当前捕获到的数据包
PackageDetails:分析数据包的详细信息,分层次显示一个数据包里的内容
PackageBytes:以十六进制和ASCII码显示数据包的内容,这是数据包未经处理的样子,也就是在链路上传播时的样子
状态栏:最下面,包含专家信息、注释、包的数量
识别数据包的方法
一旦开始捕获,所获得的二进制数据就会根据不同协议结构进行规范,并显示在PackageDetail中
Wireshark中关于数据包的叫法主要有3个术语:帧、包、段
帧:起始点和终止点都是数据链路层
包:起始和目的地都是网络层
段:起始和目的地都是传输层
一个数据包的PackageDetails详解
第一层:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Frame 27: 430 bytes on wire (3440 bits), 430 bytes captured (3440 bits) on interface \Device\NPF_{02EC3CA0-E377-4309-8C57-BDF695F3784D}, id 0 ## 该线路上共有430B的数据,实际捕获到430B数据 Section number: 1 Interface id: 0 (\Device\NPF_{02EC3CA0-E377-4309-8C57-BDF695F3784D}) ##接口ID Encapsulation type: Ethernet (1) ## 封装类型 Arrival Time: Sep 12, 2017 20:14:16.839488000 中国标准时间 ## 捕获的日期时间 [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1505218456.839488000 seconds [Time delta from previous captured frame: 0.000298000 seconds] ## 当前数据包与前一个数据包的时间间隔 [Time delta from previous displayed frame: 0.000000000 seconds] ## 当前数据包与第一个数据包的时间间隔 [Time since reference or first frame: 4.260303000 seconds] Frame Number: 27 ## 帧序号 Frame Length: 430 bytes (3440 bits) ## 帧长度 Capture Length: 430 bytes (3440 bits) ## 捕获的帧长度 [Frame is marked: False] ## 当前帧是否做了标记 [Frame is ignored: False] ## 当前帧是否被忽略 [Protocols in frame: eth:ethertype:ip:tcp:http] ## 帧内封装的协议层次结构 [Coloring Rule Name: HTTP] ## 着色标记的协议名称 [Coloring Rule String: http || tcp.port == 80 || http2] ## 着色规则显示的字符串 Ethernet II, Src: VMware_c0:00:08 (00:50:56:c0:00:08), Dst: VMware_35:f9:e5 (00:0c:29:35:f9:e5) Internet Protocol Version 4, Src: 192.168.228.1, Dst: 192.168.228.135 Transmission Control Protocol, Src Port: 52711, Dst Port: 80, Seq: 1, Ack: 1, Len: 376 Hypertext Transfer Protocol
|
第二层:数据链路层
1 2 3 4 5 6 7 8 9 10 11
| Ethernet II, Src: VMware_c0:00:08 (00:50:56:c0:00:08), Dst: VMware_35:f9:e5 (00:0c:29:35:f9:e5) Destination: VMware_35:f9:e5 (00:0c:29:35:f9:e5) ##目标MAC地址,会显示MAC地址前3字节表示的厂商名称,此处是虚拟网卡 Address: VMware_35:f9:e5 (00:0c:29:35:f9:e5) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) Source: VMware_c0:00:08 (00:50:56:c0:00:08) ## 源MAC地址 Address: VMware_c0:00:08 (00:50:56:c0:00:08) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) Type: IPv4 (0x0800)
|
第三层:网络层
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Internet Protocol Version 4, Src: 192.168.228.1, Dst: 192.168.228.135 0100 .... = Version: 4 ## IPv4 .... 0101 = Header Length: 20 bytes (5) ## IP包头部长度 Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) ## 差分服务字段 Total Length: 416 # IP包总长度 Identification: 0x4060 (16480) ## 标志字段 010. .... = Flags: 0x2, Don't fragment ## 标志字段 ...0 0000 0000 0000 = Fragment Offset: 0 ## 分片偏移 Time to Live: 64 ## 生存期 Protocol: TCP (6) ## 封装的上层协议类型为TCP Header Checksum: 0xaf1d [validation disabled] ## 头部数据校验和 [Header checksum status: Unverified] Source Address: 192.168.228.1 ## 源IP地址 Destination Address: 192.168.228.135 ## 目的IP地址
|
第四层:传输层
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Transmission Control Protocol, Src Port: 52711, Dst Port: 80, Seq: 1, Ack: 1, Len: 376 Source Port: 52711 ## 源端口号 Destination Port: 80 ## 目的端口号 [Stream index: 0] [Conversation completeness: Complete, WITH_DATA (31)] [TCP Segment Len: 376] Sequence Number: 1 (relative sequence number) ## 序列号,是一个相对序列号 Sequence Number (raw): 1799850937 [Next Sequence Number: 377 (relative sequence number)] ## 下一个序列号 Acknowledgment Number: 1 (relative ack number) ## 确认序列号 Acknowledgment number (raw): 1267127522 0101 .... = Header Length: 20 bytes (5) ## 头部长度 Flags: 0x018 (PSH, ACK) ## TCP标记字段 Window: 2053 ## 流量控制的窗口大小 [Calculated window size: 525568] [Window size scaling factor: 256] Checksum: 0xfd4a [unverified] ## TCP数据段的校验和 [Checksum Status: Unverified] Urgent Pointer: 0 [Timestamps] [SEQ/ACK analysis] TCP payload (376 bytes)
|
筛选器的用法
一个筛选器定义了一定条件,用来包含或者排除一些数据包的表达式
主要在处理大量数据时使用
筛选器支持and or等逻辑运算符
指定IP地址:ip.addr == 180.97.34.134
指定端口号:tcp.port == 80
查看所有非TCP协议的数据包:!tcp
查看长度小于等于100的数据包:frame.len <= 150
Wireshark的协议域筛选器
- 帮助我们检查协议头部中的某一个字节,来创建筛选条件
- 匹配一个数据包中从某一特定位置开始,一定数量的字节
例:捕获带有PSH和ACK标志的TCP数据包,那么可以筛选TCP协议中偏移为13的标志位的情况
tcp[13] == 0x18
可见ACK标志位已经被设定,说明筛选条件生效

保存频繁使用的筛选条件
菜单栏——分析——显示筛选器——点击新建按钮——创建常用筛选条件并为筛选条件起一个名字——应用——保存
