WireShark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。

WireShark界面简介

  • 启动WireShark的界面如下:

  • 选择网卡

    wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。

    点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡。然后点击"Start"按钮, 开始抓包。

  • 窗口的主要组成部分

    • Display Filter(显示过滤器),  用于过滤
    • Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表
    • Packet Details Pane(封包详细信息), 显示封包中的字段
    • Dissector Pane(16进制数据)
    • Miscellanous(地址栏,杂项)
  • 抓取包对应的OSI七层模型

  • 抓取的TCP包的具体内容

  • 封包详细信息

    封包列表的面板中显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。 你可以看到不同的协议用了不同的颜色显示。
    你也可以修改这些显示颜色的规则,  View ->Coloring Rules.


wireshark过滤语法总结

wireshark进行过滤时,按照过滤的语法可分为协议过滤和内容过滤:

  • 对标准协议,既支持粗粒度的过滤如HTTP,也支持细粒度的、依据协议属性值进行的过滤如

    tcp.port==53
    http.request.method=="GET"
  • 对内容的过滤,既支持深度的字符串匹配过滤如http contains "Server",也支持特定偏移处值的匹配过滤如
    tcp[20:3] == 47:45:54

wireshark有两种过滤器:

  • 捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中。
  • 显示过滤器(DisplayFilters):用于在捕捉结果中进行详细查找。

捕捉过滤器在抓抱前进行设置,决定抓取怎样的数据;显示过滤器用于过滤抓包数据,方便stream的追踪和排查。捕捉过滤器仅支持协议过滤,显示过滤器既支持协议过滤也支持内容过滤。两种过滤器它们支持的过滤语法并不一样。
下面来详细学习两种过滤器

  • 捕捉过滤器--捕捉前依据协议的相关信息进行过滤设置
    1. 语法

      Protocol Direction Host(s) Value Logical Operations Other expression
    2. 字段详解
      • Protocol(协议):
        可能值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
        如果没指明协议类型,则默认为捕捉所有支持的协议。
        注:在wireshark的HELP-Manual Pages-Wireshark Filter中查到其支持的协议。
      • Direction(方向):
        可能值: src, dst, src and dst, src or dst
        如果没指明方向,则默认使用 “src or dst” 作为关键字。
        ”host 10.2.2.2″与”src or dst host 10.2.2.2″等价。
      • Host(s):
        可能值: net, port, host, portrange.
        默认使用”host”关键字,”src 10.1.1.1″与”src host 10.1.1.1″等价。
      • Logical Operations(逻辑运算):
        可能值:not, and, or.
        否(“not”)具有最高的优先级。或(“or”)和与(“and”)具有相同的优先级,运算时从左至右进行。
        “not tcp port 3128 and tcp port 23″与”(not tcp port 3128) and tcp port 23″等价。
        “not tcp port 3128 and tcp port 23″与”not (tcp port 3128 and tcp port 23)”不等价。
    3. 示例
      (host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8

      表示:捕捉IP为10.4.1.12或者源IP位于网络10.6.0.0/16,目的IP的TCP端口号在200至10000之间,并且目的IP位于网络 10.0.0.0/8内的所有封包。

  • 显示过滤器--对捕捉到的数据包依据协议或包的内容进行过滤
    • 协议过滤
    1. 语法

      Protocol.String1.String2 Comparison operator Value LogicalOperations Otherexpression

      string1和string2是可选的。依据协议过滤时,可直接通过协议来进行过滤,也能依据协议的属性值进行过滤。

    2. 示例
      //按协议进行过滤
      snmp || dns || icmp //显示SNMP或DNS或ICMP封包。 //按协议的属性值进行过滤
      ip.addr == 10.1.1.1
      ip.src != 10.1.2.3 or ip.dst != 10.4.5.6
      ip.src == 10.230.0.0/16 //显示来自10.230网段的封包。
      tcp.port == 25 //显示来源或目的TCP端口号为25的封包。
      tcp.dstport == 25 //显示目的TCP端口号为25的封包。
      http.request.method== "POST" //显示post请求方式的http封包。
      http.host == "tracker.1ting.com" //显示请求的域名为tracker.1ting.com的http封包。
      tcp.flags.syn == 0×02 //显示包含TCP SYN标志的封包。
  • 内容过滤
    1. 深度字符串匹配
      使用contains:Does the protocol, field or slice contain a value
      示例

      //显示payload中包含"http"字符串的tcp封包。
      tcp contains "http"
      //显示请求的uri包含"online"的http封包。
      http.request.uri contains "online"
    2. 特定偏移处值的过滤
      //16进制形式,tcp头部一般是20字节,所以这个是对payload的前三个字节进行过滤
      tcp[20:3] == 47:45:54
      http.host[0:4] == "trac"
    3. 过滤中函数的使用(upper、lower)

      upper(string-field) - converts a string field to uppercase
      lower(string-field) - converts a string field to lowercase

      示例

      upper(http.request.uri) contains "ONLINE"

wireshark过滤支持比较运算符、逻辑运算符,内容过滤时还能使用位运算。 如果过滤器的语法是正确的,表达式的背景呈绿色。如果呈红色,说明表达式有误。

PS:

今天总结完这篇使用手册后,写了一个捕获过滤器:

tcp src host 10.9.146.113

使用"Compile selected BPFs",但WireShark老是不通过,提示错误

'tcp' modifier applied to host

一直迷惑不解,我是按照语法来写的,怎么编译不通过呢?!

最后各种查呀,才知道“对于tcp/udp协议只能监听端口号,而ip协议只能监听主机地址,tcp/udp位于传输层”!!

这是逼我这看TCP/IP协议呀!在查的过程中又顺带知道了有同类tcpdump工具不能用于windows),而tcpdump工具是基于libpcap。

libpcap是一个网络数据包捕获函数库,很多抓包工具都是基于它来开发的,WireShark也不例外,而在windows上WireShark是基于wincap的。

在“man tcpdump”的时候看到Expression是语法是pcap-filter,这个语法应该就是libcap的语法。

通过上面的总结,于是我决定需要看:《TCP/IP协议》、tcpdump工具、libcap。

抓包工具Wireshark的使用的更多相关文章

  1. 抓包工具Wireshark过滤器

    抓包工具WireShark分为两种过滤器: 捕捉过滤器(CaptureFilters) 显示过滤器(DisplayFilters) 捕捉过虑器语法: Protocol  Direction  Host ...

  2. socket和抓包工具wireshark

    socket和抓包工具wireshark 最近在学习Python代码中的socket和抓包工具wireshark,故又将socket等概念又学习了一遍,温故而知新: Python代码如下: serve ...

  3. 网络抓包工具-Wireshark学习资料

    wireshark一个非常牛逼的网络抓包工具.转载一系列博文 一站式学习Wireshark(一):Wireshark基本用法 一站式学习Wireshark(二):应用Wireshark观察基本网络协议 ...

  4. 学习tcpIp必备的抓包工具wireshark

    wireshark是一个优秀的抓包工具 ip.src=192.168.10.123  发送http的一端 ip.dst=192.168.10.126 接收http的一端 如下图所示:

  5. 软件测试必须掌握的抓包工具Wireshark,你会了么?

    作为软件测试工程师,大家在工作中肯定经常会用到各种抓包工具来辅助测试,比如浏览器自带的抓包工具-F12,方便又快捷:比如时下特别流行的Fiddler工具,使用各种web和APP测试的各种场景的抓包分析 ...

  6. GNS3与抓包工具Wireshark的关联

    转至:https://blog.51cto.com/xpleaf/1615145 (一)前言 本博文分享GNS3与Wireshark关联的方法. 显然现在网络上已经有类似的文章分享,而本博文旨在提供更 ...

  7. Wireshark 网络抓包工具Wireshark的使用

    阅读目录 wireshark介绍 wireshark不能做的 wireshark VS Fiddler 同类的其他工具 什么人会用到wireshark wireshark 开始抓包 wireshark ...

  8. 网络抓包工具wireshark and tcpdump 及其实现基于的libpcap

    最近无意中看到博客园中一篇介绍wireshark的文章,写得不错,它简单清楚介绍了wireshark的使用 简介 wireshark以前叫做Ethereal, 在大学时候的网络课程中就常看到它,它是世 ...

  9. 抓包工具-Wireshark(详细介绍与TCP三次握手数据分析)

    功能使用的详细介绍 wireshark(官方下载网站: http://www.wireshark.org/),是用来获取网络数据封包,可以截取各种网络封包,显示网络封包的详细信息,包括http,TCP ...

随机推荐

  1. JavaScript 模块化及 SeaJs 源码分析

    网页的结构越来越复杂,简直可以看做一个简单APP,如果还像以前那样把所有的代码都放到一个文件里面会有一些问题: 全局变量互相影响 JavaScript文件变大,影响加载速度 结构混乱.很难维护 和后端 ...

  2. Windows7启用超级管理员administrator账户的多种方法

    开启win7家庭普通版的超级管理员账户Administrotor WIN7家庭普通版没有"本地用户和组"项,不能通过"用计算机右键-管理"的方法开启超级管理员帐 ...

  3. Delphi的ListView自动排序

    private SortCol: Integer; SortWay: Integer; procedure TForm1.LVweColumnClick(Sender: TObject; Column ...

  4. Linux笔记(七) - 网络命令

    (1)给用户发信息:write例:write admin(ctrl+d结束)(2)发广播信息:wall例:wall hello world!(3)测试网络连通性:ping-c 发送次数例:ping - ...

  5. 30万奖金!还带你奔赴加拿大相约KDD!?阿里聚安全算法挑战赛带你飞起!

    KDD(Knowledge Discovery and Data Mining,知识发现与数据挖掘)会议,作为数据挖掘届的顶会,一直是算法爱好者心中的圣地麦加. 想去?有点难. ​ 给你奖金和差旅赞助 ...

  6. Mac系统安装Aircrack-ng破解附近wifi密码(1)

    第一步, 安装macport, 安装Xcode 安装macport macport 是一个工具 管理软件包的一个工具, 我们也可以通过别的方式安装Aircrack-ng, 但是通过macport安装A ...

  7. 警告1909。无法创建快捷方式VMware Workstation Pro.Ink。解决方法(附 VMware_workstation 12的安装方法)

    电脑之前装过VMware 10,很长时间没用就卸载了,也没有在意卸载的干不干净,直到最近需要用Linux系统,重新安装了VMware 12,就出现下面这样的情况: 警告1909.无法创建快捷方式VMw ...

  8. 正则匹配所有的a标签

    <a\b[^>]+\bhref="([^"]*)"[^>]*>([\s\S]*?)</a>分组1和分组2即为href和value解释: ...

  9. php下安装动态扩展库的相关事项

    php下安装动态扩展库的相关事项 我下载的Apache版本为2.4,PHP版本为7.0. 将Apache与PHP集成配置好后(PHP安装目录为:G:\computer\web\php7,apache安 ...

  10. java_JDBC字段对应

    地址: http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/java.102/B19275-03/datacc.htm ...