文章目录
- 软件功能
- 平台支持
- 下载网站
- 相关软件
- wireshark抓包原理
- 网络层原理
- 底层原理
- 软件基本应用
- wireshark界面详解
- 软件调试
- 过滤器
wireshark
软件功能
- 分析网络层协议
- 解决网络故障问题
- 寻找网络安全问题
平台支持
windows、linux/Unix、MACOS
下载网站
https://www.wireshark.org/https://wiki.wireshark.org/
相关软件
sniffer(嗅探器)、Fiddier(针对HTTP)、科来网络分析系统
wireshark抓包原理
网络层原理
本机环境:
即直接抓取进出本机网卡的流量包。这种情况下,wireshark会绑定本机的一块网卡。
集线器环境
用于抓取流量泛洪,冲突域内的数据包,即整个局域网的数据包。
PC2和PC3的数据可以通过集线器被PC1抓取到。
交换机环境
1.端口镜像
即交换机严格按照tenlnet表和mac地址表进行转发数据包。当PC2和PC3通信的时候,默认是PC1是无法抓取数据包的,但是可以通过在交换机上设置策略,即端口镜像。这样PC2和PC3通信的数据包就被复制一份到连接PC2的那个交换机端口,这样PC2就可以抓取到PC2和PC3的通信数据包了
2.ARP欺骗
步骤如下:
(1)PC2想和PC3通信,故而向交换机发送广播
(2)正常情况下PC1会将此包丢弃掉(因为要找的不是它),但是这里的PC1会进行ARP欺骗,告诉PC2它就是PC2要找的PC3
(3)因为ARP后到优先的特性,PC2很大可能会认为PC1的MAC地址是自己要找的PC3
(4)就这样,PC2和PC3的通信就变成了PC2和PC1的通信了。
(5)至于后续PC1要不要把数据(可能被修改的数据)交给PC3,那完全取决于PC1的心情。
3.MAC防洪
这种情况下,PC1没有端口镜像的权限,所以它不能直接截取全网的流量,那么该怎么做呢?
(1)PC1发送大量垃圾包,这里产生了大量的MAC地址,导致MAC表爆表
(2)PC2和PC3发出的数据找不到目的地址就会进行全网泛洪,被PC1截取全网流量
!注意:wireshark抓包原理来自这篇博客哟
底层原理
软件基本应用
快速抓包
- 进入初始化界面
- 选择网卡
- 停止抓包
- 保存数据包(另存)
wireshark界面详解
紫色框框为菜单栏,分别是
- File:“文件”栏,包含了打开和合并捕获数据文件项、部分或全部保存/打印/导出捕获数据文件项以及退出应用程序选项等。
- Edit:“编辑”栏,包含了查找数据包、设置时间参考、标记数据包、设置配置文件、设置首选项等。需要注意的是,在“编辑”栏中,没有剪切、复制和粘贴等选项。
- View:“视图”栏,主要用来控制捕获数据的显示方式。“视图”栏包括了数据包着色选项、缩放字体选项、在新窗口显示数据包选项、展开/折叠数据包细节选项等。
- Go:“跳转”栏,主要用来跳转到指定数据包。
- Capture:“捕获”栏,包含了开始/停止捕获选项以及编辑包过滤条件选项等。
- Analyze:“分析”栏,包含了显示包过滤宏、启用协议、配置用户指定的解码方式以及追踪TCP流等选项。
- Statistics:“统计”栏,可以显示各种统计窗口,这些统计窗口包括捕获文件的属性选项、协议分级选项以及显示流量图选项等。
- Telephony:“统计”栏,可以显示与电话相关的统计窗口,这些统计窗口包括媒介分析、VoIP通话统计选项以及SIP流统计选项等。
- Wireless:无线”栏,用来显示蓝牙和无线网络的统计数据。
- Tools:“工具”栏,包含了Wireshark中能够使用的工具。
- Help:“帮助”栏,为用户提供一些基本的帮助,包括了说明文档选项、网页在线帮助选项以及常见问题选项等。
红色框为工具栏,分别是
使用工具中的常用按钮,分别有:
- 启动,停止,重置,查看网卡列出接口选项,打开文件,着色,关闭文件,重新载入当前文件,打开一个对话框,查找包,返回历史记录的上一个,跳转到历史记录中的下一个包,弹出一个设置跳转到指定的包的对话框,跳转到第一个包,跳转到最后一个包,切换是否以彩色方式显示包列表,开启/关闭实时捕捉时自动滚动包列表,增大字体,缩小字体,设置缩放大小为100%
- Filter:筛选栏,输入筛选条件,来在捕获的记录中找到所需要的记录。
封包列表(Packet List Pane)
封包列表的面板中显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。 你可以看到不同的协议用了不同的颜色显示。
封包详细信息 (Packet Details Pane)
这个面板是我们最重要的,用来查看协议中的每一个字段。
各行信息分别为
- Frame: 物理层的数据帧概况
- Ethernet II: 数据链路层以太网帧头部信息
- Internet Protocol Version 4: 互联网层IP包头部信息
- Transmission Control Protocol: 传输层T的数据段头部信
- TCP三次握手:
- Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
十六进制数据(Packet Bytes)
以十六进制和ASCII码的形式显示数据包的内容。
状态栏
包含有专家信息、注释、包的数量和Profile。
!注意:wireshark中MAC地址前三位是厂商名称
软件调试
过滤器
显示过滤器Filter:输入筛选条件,来在捕获的记录中找到所 需要的记录。
筛选实例:
1.筛选ip地址为180.97.134且tcp端口为80的。
输入:ip.addr==180.97.34.131 and tcp.port==80
2.筛选tcp协议的数据包,直接在筛选栏。
输入tcp
3.只查看长度小于128字节的数据包。
输入frame.len<=128
4.只显示与192.168.1.1有关且与tcp端口15234有关的数据包。
输入ip.addr==192.168.1.1 && tcp.port==15234
此外我们可以保存筛选条件,方便下次直接使用,操作如下:
- 点击菜单栏Analyze——Display Filters——new——在Filter name里给它取个名——在Filter string把我们的筛选条件写上去——Apply——OK
捕获过滤器Filter: - 打开wireshark,选择Capture->Interfaces,结果如图:
- 点击上图的Option,然后点击Capture框里一条数据,再点击IP address然后双击你要监测的网卡,结果如图:
- 在Capture Filter一栏中输入筛选条件
- 点击OK后,再点击“Start”,即开始捕获通过筛选的数据包。
!注意:捕获过滤器应用于WinPacp,并使用Berkeley Packet Filter(BPF)语法。
筛选命令例子:
1.src host 192.168.1.1
,捕获来自192.168.1.1的数据包
host PC-TEST,捕获与计算机名为PC-TEST交互的数据包
2.icmp[0]==3
,只想要得到代表目标不可达(类型3)信息的ICMP数据包。
3. !port 8080
,捕获除8080端口外的所有数据包
4. tcp
,捕获tcp数据包