欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Wireshark抓包,带你快速入门

程序员文章站 2022-04-10 13:51:25
前言 关于抓包我们平时使用的最多的可能就是Chrome浏览器自带的Network面板了(浏览器上F12就会弹出来)。另外还有一大部分人使用Fiddler,Fiddler也是一款非常优秀的抓包工具。但是这两者只能对于HTTP和HTTPS进行抓包分析。如果想要对更底层的协议进行分析(如TCP的三次握手) ......

前言

关于抓包我们平时使用的最多的可能就是chrome浏览器自带的network面板了(浏览器上f12就会弹出来)。另外还有一大部分人使用fiddler,fiddler也是一款非常优秀的抓包工具。但是这两者只能对于http和https进行抓包分析。如果想要对更底层的协议进行分析(如tcp的三次握手)就需要用到我们今天来说的工具wireshark,同样是一款特牛逼的软件,且开源免费自带中文语言包。

安装和基本使用

wireshark开源地址:
wireshark下载地址:,这里有它的历史版本。今天我们就来安装最新版本3.2.0,一路默认“下一步”安装大法就可以了。安装好后默认就是中文版。

开始抓包

Wireshark抓包,带你快速入门

显示过滤器

Wireshark抓包,带你快速入门
你会发现第一部分内容跳到非常快,根本没法找到自己想要分析的内容。这里我们可以使用显示过滤器,只显示我们想要看的内容。
在显示过滤器填入http.request.method == "get",然后用chrome浏览器访问(特意找的一个http网站)
Wireshark抓包,带你快速入门

除了过滤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,表达端口的过滤(这里的语法和显示过滤器不一样,请注意)
    Wireshark抓包,带你快速入门

着色规则

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

tcp/ip四层协议

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

tcp三次握手

对于三次握手我想很多人只听过没见过,那么今天我们就来见见。
三次握手是过程: 1、客户端发送同步syn标志位和序列号seq(a) 2、服务器回复synack、seq(b)、ack(a+1)3、客户端回复syn、seq(a+1)、ack(b+1)
Wireshark抓包,带你快速入门
那么在wireshark中怎么观察呢。我们还是以http://fanyi-pro.baidu.com/地址为例。首先打开chrome输入地址,f12打开浏览器的network面板,刷新页面在面板中找到服务器ip。 打开wireshark开始抓包,并在显示过滤器只显示ip地址对应的数据。
Wireshark抓包,带你快速入门
Wireshark抓包,带你快速入门
Wireshark抓包,带你快速入门

tcp四次挥手

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

udp协议

wireshark除了可以抓包tcp同样也可以对udp进行抓包。
Wireshark抓包,带你快速入门
其实这个抓取的是bacnet报文,而这个bacnetip正是基于udp的一个协议。

modbustcp协议

Wireshark抓包,带你快速入门

结束

授人以鱼不如授人以渔。wireshark不仅可以对我们常见的http、https、tcp等协议进行抓包分析,还能对工业上的bacnet、modbus、s7communication和其他plc协议进行报文抓包分析。如就通过抓包破解了西门子plc没有公开的协议。
希望有兴趣的朋友可以一起来完善iotclient组件

参考