Wireshark的抓包和分析,从零基础到精通,收藏这篇就够了!
Wireshark的抓包和分析,从零基础到精通,收藏这篇就够了!
各位网络安全的小伙伴们,还在对着枯燥的课本和晦涩的官方文档头疼吗?今天,就让我这位在网络安全圈摸爬滚打多年的老司机,带你玩转Wireshark,保证你看完这篇,抓包分析技能直接起飞!
Wireshark:网络世界的“照妖镜” 🪞
Wireshark,这可不是普通的抓包软件,它简直就是网络世界的“照妖镜”!啥?你还不知道它能干啥?简单来说,它能抓取网络封包,并且像福尔摩斯一样,把封包里的各种信息扒得干干净净,让你看得明明白白。这年头,不会用Wireshark,都不好意思说自己是搞网络安全的!
本文将带你一步步掌握Wireshark的精髓,主要内容包括:
- 界面大揭秘:带你熟悉Wireshark的主界面,就像逛自家后花园一样轻松。
- 抓包初体验:手把手教你抓取第一个数据包,并进行简单分析,体验当黑客的快感!
- 过滤器大法:掌握各种过滤技巧,让你在茫茫数据包中,精准锁定目标,效率提升100倍!
话不多说,让我们一起进入Wireshark的奇妙世界吧!
初识Wireshark:颜值与实力并存的“小鲜肉” 😎
首先,让我们来认识一下这位“小鲜肉”——Wireshark的主界面,它长这样:
是不是感觉有点眼花缭乱?别怕,跟着我的节奏,你很快就能驾轻就熟!
抓个“小蝌蚪”:你的第一个数据包 🎣
接下来,我们来抓取你的第一个数据包,就像钓鱼一样,充满乐趣!
- 选网卡:打开Wireshark,选择菜单栏上的Capture -> Option,找到你正在使用的网卡(不知道选哪个?看看你的IP地址对应的网卡就知道了)。
- 开始抓包:点击Start,Wireshark就开始像辛勤的蜜蜂一样,为你采集数据包啦!
- 制造流量:随便打开一个网页,或者ping一下百度(
ping www.baidu.com
),让你的电脑跑起来! - 停止抓包:抓取到足够的数据包后,点击红色停止按钮,结束抓包。
- 过滤“杂鱼”:为了方便分析,我们可以在过滤栏设置过滤条件,比如
ip.addr == 119.75.217.26 and icmp
,只显示ICMP协议,且源或目的IP为百度的数据包。 - 大功告成:看到这些整齐排列的数据包,是不是感觉成就感满满?
Wireshark界面:三大区域,各司其职 🤝
抓到包只是第一步,接下来,我们要了解Wireshark的界面构成,才能更好地分析数据。
Wireshark主要分为以下三个区域:
- 数据包列表区:这里展示了抓取到的所有数据包,不同的协议用不同的颜色区分,方便你快速定位。想知道这些颜色代表什么?点击菜单栏View --> Coloring Rules,一览无余!
- 数据包详细信息区:选中一个数据包,这里会显示它的所有详细信息,包括物理层、数据链路层、网络层、传输层和应用层的信息。这里可是重点,是分析数据包的关键!
- Frame:物理层的数据帧概况
- Ethernet II:数据链路层以太网帧头部信息
- Internet Protocol Version 4:互联网层IP包头部信息
- Transmission Control Protocol:传输层TCP的数据段头部信息
- Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议
看看这个TCP包,是不是感觉信息量爆炸?
3.数据包字节区:这里显示了数据包的原始字节数据,一般用于深入分析。
4.显示过滤器:菜单路径:Analyze --> Display Filters。用于设置过滤条件进行数据包列表过滤。
过滤器:数据包海洋里的“指南针” 🧭
抓到的数据包太多,看得眼花缭乱?别担心,Wireshark的过滤器就是你的“指南针”,帮你快速找到你需要的信息。Wireshark有两种类型的过滤器:
- 抓包过滤器:在抓取数据包之前设置,用于过滤掉不需要的数据包,减少抓包量。菜单栏路径为Capture --> Capture Filters。
比如,我们可以设置只捕获主机IP为
60.207.246.216
的ICMP数据包:
ip host 60.207.246.216 and icmp
。
效果立竿见影! - 显示过滤器:在抓取数据包之后设置,用于过滤显示的数据包,方便分析。
比如,我们先抓取所有数据包,然后使用显示过滤器
ip.addr == 211.162.2.183 and icmp
,只显示与华为服务器相关的ICMP数据包。
效果同样显著!
记住:在网络流量不大的情况下,使用显示过滤器更方便!
过滤器语法:玩转Wireshark的“秘籍” 📜
想要玩转Wireshark,必须掌握过滤器的语法,就像掌握了一门武功秘籍!
- 抓包过滤器语法:
- 类型(Type):
host
(主机)、
net
(网络)、
port
(端口) - 方向(Dir):
src
(源)、
dst
(目的) - 协议(Proto):
ether
、
ip
、
tcp
、
udp
、
http
、
icmp
、
ftp
等 - 逻辑运算符:
&&
(与)、
||
(或)、
!
(非)
举个栗子: - tcp
:只显示TCP协议的数据包 - host 192.168.1.104
:只显示与主机
192.168.1.104
相关的数据包 - src host 192.168.1.104 && dst port 80
:抓取源主机为
192.168.1.104
,目的端口为
80
的数据包 - !broadcast
:不抓取广播数据包
- 显示过滤器语法:
比较操作符:
(等于)、
!=
(不等于)、
<
(小于)、=
(大于等于)、
<=
(小于等于)- 协议过滤:与抓包过滤器类似,直接输入协议名即可(注意小写)。
- IP过滤:
- ip.src == 192.168.1.104
:显示源地址为
192.168.1.104
的数据包 - ip.dst == 192.168.1.104
:显示目标地址为
192.168.1.104
的数据包 - ip.addr == 192.168.1.104
:显示源或目标IP地址为
192.168.1.104
的数据包
*端口过滤:
- tcp.port == 80
:显示源或目的端口为
80
的数据包 - tcp.srcport == 80
:只显示TCP协议的源端口为
80
的数据包 - tcp.dstport == 80
:只显示TCP协议的目的端口为
80
的数据包
*HTTP模式过滤: - http.request.method == "GET"
:只显示HTTP GET方法的请求
*逻辑运算符:
and
/
or
/
not - ip.addr == 192.168.1.104 and icmp
:获取IP地址为
192.168.1.104
的ICMP数据包
*按照数据包内容过滤:选中界面中的码流,右键选择Select,Wireshark会自动生成过滤条件。
比如,要过滤出data数据包中包含 "abcd" 内容的数据流,可以使用
data contains "abcd"
。
实战演练:Wireshark抓包分析TCP三次握手 🤝
光说不练假把式,让我们用Wireshark来分析一下TCP三次握手的过程,看看它到底是怎么建立连接的。
- TCP三次握手过程:
- 第一次握手:客户端发送SYN包给服务器,请求建立连接。
- 第二次握手:服务器收到SYN包,回复SYN+ACK包,表示同意连接。
- 第三次握手:客户端收到SYN+ACK包,发送ACK包给服务器,确认连接建立。
- 使用Wireshark抓包:
- Step1:启动Wireshark抓包,打开浏览器输入
www.huawei.com
。 - Step2:使用
ping www.huawei.com
获取华为服务器的IP地址。 - Step3:输入过滤条件
ip.addr == 211.162.2.183
,获取待分析数据包列表。 - Step4:分析三次握手的数据包。
- 第一次握手:客户端发送SYN包,
SYN = 1
,
ACK = 0
,
Seq = 0
。 - 第二次握手:服务器发送SYN+ACK包,
SYN = 1
,
ACK = 1
,
Seq = 0
,
Ack = 1
。 - 第三次握手:客户端发送ACK包,
SYN = 0
,
ACK = 1
,
Seq = 1
,
Ack = 1
。 - 数据交互:连接建立后,客户端和服务端就可以开始进行数据交互了。
注意:在TCP层,FLAGS字段包含了SYN、FIN、ACK、PSH、RST、URG等标识,其中SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有DATA数据传输,RST表示连接重置。
Wireshark常用操作:让你的分析更高效 🚀
最后,分享几个Wireshark的常用操作,让你的分析效率更上一层楼!
- 调整时间戳显示格式:View --> Time Display Format --> Date and Time of Day,让时间戳更易读。
总结
看完这篇文章,你是不是感觉Wireshark也没那么难了?只要掌握了基本概念和操作,你就可以像一位经验丰富的网络安全工程师一样,轻松驾驭Wireshark,分析网络流量,排查安全问题。
记住:Wireshark不仅是一款工具,更是一种思维方式。通过分析数据包,你可以更深入地了解网络协议、网络通信原理,从而提升你的网络安全技能。
还在等什么?赶紧打开Wireshark,开始你的抓包之旅吧!