后端开发工程师必备技能——wireshark抓包

同步侠
• 阅读 10278

抓包原理wireshark

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

一、wireshark简介

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

二、抓包是抓哪些包?

1.本机环境

也就是抓取的是我们电脑的网卡进出的流量
后端开发工程师必备技能——wireshark抓包

2.集线器环境

流量防洪,同一冲突域(网络域)物理层

后端开发工程师必备技能——wireshark抓包

3.交换机环境

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

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

后端开发工程师必备技能——wireshark抓包

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

二、底层原理

看图所示:

后端开发工程师必备技能——wireshark抓包

三、过滤器

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

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、显示过滤器

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

后端开发工程师必备技能——wireshark抓包
后端开发工程师必备技能——wireshark抓包
后端开发工程师必备技能——wireshark抓包
后端开发工程师必备技能——wireshark抓包

四、功能

1.数据包追踪 Follow TCP Stream

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

五、功能介绍

1.专家信息(Analyze–>Expert Info)
可以看到: 1.对话: 关于正常通信的基本信息
    2.注意:正常通信时的异常数据包
    3.警告:不是正常通信中的异常数据包(个人理解为:非正常的通信产生的数据包)
    4.错误:数据包中的错误,或者解析器解析时的错误
2.汇总信息(Statistics–>Summary)
摘要说明,也相当与是信息汇总
3.协议层分析
4、网络节点统计
5.数据包长度统计
6.图表分析
等等。。。
剩余这些功能我们可能一般用的不是很多,主要掌握跟踪数据流之前基本就可以了。
后端开发工程师必备技能——wireshark抓包

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Irene181 Irene181
4年前
肝了三天,万字长文教你玩转 tcpdump,从此抓包不用愁
系列导读本文是【网络知识扫盲】专栏的第三篇。今天要给大家介绍的一个Unix下的一个网络数据采集分析工具\Tcpdump,也就是我们常说的抓包工具。与它功能类似的工具有wireshark,不同的是,wireshark有图形化界面,而tcpdump则只有命令行。由于我本人更习惯使用命令行的方式进行抓包,因此今天先跳过
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
4年前
Linux服务器下的HTTP抓包分析
说到抓包分析,最简单的办法莫过于在客户端直接安装一个Wireshark或者Fiddler了,但是有时候由于客户端开发人员(可能是第三方)知识欠缺或者其它一些原因,无法顺利的在客户端进行抓包分析,这种情况下怎么办呢?本文中,我们将给大家介绍在服务端进行抓包分析的方法,使用tcpdump抓包,配合Wireshark对HTTP请求进行分析,非常简单有效。本
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
4年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
同步侠
同步侠
Lv1
万里归船弄长笛,此心吾与白鸥盟。
文章
2
粉丝
0
获赞
0