#用于个人笔记整理
1、下载
下载地址:https://www.wireshark.org/
2、WinPcap和Libcap
WinPcap和Libcap(或Libpcap)是Wireshark在不同操作系统平台上进行数据包捕获的关键组件。它们为Wireshark提供了与网卡直接交互的能力,使得Wireshark能够捕获并分析网络上的数据包。这些组件的存在使得Wireshark成为了一个功能强大、灵活易用的网络封包分析软件。
WinPcap(Windows Packet Capture)是一个在Windows平台下用于数据包捕获的开源库。它允许应用程序捕获和发送网络上的数据包,并提供了用于网络分析和网络开发的底层访问权限。WinPcap是Wireshark在Windows系统下用于与网卡进行数据报文交换的接口。它使得Wireshark能够捕获和分析流经网络接口的数据包。
Libcap(Linux Packet Capture)是Linux平台下的一个用户空间库,它提供了捕获和发送网络数据包的能力。虽然Libcap本身并不是Wireshark的直接组件,但它为Wireshark在Linux系统下的数据包捕获提供了底层支持。在Linux系统中,Wireshark通常使用Libpcap(Libpcap是Libcap的一个变种,专为数据包捕获而设计)作为接口与网卡进行数据报文交换。
3、网卡
网卡(Network Interface Card,简称NIC),也被称为网络适配器或网络接口控制器,是计算机与网络连接的主要硬件设备之一。它允许计算机连接到局域网(LAN)、城域网(MAN)、广域网(WAN)或互联网等网络环境,实现数据的传输与共享。
4、Wireshark 开始抓包示例
选择对应的网卡,右键,会出现Start Capture(开始捕获),点击即可进行捕获该网络信息,开始抓取网络包
wireshark抓包完成
5、wireshark功能模块
1)捕获模块
功能:捕获模块是Wireshark最基础的功能模块,它负责从网络接口捕获数据包。用户可以选择捕获特定接口的数据包,也可以设置过滤器,只捕获符合条件的数据包。
特点:支持多种网络接口,包括以太网、WiFi、蓝牙等。启动后,Wireshark会监听指定的网络接口,并将接收到的数据包保存在内存中。
2)解析模块
功能:解析模块是Wireshark的核心模块,它能够解析多种协议的数据包,并提取出其中的各个字段的值。这些协议包括常见的TCP/IP协议(如IP、TCP、UDP)以及应用层协议(如HTTP、FTP、DNS)。
特点:支持自定义协议的解析,用户可以根据需要添加自定义协议的解析规则。通过解码器,Wireshark能够以易读的方式展示数据包的内容。
3)分析模块
功能:分析模块可以对捕获到的数据包进行深入分析,帮助用户查找网络故障的原因、优化网络性能以及检测网络安全问题。
特点:提供多种分析工具和方法,如协议分析、流量统计、报文长度统计等,帮助用户全面了解网络的使用情况和性能状况。
4)显示模块
功能:显示模块负责将解析后的数据包以可读性强的方式展示出来。它通常将数据包以树状结构展示,每个字段都有对应的值,用户可以根据需要查看和隐藏某些字段。
特点:支持多种显示方式,如表格、图形等,帮助用户更直观地理解数据包的内容。
5)过滤模块
功能:过滤模块允许用户根据条件过滤出符合要求的数据包。这些条件可以包括源IP地址、目的IP地址、协议类型、端口号等。
特点:提供显示过滤器和捕获过滤器两种过滤方式。显示过滤器用于在已捕获的数据包中筛选出符合条件的数据包进行显示;捕获过滤器则用于在捕获过程中直接过滤掉不符合条件的数据包,以减少捕获的数据量。
6)统计模块
功能:统计模块可以对捕获到的数据包进行各种统计分析,如流量统计、协议统计、报文长度统计等。
特点:提供丰富的统计报告和图表,帮助用户更好地了解网络的使用情况和性能状况。
7)导出模块
功能:导出模块允许用户将捕获到的数据包导出为不同的文件格式,如PCAP、CSV、XML等。
特点:支持多种导出格式和选项,用户可以根据需要选择导出的文件格式和字段。
6、过滤器
1)捕获过滤器
捕获过滤器(Capture Filters)在Wireshark开始捕获数据包之前应用,用于限制捕获到Wireshark中的数据包数量。它们基于数据包的一些基本属性(如协议类型、源/目标IP地址、源/目标端口等)来过滤数据包。由于捕获过滤器是在数据包被捕获到系统之前应用的,因此它们能够显著减少Wireshark需要处理的数据量,从而提高分析效率。
2)显示过滤器
显示过滤器(Display Filters)在数据包已经被捕获到Wireshark中之后应用,用于在已经捕获的数据包列表中过滤出满足特定条件的数据包。与捕获过滤器不同,显示过滤器不会限制捕获到Wireshark中的数据包数量,而是提供了一种在已捕获的数据包中快速查找和定位感兴趣的数据包的方法。
7、捕获过滤器语法
(1)协议过滤
TCP,只显示TCP协议的数据包列表
HTTP,只查看HTTP协议的数据包列表
ICMP,只显示ICMP协议的数据包列表
(2)IP过滤
host 192.168.1.104
src host 192.168.1.104
dst host 192.168.1.104
(3)端口过滤
port 80
src port 80
dst port 80
(4)逻辑运算符&& 与、|| 或、!非
src host 192.168.1.104 && dst port 80 抓取主机地址为192.168.1.80、目的端口为80的数据包
host 192.168.1.104 || host 192.168.1.102 抓取主机为192.168.1.104或者192.168.1.102的数据包
!broadcast 不抓取广播数据包
8、显示过滤器语法
(1)比较操作符
比较操作符有== 等于、!= 不等于、> 大于、< 小于、>= 大于等于、<=小于等于。
(2)协议过滤
直接在Filter框中直接输入协议名即可。注意:协议名称需要输入小写。
tcp,只显示TCP协议的数据包列表
http,只查看HTTP协议的数据包列表
icmp,只显示ICMP协议的数据包列表
(3) ip过滤
ip.src ==192.168.1.104 显示源地址为192.168.1.104的数据包列表
ip.dst==192.168.1.104, 显示目标地址为192.168.1.104的数据包列表
ip.addr == 192.168.1.104 显示源IP地址或目标IP地址为192.168.1.104的数据包列表
(4)端口过滤
tcp.port ==80, 显示源主机或者目的主机端口为80的数据包列表。
tcp.srcport == 80, 只显示TCP协议的源主机端口为80的数据包列表。
tcp.dstport == 80,只显示TCP协议的目的主机端口为80的数据包列表。
(5) Http模式过滤
http.request.method=="GET", 只显示HTTP GET方法的。
(6)逻辑运算符为 and/or/not
过滤多个条件组合时,使用and/or。比如获取IP地址为192.168.1.104的ICMP数据包表达式为ip.addr == 192.168.1.104 and icmp
(7)按照数据包内容过滤。即可视化操作。