网络安全工程师教你用Wireshark 抓包,一文通关,从零基础到精通,收藏这篇就够了!


还在苦哈哈地啃着 Wireshark 的大部头?别卷了,老司机带你飞!今天,咱们就来聊聊网络安全界的神器——Wireshark,保证你看完这篇,就能像模像样地抓包分析,成为朋友圈里最懂网络安全的仔!

Wireshark 抓包分析:安全工程师的秘密武器

Wireshark 可不是普通的软件,它可是个网络封包分析的利器。简单来说,它能像网络安全界的“照妖镜”,把网络中传输的数据包抓下来,并以尽可能详细的方式展示给你看。它就像一位经验老道的网络安全侦探,帮你揪出潜藏在网络中的各种问题。

Wireshark之所以这么牛,是因为它使用了 WinPCAP 作为接口,直接和你的网卡“亲密接触”,进行数据报文的交换。这让它在网络封包和流量分析领域拥有了超强的能力,也成为了无数网络工程师和网络分析师的心头好。

那么,本文将带你解锁以下技能:

  • Wireshark 主界面: 让你对这个“战场”了如指掌。
  • WireShark 抓包实战: 手把手教你抓取数据包,并进行简单的分析,让你不再是纸上谈兵。
  • Wireshark 过滤器: 学会使用各种过滤器,精准定位你想要的信息,让冗余数据滚一边去。包括协议过滤、端口主机过滤、数据包内容过滤等高级玩法。

话不多说,让我们一起揭开 Wireshark 的神秘面纱!

首先,让我们来认识一下 Wireshark 这款“神器”的主界面,先混个脸熟。

怎么样,是不是感觉有点眼花缭乱?别怕,跟着我的节奏,一步一步来。

这就是 Wireshark 的主界面了,记住它的样子,以后要经常打交道。

接下来,我们来一次简单的抓包实战,让你体验一下 Wireshark 的威力。

选择菜单栏上的 Capture -> Option,勾选 WLAN 网卡(注意:这里要根据你自己的电脑网卡使用情况来选择,最简单的办法就是看你正在使用的 IP 对应的网卡)。然后,点击 Start,启动抓包。

启动后,Wireshark 就开始默默地在后台“监听”你的网络流量了。

  1. 执行你需要抓包的操作,比如 ping 一下 www.baidu.com,看看它是不是还活着。
  2. 操作完成后,相关的数据包就被 Wireshark 抓取到了。为了避免其他无用的数据包干扰分析,可以在过滤栏设置过滤条件,对数据包列表进行过滤。比如,输入ip.addr == 119.75.217.26 and icmp,表示只显示 ICMP 协议,且源主机 IP 或者目的主机 IP 为 119.75.217.26 的数据包。

  1. 就这样,你已经成功完成了一次简单的 Wireshark 抓包。是不是so easy? 后面我们会介绍 Wireshark 过滤条件,以及如何查看数据包中的详细内容。

Wireshark 抓包界面:网络世界的万花筒

注意:在数据包列表区,不同的协议会用不同的颜色来区分。想知道这些颜色都代表什么?可以点击菜单栏 View --> Coloring Rules,这里有详细的颜色标识说明。

WireShark 主要分为以下几个界面:

  1. Display Filter (显示过滤器): 顾名思义,就是用来设置过滤条件,对数据包列表进行过滤的。菜单路径:Analyze --> Display Filters

  1. Packet List Pane (数据包列表): 这里会显示所有捕获到的数据包,包括编号、时间戳、源地址、目标地址、协议、长度,以及数据包的信息。不同协议的数据包会用不同的颜色区分显示,方便你快速识别。

  1. 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 包中的每个字段,简直是纤毫毕现!

  2. 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,亲手实践一下吧! 相信你很快就能掌握这个强大的工具,成为网络安全领域的专家!

黑客/网络安全学习包

资料目录

  1. 成长路线图&学习规划

  2. 配套视频教程

  3. SRC&黑客文籍

  4. 护网行动资料

  5. 黑客必读书单

  6. 面试题合集

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************

3.SRC&黑客文籍

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!

4.护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

5.黑客必读书单

**

**

6.面试题合集

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*********************************

猜你喜欢

转载自blog.csdn.net/Python_0011/article/details/146607137
今日推荐