部分内容转载自此博客链接,感谢博主分享
https://blog.csdn.net/qicheng777/article/details/74452136
1.认识Wireshark捕获数据包
当我们对Wireshark主窗口各部分作用了解了,学会捕获数据了,接下来就该去认识这些捕获的数据包了。Wireshark将从网络中捕获到的二进制数据按照不同的协议包结构规范,显示在Packet Details面板中。为了帮助用户能够清楚的分析数据,本节将介绍识别数据包的方法。
在Wireshark中关于数据包的叫法有三个术语,分别是帧、包、段。下面通过分析一个数据包,来介绍这三个术语。
一、wireshark三个面板介绍
(在edit->Preference->User info->Layout中可修改面板情况 ):
1、”Pcaket List”面板 (包列表)
Packet list/包列表面板显示所有当前捕捉的包
列表中的每行显示捕捉文件的一个包。如果您选择其中一行,该包得更多情况会显示在”Packet Detail/包详情”,”Packet Byte/包字节”面板
在分析(解剖)包时,Wireshark会将协议信息放到各个列。因为高层协议通常会覆盖底层协议,您通常在包列表面板看到的都是每个包的最高层协议描述。(在这里高层是应用层,底层是数据链路层)
2、 “Packet Details”面板(包详情)
“Packet Details/包详情”面板显示当前包(在包列表面板被选中的包)的详情列表。
该面板显示包列表面板选中包的协议及协议字段,协议及字段以树状方式组织。你可以展开或折叠它们。
右击它们会获得相关的上下文菜单。
某些协议字段会以特殊方式显示
3、”Packet Byte”面板(包字节)
面板以16进制转储方式显示当前选择包的数据
通常在16进制转储形式中,左侧显示 包数据偏移量,中间栏以16进制表示,右侧显示为对应的ASCII字符 (包数据偏移量是相对第一个包进行偏移)
二、各行信息如下所示:
Frame:物理层的数据帧概况。
Ethernet II:数据链路层以太网帧头部信息。
Internet Protocol Version 4:互联网层IP包头部信息。
Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议。
Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议。
下面分别介绍下,帧、包和段内展开的内容。如下所示:
1、物理层的数据帧概况
Frame 5: 268 bytes on wire (2144 bits), 268 bytes captured (2144 bits) on interface 0 #5号帧,线路268字节,实际捕获268字节
Interface id: 0 #接口id
Encapsulation type: Ethernet (1) #封装类型
Arrival Time: Jun 11, 2015 05:12:18.469086 中国标准时间 #捕获日期和时间
[Time shift for this packet: 0. seconds]
Epoch Time: 1402449138.469086 seconds
[Time delta from previous captured frame: 0.025257 seconds] #此包与前一包的时间间隔
[Time since reference or first frame: 0.537138 seconds] #此包与第一帧的时间间隔
Frame Number: 5 #帧序号
Frame Length: 268 bytes (2144 bits) #帧长度
Capture Length: 268 bytes (2144 bits) #捕获长度
[Frame is marked: False] #此帧是否做了标记:否
[Frame is ignored: False] #此帧是否被忽略:否
[Protocols in frame: eth:ip:tcp:http] #帧内封装的协议层次结构
[Number of per-protocol-data: 2]
[Hypertext Transfer Protocol, key 0]
[Transmission Control Protocol, key 0]
[Coloring Rule Name: HTTP] #着色标记的协议名称
[Coloring Rule String: http tcp.port == 80] #着色规则显示的字符串
2、数据链路层以太网帧头部信息
Ethernet II, Src: Giga-Byt_c8:4c:89 (1c:6f:65:c8:4c:89), Dst: Tp-LinkT_f9:3c:c0 (6c:e8:73:f9:3c:c0)
Destination: Tp-LinkT_f9:3c:c0 (6c:e8:73:f9:3c:c0) #目标MAC地址
Source: Giga-Byt_c8:4c:89 (1c:6f:65:c8:4c:89) #源MAC地址
Type: IP (0x0800)
3、互联网层IP包头部信息
Internet Protocol Version 4, Src: 192.168.0.104 (192.168.0.104), Dst: 61.182.140.146 (61.182.140.146)
Version: 4 #互联网协议IPv4
Header length: 20 bytes #IP包头部长度
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport)) #差分服务字段
Total Length: 254 #IP包的总长度
Identification: 0x5bb5 (23477) #标志字段
Flags: 0x02 (Don’t Fragment) #标记字段
Fragment offset: 0 #分的偏移量
Time to live: 64 #生存期TTL
Protocol: TCP (6) #此包内封装的上层协议为TCP
Header checksum: 0x52ec [validation disabled] #头部数据的校验和
Source: 192.168.0.104 (192.168.0.104) #源IP地址
Destination: 61.182.140.146 (61.182.140.146) #目标IP地址
4、传输层TCP数据段头部信息
Transmission Control Protocol, Src Port: 51833 (51833), Dst Port: http (80), Seq: 1, Ack: 1, Len: 214
Source port: 51833 (51833) #源端口号
Destination port: http (80) #目标端口号
Sequence number: 1 (relative sequence number) #序列号(相对序列号)
[Next sequence number: 215 (relative sequence number)] #下一个序列号
Acknowledgment number: 1 (relative ack number) #确认序列号
Header length: 20 bytes #头部长度
Flags: 0x018 (PSH, ACK) #TCP标记字段
Window size value: 64800 #流量控制的窗口大小
Checksum: 0x677e [validation disabled] #TCP数据段的校验和
2实际操作
打开Wireshark抓包工具开始抓包会看到如下展开内容:
这里我是对wlan进行抓包,192.168.2.112是我当前wifi的ip地址。点击某个包,可以查看具体内容,差不多刚好对于五层协议:
Frame:物理层的数据帧概况。
Ethernet II:数据链路层以太网帧头部信息。
Internet Protocol Version 4:互联网层I” />
打开Wireshark抓包工具开始抓包会看到如下展开内容:
这里我是对wlan进行抓包,192.168.2.112是我当前wifi的ip地址。
点击某个包,可以查看具体内容,差不多刚好对于五层协议:
- Frame:物理层的数据帧概况。
- Ethernet II:数据链路层以太网帧头部信息。
- Internet Protocol Version 4:互联网层IP包头部信息。
- Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议。
User Datagram Protocol:UDP协议 - Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议。
一、各层分析:
将上诉Frame ,Ethernet || 等展开可看到具体传输信息:
1、物理层Frame
-Frame 5: 66 bytes on wire (528 bits), 66 bytes captured(捕获) (528 bits) on interface 0 //5号帧,对方发送66字节,实际收到66字节
-Interface id: 0 (\Device\NPF_{37239901-4A63-419C-9693-97957A8232CD}) //接口id为0
-Encapsulation type: Ethernet (1) //封装类型
-Arrival Time: Jul 5, 2017 15:14:31.865685000 //捕获日期和时间(中国标准时间)
-[Time shift for this packet: 0.000000000 seconds]
-Epoch Time: 1499238871.865685000 seconds
-[Time delta from previous captured frame: 0.006861000 seconds] //与前一包时间间隔
-[Time delta from previous displayed frame: 0.006861000 seconds]
-[Time since reference or first frame: 0.613985000 seconds] //#此包与第一帧的时间间隔
-Frame Number: 5 //帧序号
-Frame Length: 66 bytes (528 bits) //帧长度
-Capture Length: 66 bytes (528 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、数据链路层以太网帧头部信息:
-Ethernet II, Src: Tp-LinkT_f5:3e:62 (c0:61:18:f5:3e:62), Dst: IntelCor_09:65:a5 (58:fb:84:09:65:a5)
- Destination: IntelCor_09:65:a5 (58:fb:84:09:65:a5) //目的MAC地址
- Source: Tp-LinkT_f5:3e:62 (c0:61:18:f5:3e:62) //源MAC地址(就是我电脑的MAC地址)
- Type: IPv4 (0x0800) //0x0800表示使用IP协议
3、互联网层IP包头部信息:
Internet Protocol Version 4, Src: 192.168.2.112, Dst: 116.211.185.142
0100 .... = Version: 4 //IPV4协议
.... 0101 = Header Length: 20 bytes (5) //包头长度
-Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) //差分服务字段
-Total Length: 52 //IP包总长度
-Identification: 0x3849 (14409) //标志字段
-Flags: 0x02 (Don't Fragment) //标记字段
-Fragment offset: 0 //分的偏移量
-Time to live: 128 //生存期TTL
-Protocol: TCP (6) //此包内封装的上层协议为TCP
-Header checksum: 0xd100 [validation disabled] //头部数据的校验和
-[Header checksum status: Unverified] //头部数据校验状态
-Source: 192.168.2.112 //源IP地址
-Destination: 116.211.185.142 //目的IP地址
-[Source GeoIP: Unknown] //基于地理位置的IP
-[Destination GeoIP: Unknown]
4、传输层TCP数据段头部信息:
Transmission Control Protocol, Src Port: 60606, Dst Port: 80, Seq: 0, Len: 0
-Source Port: 60606 //源端口号(ecbe)
-Destination Port: 80 //目的端口号(0050)
-[Stream index: 0]
-[TCP Segment Len: 0]
-Sequence number: 0 (relative sequence number) //序列号(相对序列号)(四个字节fd 3e dd a2)
-Acknowledgment number: 0 //确认号(四个字节00 00 00 00)
-Header Length: 32 bytes //头部长度(0x80)
-Flags: 0x002 (SYN) //TCP标记字段
-Window size value: 8192 //流量控制的窗口大小(20 00)
-[Calculated window size: 8192]
-Checksum: 0x97ad [unverified] //数据段的校验和(97 ad)
-[Checksum Status: Unverified]
-Urgent pointer: 0 //紧急指针(00 00)
-Options: (12 bytes), Maximum segment size, No-Operation (NOP), Window scale, No-Operation (NOP), No-Operation (NOP), SACK permitted //选项(可变长度)
UDP数据段首部:
User Datagram Protocol, Src Port: 7273, Dst Port: 15030
-Source Port: 7273 //源端口(1c 69)
-Destination Port: 15030 //目的端口(3a 6b)
-Length: 1410 //长度(05 82)
-Checksum: 0xd729 [unverified] //校验和(d7 29)
-[Checksum Status: Unverified]
-[Stream index: 6335]
二、Wireshark分析数据包:
1、在过滤器中添加过滤器获得访问百度时的相关信息:
Protocol(协议):
可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
如果没有特别指明是什么协议,则默认使用所有支持的协议。
Direction(方向):
可能的值: src, dst, src and dst, src or dst
如果没有特别指明来源或目的地,则默认使用 “src or dst” 作为关键字。
例如,”host 10.2.2.2”与”src or dst host 10.2.2.2”是一样的。
Host(s):
可能的值: net, port, host, portrange.
如果没有指定此值,则默认使用”host”关键字。
例如,”src 10.1.1.1”与”src host 10.1.1.1”相同。
Logical Operations(逻辑运算):
可能的值:not, and, or.
否(“not”)具有最高的优先级。或(“or”)和与(“and”)具有相同的优先级,运算时从左至右进行。
例如:
“not tcp port 3128 and tcp port 23”与”(not tcp port 3128) and tcp port 23”相同。
“not tcp port 3128 and tcp port 23”与”not (tcp port 3128 and tcp port 23)”不同。
格式为:
ip.addr == www.baidu.com
然后可以获得百度的IP地址等信息。
2、过滤出dns信息
在显示过滤框输入dns
,过滤出所有dns信息:
在该界面220,234帧,是DNS将www.baidu.com解析为一个IP地址的数据包(被称为一个“A”记录)。238帧表示返回一个与主机名相关的IP地址的DNS响应包。如果客户端支持IPv4和IPv6,在该界面将会看到查找一个IPv6地址(被称为“AAAA”记录)。此时,DNS服务器将响应一个IPv6地址或混杂的信息。
说明:238帧是客户端请求百度,通过DNS服务器解析IP地址的过程。标识为“A”记录。
3、过滤出tcp包分析:
在显示过滤框输入:ip.dst==180.97.33.108 or ip.src==180.97.33.108
TCP通信流程大致如下:
客户端和服务器之间TCP三次握手(4941、4942、4943帧)—->客户端请求的GET主页面(4944帧)—>服务器收到请求(4945帧)—>发送响应包(4946帧)。
说明:
客户端向服务器发送TCP请求建立连接。标识为SYN。
服务器得到请求后向客户端回应确认包的过程。标识为SYN,ACK。
客户端回应服务器发送确认包的过程,将于服务器建立连接。标识为ACK。
客户端向服务器发送HTTP请求内容的过程。标识为GET。
服务器相应客户端请求的过程,收到请求。标识为ACK。
4946帧帧是服务器向客户端回应内容的过程。