问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Wireshark的抓包和分析,从零基础到精通,收藏这篇就够了!

创作时间:
作者:
@小白创作中心

Wireshark的抓包和分析,从零基础到精通,收藏这篇就够了!

引用
CSDN
1.
https://blog.csdn.net/Javachichi/article/details/146591857

各位网络安全的小伙伴们,还在对着枯燥的课本和晦涩的官方文档头疼吗?今天,就让我这位在网络安全圈摸爬滚打多年的老司机,带你玩转Wireshark,保证你看完这篇,抓包分析技能直接起飞!

Wireshark:网络世界的“照妖镜” 🪞

Wireshark,这可不是普通的抓包软件,它简直就是网络世界的“照妖镜”!啥?你还不知道它能干啥?简单来说,它能抓取网络封包,并且像福尔摩斯一样,把封包里的各种信息扒得干干净净,让你看得明明白白。这年头,不会用Wireshark,都不好意思说自己是搞网络安全的!

本文将带你一步步掌握Wireshark的精髓,主要内容包括:

  • 界面大揭秘:带你熟悉Wireshark的主界面,就像逛自家后花园一样轻松。
  • 抓包初体验:手把手教你抓取第一个数据包,并进行简单分析,体验当黑客的快感!
  • 过滤器大法:掌握各种过滤技巧,让你在茫茫数据包中,精准锁定目标,效率提升100倍!

话不多说,让我们一起进入Wireshark的奇妙世界吧!

初识Wireshark:颜值与实力并存的“小鲜肉” 😎

首先,让我们来认识一下这位“小鲜肉”——Wireshark的主界面,它长这样:

是不是感觉有点眼花缭乱?别怕,跟着我的节奏,你很快就能驾轻就熟!

抓个“小蝌蚪”:你的第一个数据包 🎣

接下来,我们来抓取你的第一个数据包,就像钓鱼一样,充满乐趣!

  1. 选网卡:打开Wireshark,选择菜单栏上的Capture -> Option,找到你正在使用的网卡(不知道选哪个?看看你的IP地址对应的网卡就知道了)。
  2. 开始抓包:点击Start,Wireshark就开始像辛勤的蜜蜂一样,为你采集数据包啦!
  3. 制造流量:随便打开一个网页,或者ping一下百度(
    ping www.baidu.com
    ),让你的电脑跑起来!
  4. 停止抓包:抓取到足够的数据包后,点击红色停止按钮,结束抓包。
  5. 过滤“杂鱼”:为了方便分析,我们可以在过滤栏设置过滤条件,比如
    ip.addr == 119.75.217.26 and icmp
    ,只显示ICMP协议,且源或目的IP为百度的数据包。
  6. 大功告成:看到这些整齐排列的数据包,是不是感觉成就感满满?

Wireshark界面:三大区域,各司其职 🤝

抓到包只是第一步,接下来,我们要了解Wireshark的界面构成,才能更好地分析数据。

Wireshark主要分为以下三个区域:

  1. 数据包列表区:这里展示了抓取到的所有数据包,不同的协议用不同的颜色区分,方便你快速定位。想知道这些颜色代表什么?点击菜单栏View --> Coloring Rules,一览无余!
  2. 数据包详细信息区:选中一个数据包,这里会显示它的所有详细信息,包括物理层、数据链路层、网络层、传输层和应用层的信息。这里可是重点,是分析数据包的关键!
  • Frame:物理层的数据帧概况
  • Ethernet II:数据链路层以太网帧头部信息
  • Internet Protocol Version 4:互联网层IP包头部信息
  • Transmission Control Protocol:传输层TCP的数据段头部信息
  • Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议
    看看这个TCP包,是不是感觉信息量爆炸?
    3.数据包字节区:这里显示了数据包的原始字节数据,一般用于深入分析。
    4.显示过滤器:菜单路径:Analyze --> Display Filters。用于设置过滤条件进行数据包列表过滤。

过滤器:数据包海洋里的“指南针” 🧭

抓到的数据包太多,看得眼花缭乱?别担心,Wireshark的过滤器就是你的“指南针”,帮你快速找到你需要的信息。Wireshark有两种类型的过滤器:

  1. 抓包过滤器:在抓取数据包之前设置,用于过滤掉不需要的数据包,减少抓包量。菜单栏路径为Capture --> Capture Filters
    比如,我们可以设置只捕获主机IP为
    60.207.246.216
    的ICMP数据包:
    ip host 60.207.246.216 and icmp

    效果立竿见影!
  2. 显示过滤器:在抓取数据包之后设置,用于过滤显示的数据包,方便分析。
    比如,我们先抓取所有数据包,然后使用显示过滤器
    ip.addr == 211.162.2.183 and icmp
    ,只显示与华为服务器相关的ICMP数据包。
    效果同样显著!
    记住:在网络流量不大的情况下,使用显示过滤器更方便!

过滤器语法:玩转Wireshark的“秘籍” 📜

想要玩转Wireshark,必须掌握过滤器的语法,就像掌握了一门武功秘籍!

  1. 抓包过滤器语法
  • 类型(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
    :不抓取广播数据包
  1. 显示过滤器语法
  • 比较操作符

    (等于)、
    !=
    (不等于)、
    (大于)、
    <
    (小于)、

    =
    (大于等于)、
    <=
    (小于等于)

  • 协议过滤:与抓包过滤器类似,直接输入协议名即可(注意小写)。
  • 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三次握手的过程,看看它到底是怎么建立连接的。

  1. TCP三次握手过程
  • 第一次握手:客户端发送SYN包给服务器,请求建立连接。
  • 第二次握手:服务器收到SYN包,回复SYN+ACK包,表示同意连接。
  • 第三次握手:客户端收到SYN+ACK包,发送ACK包给服务器,确认连接建立。
  1. 使用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,开始你的抓包之旅吧!

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号