掌握wireshark抓包,成为后端开发工程师的必备技能

发表时间: 2021-09-08 16:43

抓包原理wireshark

这篇文章主要是用来记录一下wireshark原理和使用方法,包括一些功能。一方面分享,一方面给自己做个笔记,而且作为一个后台开发人员,掌握抓包工具是必备的技能之一。

一、wireshark简介

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

二、抓包是抓哪些包?

1.本机环境

也就是抓取的是我们电脑的网卡进出的流量


2.集线器环境
流量防洪,同一冲突域(网络域)物理层


3.交换机环境
也就是数据链路层(MAC地址表),如图所示,在这个环境中获取数据包的方式有一下几种:
3.1 端口镜像(SPAN)
利用SPAN技术我们可以把交换机上某些想要被监控端口(以下简称受控端口)的数据流COPY或MIRROR一 份,发送给连接在监控端口上的流量分析仪


3.2 ARP欺骗

针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网上上特定计算机或所有计算机无法正常连线


3.3 MAC泛洪
交换机中存在着一张记录着MAC地址的表,为了完成数据的快速转发,该表具有自动学习机制;泛洪攻击即是攻击者利用这种学习机制不断发送不同的MAC地址给交换机,充满整个MAC表,此时交换机只能进行数据广播,攻击者凭此获得信息。


二、底层原理
看图所示:


【文章福利】:小编整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!(832218493需要自取)

三、过滤器
1、抓包过滤器

也叫捕捉过滤器,设置步骤为:选择 capture -> options。填写"capture filter"栏或者点击"capture filter"按钮为您的过滤器起一个名字并保存,以便在今后的捕捉中继续使用这个过滤器。点击开始(Start)进行捕捉。



Protocol(协议): 可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp. 如果没有特别指明是什么协议,则默认使用所有支持的协议。

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)"不同。

注意事项:

当使用关键字作为值时,需使用反斜杠“\”。

"ether proto \ip" (与关键字"ip"相同).

这样写将会以IP协议作为目标。

"ip proto \icmp" (与关键字"icmp"相同).

这样写将会以ping工具常用的icmp作为目标。

可以在"ip"或"ether"后面使用"multicast"及"broadcast"关键字。

当您想排除广播请求时,"no broadcast"就会非常有用。

2、显示过滤器
显示过滤器是在原来或者现在抓包的基础上,过滤掉其他的包,找到自己需要的数据报包。 如图所示:



四、功能
1.数据包追踪 Follow TCP Stream


其实到这,作为程序员来说,用wireshark来抓包就已经够用了,而且我们一般也就是这些功能会使用的多,剩下的功能我只做一个简单的介绍,以便后续需要的时候,可以尽快的找到相应的功能模块。


五、功能介绍

1.专家信息(Analyze–>Expert Info)

可以看到: 1.对话: 关于正常通信的基本信息

    2.注意:正常通信时的异常数据包

    3.警告:不是正常通信中的异常数据包(个人理解为:非正常的通信产生的数据包)

    4.错误:数据包中的错误,或者解析器解析时的错误

2.汇总信息(Statistics–>Summary)

摘要说明,也相当与是信息汇总

3.协议层分析

4、网络节点统计

5.数据包长度统计

6.图表分析

等等。。。

剩余这些功能我们可能一般用的不是很多,主要掌握跟踪数据流之前基本就可以了。