抓包工具Wireshark的使用
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的追踪和排查。捕捉过滤器仅支持协议过滤,显示过滤器既支持协议过滤也支持内容过滤。两种过滤器它们支持的过滤语法并不一样。
下面来详细学习两种过滤器
- 捕捉过滤器--捕捉前依据协议的相关信息进行过滤设置
- 语法
Protocol Direction Host(s) Value Logical Operations Other expression
- 字段详解
- 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)”不等价。
- Protocol(协议):
- 示例
(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内的所有封包。
- 语法
- 显示过滤器--对捕捉到的数据包依据协议或包的内容进行过滤
- 协议过滤
- 语法
Protocol.String1.String2 Comparison operator Value LogicalOperations Otherexpression
string1和string2是可选的。依据协议过滤时,可直接通过协议来进行过滤,也能依据协议的属性值进行过滤。
- 示例
//按协议进行过滤
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标志的封包。
- 内容过滤
- 深度字符串匹配
使用contains:Does the protocol, field or slice contain a value
示例//显示payload中包含"http"字符串的tcp封包。
tcp contains "http"
//显示请求的uri包含"online"的http封包。
http.request.uri contains "online" - 特定偏移处值的过滤
//16进制形式,tcp头部一般是20字节,所以这个是对payload的前三个字节进行过滤
tcp[20:3] == 47:45:54
http.host[0:4] == "trac" - 过滤中函数的使用(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的使用的更多相关文章
- 抓包工具Wireshark过滤器
抓包工具WireShark分为两种过滤器: 捕捉过滤器(CaptureFilters) 显示过滤器(DisplayFilters) 捕捉过虑器语法: Protocol Direction Host ...
- socket和抓包工具wireshark
socket和抓包工具wireshark 最近在学习Python代码中的socket和抓包工具wireshark,故又将socket等概念又学习了一遍,温故而知新: Python代码如下: serve ...
- 网络抓包工具-Wireshark学习资料
wireshark一个非常牛逼的网络抓包工具.转载一系列博文 一站式学习Wireshark(一):Wireshark基本用法 一站式学习Wireshark(二):应用Wireshark观察基本网络协议 ...
- 学习tcpIp必备的抓包工具wireshark
wireshark是一个优秀的抓包工具 ip.src=192.168.10.123 发送http的一端 ip.dst=192.168.10.126 接收http的一端 如下图所示:
- 软件测试必须掌握的抓包工具Wireshark,你会了么?
作为软件测试工程师,大家在工作中肯定经常会用到各种抓包工具来辅助测试,比如浏览器自带的抓包工具-F12,方便又快捷:比如时下特别流行的Fiddler工具,使用各种web和APP测试的各种场景的抓包分析 ...
- GNS3与抓包工具Wireshark的关联
转至:https://blog.51cto.com/xpleaf/1615145 (一)前言 本博文分享GNS3与Wireshark关联的方法. 显然现在网络上已经有类似的文章分享,而本博文旨在提供更 ...
- Wireshark 网络抓包工具Wireshark的使用
阅读目录 wireshark介绍 wireshark不能做的 wireshark VS Fiddler 同类的其他工具 什么人会用到wireshark wireshark 开始抓包 wireshark ...
- 网络抓包工具wireshark and tcpdump 及其实现基于的libpcap
最近无意中看到博客园中一篇介绍wireshark的文章,写得不错,它简单清楚介绍了wireshark的使用 简介 wireshark以前叫做Ethereal, 在大学时候的网络课程中就常看到它,它是世 ...
- 抓包工具-Wireshark(详细介绍与TCP三次握手数据分析)
功能使用的详细介绍 wireshark(官方下载网站: http://www.wireshark.org/),是用来获取网络数据封包,可以截取各种网络封包,显示网络封包的详细信息,包括http,TCP ...
随机推荐
- 如何迅速成为Java高手
很多网友朋友问我学习Java有没有什么捷径,我说“没有,绝对没有!”.但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛! 要想学好Java,首先要知 ...
- linux学习笔记----权限与命令之间的关系(极重要)
一.权限与命令之间的关系 二.文件与目录的默认权限与隐藏权限 1)umask为默认的权限(通过umask -S)查看你的系统的默认权限. umask的分数是指该默认值需要减掉的权限,比如说umask= ...
- WinMerge文件编码设置
http://blog.sina.com.cn/s/blog_7575fab10101o0na.html 系统默认是System codepage,我们要选用Custom codepage.值得注意的 ...
- 如何使用矩阵乘法加速动态规划——以[SDOI2009]HH去散步为例
对这个题目的最初理解 开始看到这个题,觉得很水,直接写了一个最简单地动态规划,就是定义 f[i][j]为到了i节点路径长度为j的路径总数, 转移的话使用Floyd算法的思想去转移,借助这个题目也理解了 ...
- Windows 10 IoT Core环境配置中的那些坑
我使用的设备是Raspberry Pi 3B,想来国内的嵌入式玩具应该还是树莓派最常见吧.这段时间一直在捣鼓Win10 IoT,结果发现,从安装一直到编码调试一路下来全都是坑.写这篇东西一个是为了备忘 ...
- HTML css 格式布局
CSS(cascading style sheets,层叠样式表),作用是美化HTML网页. /*注释*/ 注释语法 2.1 样式表的基本概念 2.1.1样式表的分类 1.内联样式表 和HTML联 ...
- 从jvm的角度来看java的多线程
最近在学习jvm,发现随着对虚拟机底层的了解,对java的多线程也有了全新的认识,原来一个小小的synchronized关键字里别有洞天.决定把自己关于java多线程的所学整理成一篇文章,从最基础的为 ...
- 初识 BFC、 IFC、GFC、FFC
首先本文中介绍的 BFC. IFC.GFC.FFC 均为 CSS 中常见问题的解读,如没兴趣,可以绕道了. 然后在介绍这么多的 *FC 之前,我们得了解 一下 Box 和 Formatting Con ...
- self、 superclass 、 super的区别
self. superclass . super self : 当前方法的调用者 class:获取方法调用者的类对象 superclass:获取方法调用者的父类对象 super:不是一个指针,编译指示 ...
- TypeScript-01-变量、基本类型和运算符
基本类型 基本类型有boolean.number.string.array.void.所有类型在TypeScript中,都是一个唯一的顶层的Any Type 类型的自类型.any关键字代表这种类型. ...