还在苦哈哈地啃着 Wireshark 的大部头?别卷了,老司机带你飞!今天,咱们就来聊聊网络安全界的神器——Wireshark,保证你看完这篇,就能像模像样地抓包分析,成为朋友圈里最懂网络安全的仔!
Wireshark 抓包分析:安全工程师的秘密武器
Wireshark 可不是普通的软件,它可是个网络封包分析的利器。简单来说,它能像网络安全界的“照妖镜”,把网络中传输的数据包抓下来,并以尽可能详细的方式展示给你看。它就像一位经验老道的网络安全侦探,帮你揪出潜藏在网络中的各种问题。
Wireshark之所以这么牛,是因为它使用了 WinPCAP 作为接口,直接和你的网卡“亲密接触”,进行数据报文的交换。这让它在网络封包和流量分析领域拥有了超强的能力,也成为了无数网络工程师和网络分析师的心头好。
那么,本文将带你解锁以下技能:
- Wireshark 主界面: 让你对这个“战场”了如指掌。
- WireShark 抓包实战: 手把手教你抓取数据包,并进行简单的分析,让你不再是纸上谈兵。
- Wireshark 过滤器: 学会使用各种过滤器,精准定位你想要的信息,让冗余数据滚一边去。包括协议过滤、端口主机过滤、数据包内容过滤等高级玩法。
话不多说,让我们一起揭开 Wireshark 的神秘面纱!
首先,让我们来认识一下 Wireshark 这款“神器”的主界面,先混个脸熟。
怎么样,是不是感觉有点眼花缭乱?别怕,跟着我的节奏,一步一步来。
这就是 Wireshark 的主界面了,记住它的样子,以后要经常打交道。
接下来,我们来一次简单的抓包实战,让你体验一下 Wireshark 的威力。
选择菜单栏上的 Capture -> Option,勾选 WLAN 网卡(注意:这里要根据你自己的电脑网卡使用情况来选择,最简单的办法就是看你正在使用的 IP 对应的网卡)。然后,点击 Start,启动抓包。
启动后,Wireshark 就开始默默地在后台“监听”你的网络流量了。
- 执行你需要抓包的操作,比如 ping 一下 www.baidu.com,看看它是不是还活着。
- 操作完成后,相关的数据包就被 Wireshark 抓取到了。为了避免其他无用的数据包干扰分析,可以在过滤栏设置过滤条件,对数据包列表进行过滤。比如,输入
ip.addr == 119.75.217.26 and icmp
,表示只显示 ICMP 协议,且源主机 IP 或者目的主机 IP 为 119.75.217.26 的数据包。
- 就这样,你已经成功完成了一次简单的 Wireshark 抓包。是不是so easy? 后面我们会介绍 Wireshark 过滤条件,以及如何查看数据包中的详细内容。
Wireshark 抓包界面:网络世界的万花筒
注意:在数据包列表区,不同的协议会用不同的颜色来区分。想知道这些颜色都代表什么?可以点击菜单栏 View --> Coloring Rules,这里有详细的颜色标识说明。
WireShark 主要分为以下几个界面:
- Display Filter (显示过滤器): 顾名思义,就是用来设置过滤条件,对数据包列表进行过滤的。菜单路径:Analyze --> Display Filters。
- Packet List Pane (数据包列表): 这里会显示所有捕获到的数据包,包括编号、时间戳、源地址、目标地址、协议、长度,以及数据包的信息。不同协议的数据包会用不同的颜色区分显示,方便你快速识别。
-
Packet Details Pane (数据包详细信息): 这可是 Wireshark 的核心区域!在数据包列表中选择一个指定的数据包,这里会显示该数据包的所有详细信息,包括物理层、数据链路层、网络层、传输层、应用层等各个层面的信息。
各行信息分别为:
(1)Frame: 物理层的数据帧概况。
(2)Ethernet II: 数据链路层以太网帧头部信息。
(3)Internet Protocol Version 4: 互联网层 IP 包头部信息。
(4)Transmission Control Protocol: 传输层 TCP 的数据段头部信息,这里是 TCP 协议。
(5)Hypertext Transfer Protocol: 应用层的信息,这里是 HTTP 协议。
TCP 包的具体内容:
从下图可以看到 Wireshark 捕获到的 TCP 包中的每个字段,简直是纤毫毕现!
-
Dissector Pane (数据包字节区): 这里会以十六进制和 ASCII 码的形式显示数据包的原始字节数据,方便你进行更深入的分析。
Wireshark 过滤器:网络世界的“放大镜”和“显微镜”
刚开始用 Wireshark 的时候,你可能会被海量的数据包淹没,根本找不到自己想要的信息。这时候,就需要用到 Wireshark 的过滤器了。Wireshark 自带两种类型的过滤器,学会使用它们,就能在茫茫数据中迅速锁定目标。
(1)抓包过滤器
捕获过滤器的菜单栏路径为 Capture --> Capture Filters。它用于在抓取数据包之前设置过滤条件,就像一个“预处理器”,只抓取符合条件的数据包,从源头上减少冗余信息。
使用方法:在抓取数据包前,设置如下过滤条件:
ip host 60.207.246.216 and icmp
表示只捕获主机 IP 为 60.207.246.216 的 ICMP 数据包。效果如下:
(2)显示过滤器
显示过滤器用于在抓取数据包后,设置过滤条件来过滤数据包。通常情况下,我们会在抓取数据包时设置一个相对宽泛的条件,抓取较多的数据包,然后使用显示过滤器进行精细筛选,方便后续分析。
比如,在捕获时没有设置任何捕获规则,直接通过网卡抓取所有数据包,如下图所示:
执行 ping www.huawei.com
获取的数据包列表如下:
可以看到,获取的数据包列表中包含大量无效数据。这时,可以通过设置显示器过滤条件进行提取分析信息。比如,输入 ip.addr == 211.162.2.183 and icmp
,并进行过滤。
上面介绍了抓包过滤器和显示过滤器的基本使用方法。在组网不复杂或者流量不大的情况下,使用显示器过滤器进行抓包后处理,就可以满足我们的大部分需求。下面,我们来介绍一下两者的语法以及区别。
Wireshark 过滤器表达式规则:玩转过滤器的“葵花宝典”
1、抓包过滤器语法和实例
抓包过滤器由 类型 (Type)、方向 (Dir)、协议 (Proto)、逻辑运算符 组成。
- 类型 (Type):host、net、port
- 方向 (Dir):src、dst
- 协议 (Proto):ether、ip、tcp、udp、http、icmp、ftp 等
- 逻辑运算符:
&&
(与)、||
(或)、!
(非)
(1)协议过滤
最简单的方式,直接在抓包过滤框中输入协议名即可。
tcp
:只显示 TCP 协议的数据包列表。http
:只查看 HTTP 协议的数据包列表。icmp
:只显示 ICMP 协议的数据包列表。
(2)IP 过滤
host 192.168.1.104
:捕获所有与主机 192.168.1.104 相关的数据包。src host 192.168.1.104
:只捕获源地址为 192.168.1.104 的数据包。dst host 192.168.1.104
:只捕获目标地址为 192.168.1.104 的数据包。
(3)端口过滤
port 80
:捕获所有与端口 80 相关的数据包。src port 80
:只捕获源端口为 80 的数据包。dst port 80
:只捕获目标端口为 80 的数据包。
(4)逻辑运算符
src host 192.168.1.104 && dst port 80
:抓取主机地址为 192.168.1.104,且目的端口为 80 的数据包。host 192.168.1.104 || host 192.168.1.102
:抓取主机为 192.168.1.104 或者 192.168.1.102 的数据包。! broadcast
:不抓取广播数据包。
2、显示过滤器语法和实例
(1)比较操作符
比较操作符包括:==
(等于)、!=
(不等于)、>
(大于)、<
(小于)、>=
(大于等于)、<=
(小于等于)。
(2)协议过滤
同样,直接在 Filter 框中输入协议名即可,注意协议名称需要小写。
tcp
:只显示 TCP 协议的数据包列表。http
:只查看 HTTP 协议的数据包列表。icmp
:只显示 ICMP 协议的数据包列表。
(3)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 地址或目标 IP 地址为 192.168.1.104 的数据包列表。
(4)端口过滤
tcp.port == 80
:显示源主机或者目的主机端口为 80 的数据包列表。tcp.srcport == 80
:只显示 TCP 协议的源主机端口为 80 的数据包列表。tcp.dstport == 80
:只显示 TCP 协议的目的主机端口为 80 的数据包列表。
(5)HTTP 模式过滤
http.request.method == "GET"
:只显示 HTTP GET 方法的请求。
(6)逻辑运算符
过滤多个条件组合时,使用 and
/ or
/ not
。比如,获取 IP 地址为 192.168.1.104 的 ICMP 数据包,表达式为 ip.addr == 192.168.1.104 and icmp
。
(7)按照数据包内容过滤
如果你想根据数据包的内容进行过滤,可以选中界面中的码流,然后在下方选中数据。
右键单击选中后,会出现如下界面:
选中 Select 后,在过滤器中会显示如下内容:
后面的条件表达式就需要你自己填写了。比如,你想过滤出 data 数据包中包含 "abcd" 内容的数据流,可以使用 contains
关键词,后面跟上内容。
看到这里,相信你已经对 Wireshark 有了初步的了解。
Wireshark 抓包分析 TCP 三次握手:面试官最爱问的题,这次彻底搞懂!
(1)TCP 三次握手连接建立过程
Step1:客户端发送一个 SYN=1,ACK=0 标志的数据包给服务端,请求进行连接,这是第一次握手。
Step2:服务端收到请求并且允许连接的话,就会发送一个 SYN=1,ACK=1 标志的数据包给客户端,告诉它,可以通讯了,并且让客户端发送一个确认数据包,这是第二次握手。
Step3:客户端发送一个 SYN=0,ACK=1 的数据包给服务端,告诉它连接已被确认,这就是第三次握手。TCP 连接建立,开始通讯。
(2)Wireshark 抓包获取访问指定服务端数据包
Step1:启动 Wireshark 抓包,打开浏览器输入 www.huawei.com。
Step2:使用 ping www.huawei.com
获取 IP 地址。
Step3:输入过滤条件获取待分析数据包列表 ip.addr == 211.162.2.183
。
图中可以看到 Wireshark 截获到了三次握手的三个数据包。第四个包才是 HTTP 的,这说明 HTTP 的确是使用 TCP 建立连接的。
第一次握手数据包
客户端发送一个 TCP,标志位为 SYN,序列号为 0,代表客户端请求建立连接。如下图。
数据包的关键属性如下:
- SYN:标志位,表示请求建立连接。
- Seq = 0:初始建立连接值为 0,数据包的相对序列号从 0 开始,表示当前还没有发送数据。
- Ack = 0:初始建立连接值为 0,已经收到包的数量,表示当前没有接收到数据。
第二次握手的数据包
服务器发回确认包,标志位为 SYN, ACK。将确认序号 (Acknowledgement Number) 设置为客户端的 ISN 加 1,即 0+1=1,如下图。
数据包的关键属性如下:
- [SYN + ACK]:标志位,同意建立连接,并回送 SYN+ACK。
- Seq = 0:初始建立值为 0,表示当前还没有发送数据。
- Ack = 1:表示当前端成功接收的数据位数,虽然客户端没有发送任何有效数据,确认号还是被加 1,因为包含 SYN 或 FIN 标志位(并不会对有效数据的计数产生影响,因为含有 SYN 或 FIN 标志位的包并不携带有效数据)。
第三次握手的数据包
客户端再次发送确认包 (ACK),SYN 标志位为 0, ACK 标志位为 1。并且把服务器发来 ACK 的序号字段 +1, 放在确定字段中发送给对方,并且在数据段写 ISN 的 +1,如下图:
数据包的关键属性如下:
- ACK:标志位,表示已经收到记录。
- Seq = 1:表示当前已经发送 1 个数据。
- Ack = 1:表示当前端成功接收的数据位数,虽然服务端没有发送任何有效数据,确认号还是被加 1,因为包含 SYN 或 FIN 标志位(并不会对有效数据的计数产生影响,因为含有 SYN 或 FIN 标志位的包并不携带有效数据)。
就这样,通过了 TCP 三次握手,建立了连接,开始进行数据交互。
下面针对数据交互过程的数据包进行一些说明:
数据包的关键属性说明:
- Seq: 1
- Ack: 1: 说明现在共收到 1 字节数据
- Seq: 1
- Ack: 951: 说明现在服务端共收到 951 字节数据
在 TCP 层,有个 FLAGS 字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG。如下图:
其中,对于我们日常的分析有用的就是前面的五个字段。它们的含义是:SYN 表示建立连接,FIN 表示关闭连接,ACK 表示响应,PSH 表示有 DATA 数据传输,RST 表示连接重置。
Wireshark 分析常用操作:提升效率的小技巧
调整数据包列表中时间戳显示格式。调整方法为 View --> Time Display Format --> Date and Time of Day。调整后格式如下:
以上就是 WireShark 的一些常用操作。
一般来说,Wireshark 软件也可以与各主流厂家的模拟器一起使用,更适合于项目准确配置。
怎么样,看完这篇文章,是不是感觉 Wireshark 也不是那么高不可攀了? 赶紧打开 Wireshark,亲手实践一下吧! 相信你很快就能掌握这个强大的工具,成为网络安全领域的专家!
黑客/网络安全学习包
资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**
**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
更多内容为防止和谐,可以扫描获取~
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*********************************