Wireshark抓包,带你快速入门
前言
关于抓包我们平时使用的最多的可能就是Chrome浏览器自带的Network面板了(浏览器上F12就会弹出来)。另外还有一大部分人使用Fiddler,Fiddler也是一款非常优秀的抓包工具。但是这两者只能对于HTTP和HTTPS进行抓包分析。如果想要对更底层的协议进行分析(如TCP的三次握手)就需要用到我们今天来说的工具Wireshark,同样是一款特牛逼的软件,且开源免费自带中文语言包。
安装和基本使用
Wireshark开源地址:https://github.com/wireshark/wireshark
Wireshark下载地址:https://www.wireshark.org/download,这里有它的历史版本。今天我们就来安装最新版本3.2.0,一路默认“下一步”安装大法就可以了。安装好后默认就是中文版。
开始抓包

显示过滤器

你会发现第一部分内容跳到非常快,根本没法找到自己想要分析的内容。这里我们可以使用显示过滤器,只显示我们想要看的内容。
在显示过滤器填入http.request.method == "GET",然后用Chrome浏览器访问http://fanyi-pro.baidu.com/index(特意找的一个http网站)

除了过滤Get请求外,常用的显示过滤器还有:
- tcp、udp 前者表示只显示tcp,后者表示只显示udp。也可以!tcp,表示显示除了tcp之外的。还可以tcp or udp,表示显示tcp和udp。
- ip.src == 192.168.1.120 and ip.dst == 208.101.60.87 ,ip.src表示客户端ip(源地址ip)、ip.dst表示服务器ip(目标地址ip)
- tcp.port == 80 || udp.srcport == 80 ,tcp.port 表示tcp的端口为80,udp.srcport表示udp源端口为80。||表示或者和or等效,&&和and等效。(还有tcp.srcport、tcp.dstport等等)
捕获过滤器
显示过滤器是指捕获了所有经过网卡的封包,然后在显示的时候进行过滤显示。明显,如果流量过大会导致捕获的内容过多,筛选变得卡顿。所以,我们可以在捕获阶段的时候就过滤掉无用的流量。
- udp、tcp 前者表示只显示tcp,后者表示只显示udp。也可以!tcp,表示显示除了tcp之外的。还可以tcp or udp,表示显示tcp和udp。
- host 192.168.1.110 ,表示只捕获ip地址为192.168.1.110的封包(这里的语法和显示过滤器不一样,请注意)
- dst port 80 or port 443、not port 53,表达端口的过滤(这里的语法和显示过滤器不一样,请注意)

着色规则
我们看到第一部分内容,封包列表有各种不同的背景色。其不同颜色代表不同意义。淡蓝色代码udp协议,红字黑底代表有问题的封包。更多具体规则可 识图->着色规则

TCP/IP四层协议

下面的动图是各层对应的数据

从上面的动图我们可以发现,应用层到传输层再到网络层到以太网层,其对应的数据包也在对应的往前移。
我们可以想象一下,应用层数据往上传递,每经过一层就包上一个新得信封。等数据送到目的主机,然后没往下一层就拆一个信封,最后拆到应用层也就是最开始得数据了。

TCP三次握手
对于三次握手我想很多人只听过没见过,那么今天我们就来见见。
三次握手是过程: 1、客户端发送同步SYN标志位和序列号Seq(a) 2、服务器回复SYNACK、Seq(b)、Ack(a+1)3、客户端回复SYN、Seq(a+1)、Ack(b+1)

那么在Wireshark中怎么观察呢。我们还是以http://fanyi-pro.baidu.com/地址为例。首先打开Chrome输入地址,F12打开浏览器的Network面板,刷新页面在面板中找到服务器IP。 打开Wireshark开始抓包,并在显示过滤器只显示IP地址对应的数据。



TCP四次挥手
除了三次握手,还有对应的四次挥手。不知道是不是我网络不好,“挥手”的时候老是出现重传错误干扰(就是前面说的那种红字黑底封包)。下面是我本地环境自己写代码的抓包效果。
与握手不同是挥手是发送FIN标志位断开连接,其他都差不多。

Wireshark抓包如下

UDP协议
Wireshark除了可以抓包TCP同样也可以对UDP进行抓包。

其实这个抓取的是BACnet报文,而这个BACnetIP正是基于UDP的一个协议。
ModBusTcp协议

结束
授人以鱼不如授人以渔。Wireshark不仅可以对我们常见的HTTP、HTTPS、TCP等协议进行抓包分析,还能对工业上的BACnet、ModBus、S7Communication和其他PLC协议进行报文抓包分析。如这位大佬就通过抓包破解了西门子PLC没有公开的协议。
希望有兴趣的朋友可以一起来完善IoTClient组件。
参考
- https://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html
- https://www.jianshu.com/p/d3725391af59
- https://blog.csdn.net/qq_38950316/article/details/81087809
Wireshark抓包,带你快速入门的更多相关文章
- MAC Wireshark抓包IOS
网络抓包是个基础技能,对于网络协议的掌握有一定的要求.iOS上实现网络抓包可以用Charles(针对http和https),tcpdump(快速分析网络包),和Wireshare.之前写过一篇介绍tc ...
- TCP协议基础知识及wireshark抓包分析实战
TCP相关知识 应swoole长连接开发调研相关TCP知识并记录. 数据封包流程 如图,如果我需要发送一条数据给用户,实际的大小肯定是大于你发送的大小,在各个数据层都进行了数据的封包,以便你的数据能完 ...
- Wireshark抓包数据:理解与分析
wireshark是一个非常好用的抓包工具,本文根据平时抓包经验,对之前wireshark抓包的一些常见知识点进行了整理. 有不当之处,欢迎指正 1.SYN,FIN会消耗一个序号,单独的ACK不消耗序 ...
- 使用wireshark抓包分析浏览器无法建立WebSocket连接的问题(server为Alchemy WebSockets组件)
工作时使用了Websocket技术,在使用的过程中发现,浏览器(Chrome)升级后可能会导致Websocket不可用,更换浏览器后可以正常使用. 近日偶尔一次在本地调试,发现使用相同版本的Chrom ...
- Wireshark抓包工具使用教程以及常用抓包规则
转载:http://fangxin.blog.51cto.com/1125131/735178 Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析, ...
- wireshark抓包新手使用教程
wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息.常用于开发测试过程各种问题定位. Wireshark软件安装 软件下载路径:wireshark官网.按照系 ...
- wireshark抓包结果很多[TCP Retransmission]怎么办?
有一同事问用wireshark抓包时发现很多[TCP Retransmission],这些包极大影响了自己真正想看的http数据包,如下图. 我拿到pcapng后首先看到这些包的来源ip都是固定的两个 ...
- TCP/IP详解卷1 - wireshark抓包分析
TCP/IP详解卷1 - 系列文 TCP/IP详解卷1 - 思维导图(1) TCP/IP详解卷1 - wireshark抓包分析 引言 在初学TCP/IP协议时,会觉得协议是一种很抽象的东西,通过wi ...
- Wireshark抓包分析TCP协议
版权声明:本文为作者原创文章,可以随意转载,但必须在明确位置表明出处!!! 之前有一篇文章介绍了http协议「初识http协议」, http协议协议是基于tcp协议的,所以作者觉得有必要针对tcp ...
随机推荐
- Remove Extra One 权值线段树
最近疯狂练习线段树... 这道题题意很简单,在1-n中,找寻一个数,使得去掉这个数后,对于每个位置中满足 1<=j<i && a[ j ]<a[ i ] 的位置尽可能 ...
- Python 函数参数有冒号 声明后有-> 箭头 返回值注释 参数类型注释
在python3.7 环境下 函数声明时能在参数后加冒号,如图: 1 def f(ham: str, eggs: str = 'eggs') -> str : 2 print("Ann ...
- Echarts Map地图下钻至县级
**准备工作:**1.首先使用vue-cli的脚手架生成vue项目. 2.然后使用npm安装echartsnpm install echarts -S 3.安装完后再mian.js中挂载到vue的实例 ...
- H3C 帧中继协议特点
- 洛谷P1280 尼克的任务 题解 动态规划/最短路
作者:zifeiy 标签:动态规划.最短路 题目链接:https://www.luogu.org/problem/P1280 题目大意: 有k个任务分布在第1至n这n个时间点,第i个任务的于第 \(P ...
- Python--day46--用户管理设计方案介绍
1,基于用户权限管理: 2,基于角色的权限管理: 开始一个项目如果要100天的,可能70天都在设计,比如设计数据库表结构,最后30天才是写代码.设计是最难的,写代码是最简单的. 还有一个重要的一点,写 ...
- Redis - 命令行工具
使用Redis内置的命令行工具 redis-cli一些便捷的命令: 1.执行单条命令 平时在访问 Redis 服务器,一般都会使用 redis-cli 进入交互模式,然后一问一答来读写服务器,这种情况 ...
- H3C 802.1X典型配置举例
- js实现防抖,节流
防抖函数. 将几次操作合并为一次操作进行.设置一个计时器,规定在延迟时间后触发函数,但是在延迟时间内如果再次触发,就会取消之前的计时器.如此,只有最后一次操作能触发.代码如下: function de ...
- java.lang.NoSuchMethodException: com.hgkj.controler.action.UserAction.newsLoginAction()
java.lang.NoSuchMethodException: com.hgkj.controler.action.UserAction.newsLoginAction() 不久前在学习struts ...