Wireshark 简介
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。— 百度百科
Wireshark基本使用方法
主界面
说明
常用功能按钮从左到右一次是:
- 开始新的抓包
- 停止抓包
- 重新开始抓包
- 抓包设置
- 打开已保存的抓包文件
- 保存抓包文件
- 关闭抓包文件
- 重新加载抓包文件
- 查找分组
- 转到前一个分组
- 转到后一个分组
- 转到特定的分组
- 转到第一个分组
- 转到最后一个分组
- 正在抓包时,自动定位到最新的分组
- 分组着色
- 放大主窗口文字大小
- 缩小主窗口文字大小
- 重置主窗口文字大小
- 重置主窗口界面大小
抓包过滤器的基本使用
wireshark抓包是基于其内部的libpcap/wincap库
打开软件时直接在filter栏输入过滤规则即可
使用的是BFP语法(Berkeley Packet Filter),一共四个元素:
类型(Type):host、net、port
方向(Dir):src、dst
协议(Proto):ether、ip、tcp、udp、http、ftp
逻辑运算符:&& 、|| 、! (与、或、非)
src host 192.168.1.1 && dst port 80
(抓取源地址为192.168.1.1,目的端口为80的流量)
host 192.168.1.1 || host 192.168.1.2
(抓取192.168.1.1和192.168.1.2的流量)
! broadcast
(不要抓取广播包)
ether host 00:88:ca:86:f8:0d
ether src host 00:88:ca:86:f8:0d
ether dst host 00:88:ca:86:f8:0d
(过滤mac地址)
host 192.168.1.1
src host 192.168.1.1
dst host 192.168.1.1
(过滤IP地址)
port 80
!port 80
dst port 80
src port 80
(过滤端口)
arp
icmp
(过滤协议)
host 192.168.1.1 && port 8080
(结合逻辑符号综合过滤)
显示过滤器的基本使用
使用显示过滤器需先用软件进行抓包,然后在软件filter栏输入过滤规则
比较符:
== 等于
!= 不等于
>大于
<小于
>=大于
<=小于
逻辑操作符:
and 两个条件同时满足
or 其中一个条件被满足
xor 有且仅有一个条件被满足
not 没有条件被满足
ip地址:
ip.addr ip地址
ip.src 源ip
ip.dst 目标ip
端口过滤:
tcp.port
tcp.srcport
tcp.dstport
tcp.flags.syn 过滤包含tcp的syn请求的包
tcp.flags.ack 过滤包含tcp的ack应答的包
协议过滤:
arp、ip、icmp、udp、tcp、bootp、dns等
显示过滤器使用示例
1.过滤IP
例如源IP和目标IP
ip.src == x.x.x.x or ip.dst == x.x.x.x
或者 ip.addr == x.x.x.x
2. 过滤端口
tcp.port == 80
(过滤tcp中端口号为80的包)
tcp.port == 80 or udp.port == 80
(显示源端口或者目的端口为80的数据包)
tcp.dstport == 80
(显示tcp协议的目标端口为80 的数据包)
tcp.srcport == 80
(显示tcp协议的源端口为80的数据包)
tcp.port >= 1 and tcp.port <= 80
(显示tcp协议端口1~80的数据包)
tcp.flags.syn == 1
(过滤syn请求为1的包)
3. 过滤协议
tcp/udp/arp/icmp/http/ftp/dns/ip
(常用的协议)
4.过滤MAC地址
eth.src eq b4:ae:2b:31:c5:07
eth.dst eq b4:ae:2b:31:c5:07
eth.addr == b4:ae:2b:31:c5:07
5. 过滤包长度
udp.length == 26
(指udp本身固定长度8加上udp下面的数据包长度之和)
tcp.len >= 7
(指的tcp下面的数据长度,即ip数据包,不包括tcp本身)
ip.len == 94
(指的是从ip本身到最后)
frame.len == 119
(整个数据包长度,从eth开始到最后)
6. 过滤http
http
http.request.method== “GET”
http.request.method== “POST”
http.request.uri =="/img/logo-edu.gif"
http contains “PNG”
7.结合逻辑符综合过滤
ip.src == 192.168.1.1 and ip.dst == 172.16.1.1
协议分析
在统计下选择协议分析,可以查看当前数据包中包含那些协议
通常我们只关注HTTP以及TCP和UDP协议内容,可以直接右击选择选中状态,比如选中HTTP
同样的方法也可以用来选择想要的数据包特征,比如想要筛选HTTP GET 包,右击选择作为过滤器应用->选中
数据流跟踪
在关注的http数据包或tcp数据包中选择流汇聚,可以将HTTP流或TCP流汇聚或还原成数据,在弹出的框中可以看到数据内容。
选中数据分组后,右击选择追踪流->TCP流|HTTP流
数据提取
使用wireshark可以自动提取通过http传输的文件内容,方法如下:
文件->导出对象->HTTP
在打开的对象列表中找到有价值的文件,如压缩文件、文本文件、音频文件、图片等,点击save进行保存,或者saveall保存所有对象再进入文件夹进行分析。
有时候自动提取得不到想要的结果时,也可以使用wireshark也可以手动提取文件内容:
点击想要的数据包,选定media type的位置,点击文件->导出分组字节流,在弹出的框中将文件保存成二进制文件。
参考:
https://www.cnblogs.com/laoxiajiadeyun/p/10365073.html
https://blog.csdn.net/huanghelouzi/article/details/88628590