文章目录
- 一. Wireshark下载
- 二. Wireshark抓取数据包
- 1.抓取数据包
- 2.常见的抓包过滤语句
- 1. 过滤IP
- 2.过滤端口
- 3.过滤协议
- 4.过滤MAC地址
- 5.http模式过滤
- 三.对数据包分析
- 1. 物理层数据帧的分析
- 2.数据链路层以太网帧头部信息
- 3.网络层IP数据包头部信息
- 4.传输层TCP数据段头部信息
- 四. IP校验和计算
一. Wireshark下载
WireShark官网链接:https://www.wireshark.org/
在官网的下载页面选择相应的下载文件进行下载,然后安装。
二. Wireshark抓取数据包
1.抓取数据包
- 打开Wireshark界面如下图所示,点击WLAN即可进行抓包
- 抓取数据包结果如下图所示,在过滤器栏输入
tcp
会显示抓取的数据包中tcp类型的数据包
2.常见的抓包过滤语句
1. 过滤IP
抓包操作 | 过滤语句 |
抓取源IP地址为 192.168.43.57的数据包 | ip.src eq 192.168.43.57 |
抓取目的IP地址为 192.168.43.57的数据包 | ip.dst eq 192.168.43.57 |
抓取IP地址为 192.168.43.57的数据包(包括源IP地址和目的IP地址) | ip.addr eq 192.168.43.57 |
2.过滤端口
抓包操作 | 过滤语句 |
抓取端口(包括目的端口和源端口)为80的tcp数据包 | tcp.port eq 80 |
同上,含义一样 | tcp.port == 80 |
抓取目的端口为80的tcp数据包 | tcp.dstport == 80 |
抓取源端口为80的tcp数据包 | tcp.srcport == 80 |
抓取端口为6666的udp数据包 | udp.port eq 6666 |
过滤端口范围(抓取端口1到80之间的tcp数据包) | tcp.port >= 1 and tcp.port <= 80 |
3.过滤协议
抓包操作 | 过滤语句 |
抓取协议为tcp的数据包 | tcp |
抓取协议为udp的数据包 | udp |
抓取协议为arp的数据包 | arp |
抓取协议为icmp的数据包 | icmp |
抓取协议为http的数据包 | http |
抓取协议为smtp的数据包 | smtp |
抓取协议为ftp的数据包 | ftp |
抓取协议为dns的数据包 | dns |
抓取协议为msnms的数据包 | msnms |
抓取协议为ip的数据包 | ip |
抓取协议为ssl的数据包 | ssl |
抓取协议为oicq的数据包 | oicq |
抓取协议为bootp的数据包 | bootp |
抓取非tcp协议的数据包 | !tcp |
4.过滤MAC地址
抓包操作 | 过滤语句 |
过滤目的地址为A0:00:00:04:C5:84的 | eth.dst == A0:00:00:04:C5:84 |
同上 | eth.dst eq A0:00:00:04:C5:84 |
过滤源地址为A0:00:00:04:C5:84的 | eth.src eq A0:00:00:04:C5:84 |
同上 | eth.src == A0:00:00:04:C5:84 |
过滤源地址和目的地址都为A0:00:00:04:C5:84的 | eth.addr eq A0:00:00:04:C5:84 |
5.http模式过滤
抓包操作 | 过滤语句 |
http请求方法为GET的数据包 | http.request.method == “GET” |
http请求方法为POST的数据包 | http.request.method == “POST” |
包含GET的http数据包 | http contains “GET” |
详细的抓包语句可以阅读下面这篇博主的文章,以上内容也是节选其中:
三.对数据包分析
以下内容以抓取的一个tcp数据包进行分析
对此tcp数据包,①②③④是对Wireshark对数据包的分析内容;⑤是数据包的具体数据内容。
从上往下:
①是物理层
②是数据链路层
③网络层
④是传输层
1. 物理层数据帧的分析
对此物理层数据帧从上往下进行分析结果如下:
■ Frame12:当前帧为第12号帧;
■ 54bytes on wire (432bites):对方发送数据大小为54字节(432比特);
■ 54bytes capatured (432bites) on interface:在接口处捕获54字节,即自己收到54字节。
■ Interface id:0:接口id为0。
■ Interface description:WLAN:我们开启抓包时的接口为WLAN(无线局域网)。
■ Encapsulation type: Ethernet (1):封装类型为以太网。
■ Arrival Time: Dec 22, 2021 19:48:42.483869000 中国标准时间:到达时间。
■ [Time shift for this packet: 0.000000000 seconds]:此数据包的时移时间。
■ Epoch Time: 1640173722.483869000 seconds:此数据包的纪元时间。
■ [Time delta from previous captured frame: 0.004284000 seconds]:此包与前一帧的时间间隔。
■ [Time since reference or first frame: 3.271729000 seconds]:此包与第一帧的时间间隔。
■ Frame Number: 14:帧序号。
■ Frame Length: 54 bytes (432 bits):帧长度。
■ Capture Length: 54 bytes (432 bits):捕获字节长度。
■ [Frame is marked: False]:此帧是否被做了标记。
■ [Frame is ignored: False]:此帧是否被忽略。
■ [Protocols in frame: eth:ethertype:ip:tcp]:此帧内封装了协议层次结构。
■ [Coloring Rule Name: HTTP]:着色标记的协议名称。
■ [Coloring Rule String: http || tcp.port == 80 || http2]:着色规则显示的字符串。
2.数据链路层以太网帧头部信息
对此数据链路层以太网帧头部信息从上往下进行分析结果如下:
■ Destination: NewH3CTe_38:b8:02 (a4:fa:76:38:b8:02):目的MAC地址(物理地址)。
■ Source: IntelCor_d3:9e:5b (58:a0:23:d3:9e:5b):源MAC地址(物理地址)。
■ Type: IPv4 (0x0800):使用IPv4协议。
3.网络层IP数据包头部信息
对此网络层IP数据包头部信息从上往下进行分析结果如下:
■ Internet Protocol Version 4, Src: 10.133.198.50, Dst: 124.236.26.172:IPv4协议、源IP地址和目的IP地址。
■ 0100 … = Version: 4:IP协议版本为4。
■ … 0101 = Header Length: 20 bytes (5):包头长度为20字节。
■ Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT):差分服务字段。
■ Total Length: 40:IP包总长度为40字节。
■ Identification: 0x3efc (16124):标识字段。
■ Flags: 0x40, Don’t fragment:标记字段。
■ Fragment Offset: 0:分段偏移量。
■ Time to Live: 64:生存周期TTL。
■ Protocol: TCP (6):此包内封装的上层协议为TCP(6)。
■ Header Checksum: 0x0000 [validation disabled]:头部数据的校验和。
■ [Header checksum status: Unverified]:头部数据校验状态。
■ Source Address: 10.133.198.50:源IP地址。
■ Destination Address: 124.236.26.172:目的IP地址。
4.传输层TCP数据段头部信息
对此传输层TCP数据段头部信息从上往下进行分析结果如下:
■ Source Port: 3489:源端口号。
■ Destination Port: 80:目的端口号。
■ [Stream index: 5]:流指数。
■ [TCP Segment Len: 0]:TCP段长度。
■ Sequence Number: 1 (relative sequence number):序列号(相对序列号)
■ Sequence Number (raw): 1709228051:原始序列号。
■ [Next Sequence Number: 2 (relative sequence number)]:下一个序列号。
■ Acknowledgment Number: 1 (relative ack number):确认号。
■ Acknowledgment number (raw): 444882447:原始确认号。
■ 0101 … = Header Length: 20 bytes (5):头部长度。
■ Flags: 0x011 (FIN, ACK):TCP标记字段。
■ Window: 514:流量控制的窗口大小。
■ [Calculated window size: 514]:计算窗口大小。
■ Checksum: 0x686a [unverified]:TCP数据段的校验和。
■ [Checksum Status: Unverified]:校验和状态为未验证。
■ Urgent Pointer: 0:紧急指针。
■ [Time since first frame in this TCP stream: 0.000000000 seconds]:此 TCP 流中自第一帧以来的时间。
■ [Time since previous frame in this TCP stream: 0.000000000 seconds]:此 TCP 流中自上一帧以来的时间。
四. IP校验和计算
点击IP数据报部分,得到的IP数据报的数据如下图蓝色部分所示:
此IP数据报各数据段代表的含义:
■ 45 00:其中4代表IPv4,5代表首部长度,表明没有可变部分。
■ 00 28:表示IP包总长度。
■ 3e fc:标识字段。
■ 40 00:片段偏移量。
■ 40:生存周期TTL。
■ 06:协议号,包内封装的上层协议为TCP(6)。
■ 00 00:头部数据的校验和。
■ oa 85 c6 32:源IP地址。
■ 7c ec 1a ac:目的IP地址。
进行校验和的计算:
(1)校验和置0:00 00;
(2)相加(16位一组):45 00 + 00 28 + 3e fc + 40 00 + 40 06 + 00 00 + 0a 85 + c6 32 +7c ec + 1a ac = 26c9c;
(3)进位加到最后:26c9c有进位2,加到最后为:6c9c+2=6c9e;
(4)结果取反:6c9e结果取反为:9361,即校验和为9361。