一、简介

  1、什么是wireshark

    百度:

    Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
    在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是目前全世界最广泛的网络封包分析软件之一。
    开源软件,用GPL协议发行,所以可以免费在任意数量机器上使用
    

  2、主要应用

    帮助管理员解决网络问题

    帮助安全工程师用来检测安全隐患

    开发人员用来测试协议执行情况

    用来学习网络协议

    等等。

  3、特性

    跨平台支持windows/unix平台

    在接口实时抓包

    能详细显示包的详细协议信息

    可以打开/保存捕捉的包

    可以导入导出其他程序支持的包数据格式

    可以通过多种方式过滤包

    多种方式查找包

    通过过滤以多种彩色显示包

    创建多种统计分析。。。

  4、多种网络接口

    可以捕捉多种网络接口,甚至无线局域网接口

  5、哪些事情不能做?

    不能用作入侵检测系统,不会处理网络事务,仅是监视网络,不会发送网络包或做其他交互的事情,但可以做名称解析

二、使用wireshark

  1、打开后看到的第一页面,这里就称为初始页面吧

  2、怎么样开始抓包

    通过捕获选项

    上面的初始页面,有两个入口可以点击一个是在main工具栏,一个是中间位置的captrue options

    点击captrue options图标》弹出网卡如多网卡指定抓包网卡》开始抓包

  3、wireshark窗口的介绍

    wireshark主要分为7个界面

    主菜单

      菜单页面包括file、edit、view、go、capture、analyze、statistics、help

    main工具栏

      一些快捷导航,比如capture,开始,停止等等

    过滤器

      指定需要捕获所需要的条件,比如源地址/目标地址

    封包列表

      已经捕获到的封包,有源地址/目标地址,端口;颜色的不同代表不同的

    封包详情

      显示封包中的各字段

    16禁止数据

      顾名思义

    地址栏

      地址栏及一些杂项

  4、过滤条件

    通过集中表达式规则进行过滤

    1)protocols

      比如tcp,ether,fddi,ip,arp,rarp,decnet,lat,sca,moprc,mopdl,tcp and udp

    2)direction

      src,dst,src and dst,src or dst(不指定就是双向)

    3)host(新版,老版本没有host)

      net,port,host,portrange

    4)logical openrations逻辑运算

      and,or,not(下面有官方实例)

  5、过滤关系

    1)组合表达式

    Table 6.6. Display Filter Logical Operations

English C-like Description and example

and

&&

Logical AND. ip.src==10.0.0.5 and tcp.flags.fin

or

||

Logical OR. ip.scr==10.0.0.5 or ip.src==192.1.1.1

xor

^^

Logical XOR. tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 0.6.29

not

!

Logical NOT. not llc

[…​]

 

See “Slice Operator” below.

in

 

See “Membership Operator” below.

    2)运算符号

      参考官方https://www.wireshark.org/docs/wsug_html/#DispCompOps

   Table 6.5. Display Filter comparison operators

English C-like Description and example

eq

==

Equal. ip.src==10.0.0.5

ne

!=

Not equal. ip.src!=10.0.0.5

gt

>

Greater than. frame.len > 10

lt

<

Less than. frame.len < 128

ge

>=

Greater than or equal to. frame.len ge 0x100

le

<=

Less than or equal to. frame.len ⇐ 0x20

contains

 

Protocol, field or slice contains a value. sip.To contains "a1762"

matches

~

Protocol or text field match Perl regualar expression. http.host matches "acme\.(org|com|net)"

bitwise_and

&

Compare bit field value. tcp.flags & 0x02

  6、常见过滤需求

   1)、数据链路层

    mac地址过滤

      eth.addr==00:0c:29:1c:8b:39

      eth.src==00:0c:29:1c:8b:39

      eth.dst==00:0c:29:1c:8b:39

   2)、网络层    

    ip地址过滤

      ip.addr==192.168.216.51

      ip.src==192.168.216.51

      ip.dst==192.168.216.51

   3)、传输层

      tcp/udp

      tcp.prot==80

      tcp.dstport==80

      tcp.srcport==80

   4)、应用层

      http.request.uri contains ".php"

   5)、wireshark支持筛选的还有很多协议,这里不一一列举,请查看官方文档

      udp、tcp、arp、icmp、smtp、pop、dns、ip、ssl、http、ftp、telnet、ssh、rdp、rip、ospf

   6)、协议参数过滤

      tcp.flags.syn==0x02 显示包含syn标志位的数据包

      frame.len==119  整个数据包长度,从eth开始到最后

      http.request.method=="get"  显示http请求中method值为get的包

   7)、逻辑条件组合筛选

    ||

    &&

    !

    组合条件“与”

    ip.src==192.168.216.51&&ip.dst==192.168.216.52

    组合条件“或”

    ip.src==192.168.216.51||ip.src==192.168.216.52

    组合条件“非”

    !(ip.src==192.168.216.51)

三、新版本差异 

  新版和老版本是存在很多差异的如

  1、示例1-mac

  2、示例2-ip

  3、示例3-tcp

  4、示例4-http

四、分析tcp三次握手

  1、三次握手简单图示

  2、第一次握手

    客户端请求建立连接,发送请求包,标志位SYN,序号为0

  3、第二次握手

    服务端返回确认,标志位SYN,ACK,设置初始序列号Y=0, X+1=0+1=1,这个就是acknowledgement number了(确认序号)

  4、第三次握手

    客户端收到服务器发来的确认号正确,客户端再次发送确认ACK,SYN标志位为0,ACK标志位是1,确认序号=y+1=0+1,发送序号位x+1=1,服务器收到确认序号值与ack=1连接建立成功,开始传输数据

五、四次挥手

    四次挥手即tcp断开连接得时候会有四次挥手得过程

    为什么需要四次挥手那?

      因为tcp协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,并且是全双工模式,需要两边连接全部关闭,此tcp会话才算完全关闭,四次挥手使得tcp连接能够可靠的终止,还有timed_wait也使得连接终止后网络上残余的发送给该连接的数据被丢弃而不至于被新连接接收,这种方式也更安全

  1、图示四次挥手

  2、抓包示例挥手协议图示

  3、第一次挥手

    属性:

      ACK+FIN:标志位

      Seq=23:序列号

      ACK=29:接收的序列号+SYN包,也就是确认的序号

    第一次挥手,客户端给服务器发送tcp包,用来关闭客户端到服务器的数据传输,发送FIN ACK报文 seq=23 ack=29

  4、第二次挥手

     第二次挥手,服务器收到FIN,发回一个ACK,Seq=29,ack=23

  5、第三次挥手

    服务端关闭和客户端连接,发送一个FIN,seq=24,ack=29

  6、第四次挥手

    第四次挥手,客户端收到服务器发送的FIN后,发回ACK确认,确认序号加1,就是30,这里就完全断开连接了。

转载请注明出处:https://www.cnblogs.com/zhangxingeng/p/11200063.html

了解使用wireshark抓包工具的更多相关文章

  1. Wireshark抓包工具使用教程以及常用抓包规则

    转载:http://fangxin.blog.51cto.com/1125131/735178 Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析, ...

  2. 使用wireshark抓包工具 检测不到本地网卡

    wireshark 抓包工具无法检测到自身的网卡 下载wireshark 地址:https://www.wireshark.org/download.html 安装,打开后发现没有windows 本身 ...

  3. Wireshark抓包工具解析HTTPS包

    目录 一.遇到的问题 二.解决方案 1. 动态生成签名证书 2. Wireshark配置 3. 最终效果 一.遇到的问题 本学期的计算机网络课程需要使用到Wireshark抓包工具进行网络抓包实验,原 ...

  4. Wireshark抓包工具

    首先下载并安装Wireshark软件,最好选择中文版,因为会使你用的更顺手. 安装完毕之后,双击打开Wireshark软件,主界面还是比较清晰明了的,可是怎么用还是稀里糊涂的吧. 点击菜单栏红圈中的选 ...

  5. WireShark抓包工具使用

    WireShark是一款网络封包分析软件,它抓取网络封包,并尽可能显示出最详细的封包资料. wireshark的准备工作 安装wireshark sudo apt-get install wiresh ...

  6. Wireshark抓包工具--TCP数据包seq ack等解读

    1.Wireshark的数据包详情窗口,如果是用中括号[]括起来的,表示注释,在数据包中不占字节 2.在二进制窗口中,如“DD 3D”,表示两个字节,一个字节8位 3.TCP数据包中,seq表示这个包 ...

  7. [转]Wireshark抓包工具--TCP数据包seq ack等解读

    原文: http://blog.csdn.net/wang7dao/article/details/16805337/ ---------------------------------------- ...

  8. Linux中tshark(wireshark)抓包工具使用方法详解

    在Linux下,当我们需要抓取网络数据包分析时,通常是使用tcpdump抓取网络raw数据包存到一个文件,然后下载到本地使用wireshark界面网络分析工具进行网络包分析.最近才发现,原来wires ...

  9. 【转】wireshark抓包工具详细说明及操作使用

      wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必须了解网络协议,否则就看不懂wireshark了. 为了安全 ...

  10. Wireshark抓包工具的简单使用2(抓包、查看、过滤)

    在简单了解了Wireshark的界面以及各工具栏的作用后,也要掌握如何进行抓包,查询,过滤等操作 一.抓包 1.打开软件,初始界面 2.点击Caputre-->Interfaces,出现当前所有 ...

随机推荐

  1. 如何在 Linux 中添加一块大于 2TB 的新磁盘?

    你有没有试过使用 fdisk 对大于 2TB 的硬盘进行分区,并且纳闷为什么会得到需要使用 GPT 的警告? 是的,你看到的没错.我们无法使用 fdisk 对大于 2TB 的硬盘进行分区. 在这种情况 ...

  2. delphi Stomp客户端连接 RabbitMQ(1)

    最近公司想上个消息推送系统,网上搜了很多,因公司主要产品是Delphi,我选择了开源的RabbitMQ,Erlang语言开发,天生并行. 代码下载地址:delphistomp下载地址 windows上 ...

  3. 演练:创建和使用静态库 (C++)

    我们将创建的下一个库类型是静态库 (LIB). 使用静态库是重用代码的一种绝佳方式. 您不必在自己创建的每个程序中重新实现同一例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它们即可. ...

  4. 简单封装 Delphi 的 DirectX类

    var CreatorRenderer  : TCreatorRenderer; Form1: TForm1; 窗体代码: {$R *.dfm} procedure TForm1.FormCreate ...

  5. Debug监视器(监视运行期程序通过API函数OutputDebugString输出的字符串)

    http://download.csdn.net/detail/zswang/207199

  6. QT_NO_CAST_FROM_ASCII这个宏的,禁用一切来自双引号字符串字面量传入QString(有2种解决方法)

    这两天制作了两个Qt Creator增强套装的两个插件,其实也是非常简单的,但是其实花了我超过四天的时间,为什么呢?因为我之前很长一段时间都是在Linux下开发的,一切安好,没有任何问题,但是到了Wi ...

  7. Windows服务(system权限)程序显示界面与用户交互,Session0通知Session1里弹出对话框(真的很牛) good

    源码资源下载:http://download.csdn.net/detail/stony1980/4512984   1.VC2008中编写“Windows服务”(Windows Service)程序 ...

  8. 源码解读·RT-Thread小内存管理算法分析

    这篇文章最初发布在RT-Thread官方论坛中,最近准备整理放到博客中来让更多人一起探讨学习. 2012年9月28日星期五 前言: 母语能力有限 概述: 这篇文字和大家分享一下今晚对RT-Thread ...

  9. 深入理解Java的浅克隆与深克隆

    前言 克隆,即复制一个对象,该对象的属性与被复制的对象一致,如果不使用Object类中的clone方法实现克隆,可以自己new出一个对象,并对相应的属性进行数据,这样也能实现克隆的目的. 但当对象属性 ...

  10. 利用Maven, 搭建最简单的SpringMVC框架

    本文介绍使用maven搭建SpringMVC最简单的框架程序过程,适合初学者上手. 文章下载