本文最后更新于 2024-04-01,欢迎来到我的Blog! https://www.zpeng.site/

Wireshark下载使用

1.介绍

https://www.wireshark.org/

直接下载安装即可

wireshark是非常流行的网络封包分析软件,简称小鲨鱼,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。

抓包原理

Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

Wireshark使用的环境大致分为两种,一种是电脑直连网络的单机环境,另外一种就是应用比较多的网络环境,即连接交换机的情况。

「单机情况」下,Wireshark直接抓取本机网卡的网络流量;

「交换机情况」下,Wireshark通过端口镜像、ARP欺骗等方式获取局域网中的网络流量。

端口镜像:利用交换机的接口,将局域网的网络流量转发到指定电脑的网卡上。

ARP欺骗:交换机根据MAC地址转发数据,伪装其他终端的MAC地址,从而获取局域网的网络流量。

2.简单使用

1.打开wireshark,主界面如下:

选择监听的网络

2.界面

WireShark 界面包含:

  1. 菜单栏:用于调试、配置

  2. 工具栏:常用功能的快捷方式

  3. 过滤栏:指定过滤条件,过滤数据包

  4. 数据包列表:核心区域,每一行就是一个数据包

  5. 数据包详情:数据包的详细数据

  6. 数据包字节:数据包对应的字节流,二进制

说明:数据包列表区中不同的协议使用了不同的颜色区分。协议颜色标识定位在菜单栏视图-->着色规则。如下所示

wireshark启动后,wireshark处于抓包状态中。

操作完成后相关数据包就抓取到了,可以点击 停止捕获分组 按钮。

wireshark抓包完成,并把本次抓包或者分析的结果进行保存,就这么简单。

就可以进行分析了

3.过滤器使用

抓包过滤器在抓包前使用,它的过滤有一个基本的语法格式:BPF语法格式。

BPF(全称 Berkeley Packet Filter),中文叫伯克利封包过滤器,它有四个核心元素:类型、方向、协议 和 逻辑运算符。

逻辑运算符:与( && )、或( || )、非( !)

方向Dir:源地址(src)、目标地址(dst)

类型Type:主机(host)、网段(net)、端口(port)

协议Proto:各种网络协议,比如:tcp、udp、http

关于捕获过滤器的一些常用语法,可以在工具栏中,依次点击“捕获”-->“捕获过滤器”中查看。

1.过滤值比较符号及表达式之间的组合

英文

符号

描述及示例

eq

==

等于 ip.src == 192.168.1.30

ne

!=

不等于 ip.src != 192.168.1.30

gt

>

大于 frame.len > 10

lt

<

小于 frame.len < 128

ge

>=

大于等于 frame.len ge 10

le

<=

小于等于 frame.len <= 128

contains

 

包含 sip.To contains "xxx"

matches

~

正则匹配 host matches "acme\.(org|com|net)"

bitwise_and

&

位与操作 tcp.flags & 0x01

and

&&

AND逻辑与 ip.src == 192.168.1.30 and tcp.flags.fin

or

||

OR逻辑或 ip.src 192.168.1.30 or ip.src 192.168.2.30

xor

^^

XOR逻辑异或 tr.dst[0:3] 0.6.29 xor tr.src[0:3] 0.6.29

not

!

NOT逻辑非 not llc

2.针对IP进行过滤

case 1 筛选出源 IP 地址是 192.168.2.30 的数据包

过滤命令:

ip.src_host == 192.168.2.30 

case 2 筛选出目的地址是192.168.1.88的数据包

过滤命令:

ip.dst_host == 192.168.1.88 

case 3 筛选出源 IP 或者目的 IP 地址是 192.168.1.30 的全部数据包

ip.addr == 192.168.1.30

case 4 排除 case 3 的数据包,需要加 “!”

过滤命令:

!(ip.addr == 192.168.1.30)

case 5 筛选出源 IP 地址是 192.168.1.30 且目的 IP 地址是 192.168.2.30 的数据包

过滤命令:

ip.src_host  192.168.1.30 && ip.dst_host  192.168.2.30

case 6 筛选出源 IP 地址是 192.168.1.30 或者源 IP 地址是 192.168.2.30 的数据包

过滤命令:

ip.src_host  192.168.1.30 && ip.src_host  192.168.2.30

3.针对端口进行过滤

case 1 筛选源端口和目的端口为80的数据包(以TCP协议为例)

过滤命令:

tcp.port == 80                  

case 2 根据 TCP 目的端口筛选数据包

过滤命令:

tcp.dstport == 80        

case 3 根据 UDP 源端口筛选数据包

过滤命令:

udp.srcport == 80    

case 4 筛选不低于某端口的数据包(以UDP协议为例)

过滤命令:

udp.port >= 80

4.针对协议进行过滤

获取某种协议数据包,仅需要把协议名字以小写的形式输入即可。常用的协议有 http、udp、tcp、dns、ip、ssl、ftp、arp、icmp、smtp、pop、telnet、ssh、rdp、sip ...

case 1 仅筛选http协议

过滤命令:http              

case 2 筛选多种协议数据包

过滤命令:http or telnet 

4.根据 http 请求的一些数据包筛选

case 1 精确筛选域名

过滤命令:

http.host==baidu. com

case 2 模糊筛选域名

过滤命令:

http.host contains 'www.baidu.com'

case 3 筛选请求地址中包含"alarm” 的请求

过滤命令:

http.request.uri contains 'Alarm' (contains 后的关键字区分大小写)

http. request. uri matches 'alarm'  (matches 后的关键字不区分大小写)

case 4 筛选请求的content type类型

过滤命令:

http.content_type ==' text/html'

case 5 筛选http请求方法

过滤命令:

http.request.method==’ POST’

case 6 筛选http响应状态码

过滤命令:

http.response.code==302

4.读取https加密内容

没有看到抓取htts,一般情况下wireshark是无法抓取密文的,我们通过谷歌浏览器得到配置密钥然后进行抓取

1.关闭所有浏览器

2.配置系统变量

SSL 密钥日志文件位置

变量名:SSLKEYLOGFILE

变量值(哪里都可以自己建):D:\java\wireshark\tls\sslkey.log

3.打开cmd输入

"C:\Program Files\Google\Chrome\Application\chrome.exe" --ssl-key-log-file=%SSLKEYLOGFILE%

会自动打开谷歌浏览器,注意要将浏览器打开时设置为打开标签页,不然会默认将你设置的首页解析密钥

4.配置wireshark 解密 SSL/TLS 流量:

  • 在 Wireshark 主窗口中,选择 "Edit"(编辑)-> "Preferences"(首选项)。

  • 在首选项窗口中,展开 "Protocols"(协议),然后找到 "TLS",低版本为"SSL"。

  • 在 "RSA Keys" 窗口中,点击 "+" 图标添加密钥日志文件。指定密钥日志文件路径 D:\java\wireshark\tls\sslkey.log

5.效果