一、简介

  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. 逻辑回归模型(Logistic Regression)及Python实现

    逻辑回归模型(Logistic Regression)及Python实现 http://www.cnblogs.com/sumai 1.模型 在分类问题中,比如判断邮件是否为垃圾邮件,判断肿瘤是否为阳 ...

  2. Qt 5.6 5.8 vs2015 编译静态库版本(有全部的截图)good

    安装Qt 去Qt官网下载Qt安装包  安装Qt和源码,一定要勾选source选项  添加bin到系统变量  工具 需要python3和 perl. vs2015 第三方工具,到官方下载安装  在命令行 ...

  3. JavaWeb实现上传文件

    需要 commons-io与commons-fileupload 首先在jsp中创建一下布局 <%@ page contentType="text/html;charset=UTF-8 ...

  4. Qt浅谈之二:钟表(时分秒针)

    一.简介 QT编写的模拟时钟,demo里的时钟只有时针和分针,在其基础上添加了秒针,构成了一个完整的时钟.能对2D绘图中坐标系统.平移变换(translate).比例变换(scale).旋转变换(ro ...

  5. mpvue 开发小程序接口数据统一管理

    mpvue项目里做API与数据分离统一管理 小程序里请求数据接口使用wx:request,因为考虑项目比较大,最好把wx:request封装起来,统一使用管理 utils.js 配置开发环境和线上环境 ...

  6. ZooKeeper学习之路(三)—— Zookeeper常用Shell命令

    一.节点增删改查 1.1 启动服务和连接服务 # 启动服务 bin/zkServer.sh start #连接服务 不指定服务地址则默认连接到localhost:2181 zkCli.sh -serv ...

  7. kafka 名词概念

    ProducerConsumerBrokerTopicPartitionConsumer Group分布式 Broker     Kafka集群包含一个或多个服务器,这种服务器被称为brokerTop ...

  8. JavaScript 词法作用域不完全指北

    在 JavaScript 作用域不完全指北 中,我们介绍了作用域的概念以及 JavaScript 引擎.编译器和作用域的关系.作用域有两种主要的工作模型:词法作用域和动态作用域.其中最为普遍的也是大多 ...

  9. Qt定制控件列表

    目录 炫酷进度条 提示框 小时钟 高仿excel表格 多级表头表格 多级表头树控件 多维度折线图 表格控件-蚂蚁线 日历控件 饼图 窗体靠边自动隐藏 下拉框内容定制 模仿QQ上传头像 菜单定制 属性表 ...

  10. python数据库-MySQL数据库的增删改查基本操作(49)

    一.数据库基础 表 table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式 行:行用于记录数据 记录:行内的数据 列:列用于规定数据格式 字段:数据的某个列 主键:唯一地标识表中的 ...