Wireshark抓包分析?

wen 网络安全 3

本文目录导读:

Wireshark抓包分析?

  1. 通用分析思路:五步法
  2. 常见协议分析要点
  3. 高频问题排查实战
  4. Wireshark 的几个高效技巧

Wireshark 是一款非常强大的网络封包分析软件,抓包只是第一步,分析才是真正能体现水平的地方。

下面从通用分析思路常见协议分析常用技巧三个维度,帮你梳理 Wireshark 的分析方法。


通用分析思路:五步法

拿到一个抓包文件(.pcapng),可以按以下顺序排查:

  1. 看统计概览

    • 统计 -> 捕获文件属性:查看总包数、时长、平均流量(Mbps),如果流量异常大,可能存在攻击或下载行为。
    • 统计 -> 协议层次:直观看到各协议占比,ARP 包过多可能意味着广播风暴;TCP 占比过高是正常通信,UDP 包过多可能涉及流媒体或攻击。
  2. 找对话(Conversations)

    • 统计 -> 对话:查看所有 IP 或 TCP/UDP 会话,按 数据包数量字节数 排序,快速锁定“谁在和谁说话最多”。
    • 重点关注:通信量最大的那对 IP,通常是分析的核心目标。
  3. 过滤定位(关键)

    • 用显示过滤器精准定位。ip.addr == 192.168.1.1 只看某台主机。
    • 右键 -> 作为过滤器应用 -> 选中 快速过滤。
  4. 跟踪流(Follow Stream)

    • 在任意一个 TCP/UDP 包上右键 -> 追踪流 -> TCP/UDP流,Wireshark 会重组整个对话,让你看到完整的请求和响应内容(HTTP 请求、文件传输等)。
    • 注意:这里有“显示原始数据”和“显示 ASCII”等选项,HTTP 看 “Printable text only” 最清晰。
  5. 检查专家信息

    • 分析 -> 专家信息,Wireshark 会自动标记异常,比如重传、乱序、窗口缩零、认证失败等,这是快速发现问题点的捷径。

常见协议分析要点

TCP 分析(最核心,也最复杂)

TCP 分析主要关注 连接建立(三次握手)数据传输连接释放(四次挥手)

  • 三次握手排查重点

    • 检查 SYN:客户端发 SYN,服务端回 SYN-ACK,客户端再回 ACK。
    • 关键过滤tcp.flags.syn == 1 and tcp.flags.ack == 0(只看初始 SYN)。
    • 问题定位
      • 只看到 SYN 没看到 SYN-ACK → 服务端无响应(防火墙拦截、服务未启动)。
      • SYN-ACK 后客户端没回 ACK → 客户端丢弃 / 半连接攻击(SYN Flood)。
      • 多次 SYN 重传 → 网络延迟或丢包严重
  • 数据重传与延迟

    • TCP Retransmission(重传):Wireshark 会用黑色或红色标记,如果频繁出现,说明网络不稳定或对端不确认。
    • Dup ACK(重复确认):收到三个重复确认 → 触发快速重传,说明有掉包。
    • 窗口大小(Windows)Window 值突然变为 0(零窗口),说明接收方缓冲区满了,应用程序处理慢,导致发送方暂停。
    • RTT(往返时间)统计 -> TCP流图 -> 往返时间图,观察波峰是否异常高。

HTTP/HTTPS 分析

  • HTTP
    • 直接使用 追踪流,可以看到完整的 GET /index.html HTTP/1.1HTTP/1.1 200 OK 返回。
    • 关键过滤http.response.code == 404 (查404错误)、http.request.method == "POST" (查提交)、http.time > 5 (查慢请求)。
  • HTTPS
    • 流量是加密的,只能看到 Client HelloServer HelloCertificate 等握手过程,看不到内容。
    • 破解方法:需要服务端的 SSLKEYLOGFILE 或私钥,在 编辑 -> 首选项 -> TLS 中导入 (Pre)-Master-Secret log filename 后,HTTPS 内容就可以像 HTTP 一样明文查看了。

DNS 分析

  • 关键过滤dns.flags.response == 0(请求)或 dns.flags.response == 1(响应)。
  • 排查关注点
    • 查询时间:看请求和响应的时间差,如果超过 1 秒,说明 DNS 服务器慢或丢包。
    • 响应状态码No such name (3) 表示域名不存在,Server failure (2) 表示服务器故障。
    • 域名dns.qry.name 过滤具体域名。

ARP 分析(局域网问题)

  • 广播风暴arp 过滤,ARP 包频繁出现(每秒几十上百个),通常是由于 IP 地址冲突或环路。
  • 欺骗检测:正常情况下,一个 IP 绑定一个 MAC,若发现同一 IP 对应两个不同 MAC(arp.duplicate-address-detected),则是 ARP 攻击或配置错误。

高频问题排查实战

问题现象 怀疑方向 Wireshark 中的关键迹象
网页打不开 DNS、TCP连接 DNS查询无响应(No such name);2. 三次握手仅SYN无SYN-ACK(被防火墙拦);3. HTTP返回404/502
网速慢/卡顿 丢包、延迟、窗口 大量 TCP Retransmission;2. Dup ACK 超过3次;3. 零窗口 ZeroWindow
视频会议卡 UDP乱序、丢包 UDP包时间间隔不均;2. RTP (实时传输协议) 包序跳跃 (SSRC 冲突);3. jitter (抖动) 值过高
服务器连接不上 端口未开、防火墙 SYN 后收到 RST (重置) → 端口未监听;2. 无任何响应 → 防火墙丢弃
网络攻击 扫描、DoS 大量来自单一IP的SYN包(SYN Flood);2. 大量针对不同端口的未完成连接(端口扫描)

Wireshark 的几个高效技巧

  1. “宏”一样的过滤键:无需输入复杂公式,在 分析 -> 显示过滤器表达式... 里点选,或右键字段直接作为过滤器。
  2. 着色规则:默认红色是重传,黑色是坏包,在 视图 -> 着色规则 中可以自定义,比如把 HTTP 5xx 错误标成橙色。
  3. IO 图表与流图
    • IO 图表 (统计 -> IO图表):观察流量吞吐量的时间变化,找出峰值和异常时间点。
    • TCP 流图 (统计 -> TCP流图):
      • 时序图 (Stevens):可视化会话窗口变化,直观看出零窗口和拥塞。
      • 吞吐量图:看数据传输速率。
  4. 导出特定对象:HTTP 或 SMB 协议中,可以直接 文件 -> 导出对象 -> HTTP,把传输的文件下载下来,免去手动复制。
  5. 命令行工具 tshark:如果文件很大(几GB),用 GUI 打开很慢,可以用 tshark -r large.pcap -Y "http.request" -w small.pcap 过滤后再打开。
  • 初学者:先看 统计->协议层次专家信息,熟悉流量结构。
  • 常规问题追踪流是神器,直接看完整对话。
  • 疑难杂症:重点分析 TCP 的三次握手是否有异常,以及 TCP 流图 中的 RTT 和窗口变化。

如果你有具体的抓包文件或某个报错想分析,可以描述一下(抓到了很多红色的重传包”或“某个IP一直在发RST”),我可以给出更针对性的过滤器和判断方法。

抱歉,评论功能暂时关闭!