找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1545

积分

0

好友

233

主题
发表于 4 天前 | 查看: 17| 回复: 0

Wireshark是一款强大的网络封包分析软件,它能撷取流经网卡的网络数据包,并以最详尽的方式展示其内容。它使用WinPCAP接口直接与网卡交互,在网络排障、协议学习和安全分析领域是不可或缺的利器,深受广大网络工程师的青睐。

本文旨在通过一个完整的实战流程,带你快速掌握Wireshark的核心功能,主要内容包括:

  • Wireshark主界面概览。
  • 使用Wireshark进行简单抓包并分析数据包内容。
  • 熟练掌握抓包过滤器和显示过滤器的使用技巧,快速定位目标数据。
Wireshark主界面介绍

启动Wireshark后,其主界面主要分为以下几个区域:
Wireshark主界面

  1. Display Filter (显示过滤器):用于在已捕获的数据包列表中设置条件进行筛选。你可以在菜单栏通过 Analyze -> Display Filters 来管理过滤器。
    显示过滤器

  2. Packet List Pane (数据包列表):显示所有捕获到的数据包,包含编号、时间戳、源/目的地址、协议、长度和概要信息。不同协议的数据包会以不同颜色高亮,颜色规则可通过 View -> Coloring Rules 查看。
    数据包列表

  3. Packet Details Pane (数据包详情):当你在列表中选择一个具体的数据包后,此处会分层展示该数据包的所有协议细节。这是分析TCP/IP协议栈的核心区域,从上至下通常包括:

    • Frame:物理层数据帧概况。
    • Ethernet II:数据链路层以太网帧头部信息。
    • Internet Protocol Version 4:网络层IP包头信息。
    • Transmission Control Protocol:传输层TCP段头部信息。
    • Hypertext Transfer Protocol:应用层HTTP协议信息(如果是HTTP流量)。
      数据包详情
  4. Dissector Pane (数据包字节流):以十六进制和ASCII码形式显示数据包的原始字节内容。

简单抓包实战

让我们通过一个简单的例子开始第一次抓包。

  1. 启动抓包:点击菜单栏 Capture -> Options,在接口列表中选择你正在使用的网卡(例如WLAN),然后点击“Start”按钮。此时Wireshark进入抓包状态。
    选择网卡

  2. 执行操作:在命令行中执行 ping www.baidu.com
    开始抓包

  3. 停止并分析:操作完成后,点击停止按钮。在显示过滤器栏输入 icmp,可以快速筛选出所有ICMP协议(ping命令使用的协议)的数据包。为了更精确,你可以使用 ip.addr == [目标IP] and icmp 这样的表达式。
    ICMP过滤结果

至此,你已经成功完成了抓包。接下来,为了在复杂的网络流量中精准定位问题,学习过滤器的使用至关重要。

Wireshark过滤器使用详解

Wireshark提供两种过滤器:抓包过滤器 (Capture Filter) 和显示过滤器 (Display Filter)。

1. 抓包过滤器
在开始抓包之前设置,用于决定哪些类型的流量能被捕获。这可以避免捕获大量无关数据,减轻负荷。

  • 设置路径Capture -> Capture Filters
  • 使用示例:只捕获主机 60.207.246.216 的ICMP流量,可设置过滤条件为 host 60.207.246.216 and icmp
    抓包过滤器设置

2. 显示过滤器
在抓包之后使用,用于在已捕获的海量数据包中筛选出需要分析的部分。这是最常用的过滤方式。

  • 基本语法
    • 协议过滤:直接输入小写的协议名,如 tcp, http, dns
    • IP地址过滤
      • ip.src == 192.168.1.1 (源IP)
      • ip.dst == 192.168.1.1 (目的IP)
      • ip.addr == 192.168.1.1 (源或目的IP)
        IP过滤
    • 端口过滤
      • tcp.port == 80 (源或目的端口)
      • tcp.srcport == 80 (源端口)
      • tcp.dstport == 80 (目的端口)
        端口过滤
    • 逻辑运算符and (与), or (或), not (非)。
      • 示例:ip.addr == 192.168.1.104 and icmp
        逻辑运算过滤
    • 内容过滤:使用 contains 关键词。例如,要过滤数据部分包含“abcd”的包,可右键点击数据区相应部分,选择“Apply as Filter -> Selected”,然后在生成的表达式后修改,如 data.data contains “abcd”
      内容过滤
Wireshark抓包分析TCP三次握手

TCP是可靠传输的基石,其连接建立过程(三次握手)是网络分析中的经典场景。

  1. 握手过程简述

    • 第一次握手:客户端发送 SYN=1, Seq=x 的包到服务器,请求连接。
    • 第二次握手:服务器同意连接,回复 SYN=1, ACK=1, Ack=x+1, Seq=y 的包。
    • 第三次握手:客户端确认,发送 ACK=1, Ack=y+1, Seq=x+1 的包。连接建立。
  2. Wireshark实战分析

    • 启动Wireshark抓包,然后浏览器访问一个网站(如 www.huawei.com)。

    • 使用 ping 命令获取该网站IP(例如 211.162.2.183)。

    • 在显示过滤器中输入 ip.addr == 211.162.2.183,筛选出相关流量。
      筛选目标IP流量

    • 在数据包列表中,可以清晰地看到前三个包就是TCP三次握手的过程。

    • 第一次握手包:客户端发出SYN包。关键标志:SYN=1, Seq=0
      第一次握手

    • 第二次握手包:服务器回复SYN+ACK包。关键标志:SYN=1, ACK=1, Ack=1, Seq=0
      第二次握手

    • 第三次握手包:客户端发送ACK确认包。关键标志:ACK=1, Ack=1, Seq=1。至此,连接建立,后续开始传输HTTP等应用层数据。
      第三次握手

在TCP包的详情中,FLAGS字段非常重要,常见的标志位含义如下:

  • SYN:发起连接。
  • FIN:终止连接。
  • ACK:确认应答。
  • PSH:提示接收端应立即将数据提交给应用层。
  • RST:重置连接,通常表示异常中断。
    TCP标志位
常用操作与技巧
  • 调整时间显示格式:默认的时间戳可能不易读,可以通过 View -> Time Display Format -> Date and Time of Day 调整为更直观的日期时间格式。
    调整时间格式

掌握以上内容,你便已经具备了使用Wireshark进行基础网络抓包与协议分析的能力。在实践中,结合具体的网络环境和问题场景,灵活运用过滤器进行数据包分析,是诊断网络问题、理解协议交互的关键。




上一篇:VPN网关遭大规模凭证攻击:思科SSL VPN与Palo Alto GlobalProtect安全事件分析
下一篇:Spring Security权限控制进阶:基于@PreAuthorize注解实现动态参数验证
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 17:25 , Processed in 0.148279 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表