了解使用wireshark抓包工具

一、简介

  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

原文地址:https://www.cnblogs.com/zhangxingeng/p/11200063.html

时间: 2024-08-07 08:31:04

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

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

Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析,不过要说明的是,这只是一个工具,用法是非常灵活的,所以今天讲述的内容可能无法直接帮你解决问题,但是只要你有解决问题的思路,学习用这个软件就非常有用了.Wireshark官方下载地址:http://www.wireshark.org/download.html如果记不住,可以在百度中输入Wir就可以看到百度智能匹配的关键词了,选择第一个地址进去下载即可. 简单介绍下这个软件的一些常用按钮,因为本

Wireshark抓包工具基本用法

下载和安装好Wireshark之后,启动Wireshark并且在接口列表中选择接口名,然后开始在此接口上抓包.例如,如果想要在无线网络上抓取流量,点击无线接口.点击Capture Options可以配置高级属性,但现在无此必要. 点击接口名称之后,就可以看到实时接收的报文.Wireshark会捕捉系统发送和接收的每一个报文.如果抓取的接口是无线并且选项选取的是混合模式,那么也会看到网络上其他报文. 上端面板每一行对应一个网络报文,默认显示报文接收时间(相对开始抓取的时间点),源和目标IP地址,使

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

在Linux下,当我们需要抓取网络数据包分析时,通常是使用tcpdump抓取网络raw数据包存到一个文件,然后下载到本地使用wireshark界面网络分析工具进行网络包分析.最近才发现,原来wireshark也提供有Linux命令行工具-tshark.tshark不仅有抓包的功能,还带了解析各种协议的能力.下面我们以两个实例来介绍tshark工具. 1.安装方法  代码如下 复制代码 CentOS: yum install -y wiresharkUbuntu: apt-get install

wireshark抓包工具

一.Wireshark数据包格式 1.ICMP是tcp/ip协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制消息是指网络不通.主机是否可达.路由是否可用等网络本身的消息. ICMP协议通过IP协议发送的,IP协议是一种无连接的.不可靠的数据包协议,属于网络层协议. ICMP报文是在IP数据包内传输的.在实际传输中的数据包结构:20字节IP首部+8字节ICMP首部+1472字节38字节. ICMP报文格式:IP首部(20字节)+8位类型+8位代码+16位校验和+(不同的类型和代码,

wireshark抓包工具简介以及tcp三次握手的一些含义

wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必须了解网络协议,否则就看不懂wireshark了.为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包. wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,总结,如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wires

wireshark抓包工具常用筛选命令方法

Wireshark过滤规则使用 一.      MAC地址过滤 命令汇总: eth.addr==20:dc:e6:f3:78:cc eth.src==20:dc:e6:f3:78:cc eth.dst==20:dc:e6:f3:78:cc 1.根据MAC地址进行筛选 使用命令:eth.addr==20:dc:e6:f3:78:cc 命令解说:筛选出MAC地址是20:dc:e6:f3:78:cc的数据包,包括源MAC地址或者目的MAC地址使用的是20:dc:e6:f3:78:cc的全部数据包. 2

模仿Wireshark网络抓包工具实现---c++

最近在用Wireshark抓包工具的时候,老感觉这东西用起来很简单,功能强大,所以想了解他的实现原理,我就自己好奇写了一个实现基本功能的demo吧. 其实叫抓包工具,其实就是抓取流经自己网卡的所有ip包,我们能够按照ip包的协议解析不就行了. 实现的核心在这里: 1 //创建SOCKET 2 sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP); 3 if (sock == INVALID_SOCKET) 4 { 5 cout << WSAGetLastEr

socket和抓包工具wireshark

最近在学习Python代码中的socket和抓包工具wireshark,故又将socket等概念又学习了一遍,温故而知新: Python代码如下: server: #!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:server.py import socket # 导入 socket 模块 s = socket.socket() # 创建 socket 对象 host = socket.gethostname() # 获取本地主机名 port = 1

Wireshark 网络抓包工具Wireshark的使用

阅读目录 wireshark介绍 wireshark不能做的 wireshark VS Fiddler 同类的其他工具 什么人会用到wireshark wireshark 开始抓包 wireshark 窗口介绍 wireshark 显示过滤 保存过滤 过滤表达式 封包列表(Packet List Pane) 封包详细信息 (Packet Details Pane) wireshark与对应的OSI七层模型 TCP包的具体内容 实例分析TCP三次握手过程 wireshark介绍 wireshark