通俗来讲,Wireshark 是一个免费的抓包工具(分组嗅探器),它可以显示协议栈不同层级封装的消息内容,Wireshark 有盘大的用户群体,它可在Windows,Mac和Linux / Unix计算机上运行。
1. 安装
Ubuntu 下
1
sudo apt-get install wireshark
Windows
前往官网中下载相应安装包即可。
2. 基本界面
Ubuntu 环境下,命令行中使用管理员权限启动 Wiresharksudo wireshark-gkt
, 启动界面如图
点击 Interface List
查看当前活动的网卡接口,选中某个接口后点击 start
开始抓包。抓包时, Wireshark 分为五大部分
菜单栏和工具栏
菜单栏提供抓包设置、数据筛选、数据统计、帮助等丰富的功能
工具栏中包括快捷打开接口列表、抓包设置、开始抓包、停止抓包、包文件管理以及一些其他快捷操作,鼠标长放到工具按钮上会显示按钮的作用。
规则过滤器
规则过滤器用来过滤请求列表,相关规则介绍请见下文。
数据包列表
数据包列表实际是通信请求列表,展示了每个请求的的概览信息,包括请求时间、源地址和目标地址、协议、长度等信息。
数据包封装内容详情
在请求列表中选中某个具体的请求后,该区域分层展示没一层的数据包,最上层是帧(Frame),依次往下是链路层、网络层(IP)、传输层(TCP),然后是应用层协议,应用层协议可以有一个或多个。
数据包16进制 ASCII 码表示
此处显示传输信息的 16 进制 ASCII 编码。
3. 过滤规则
启动 Wireshark 后,通过规则过滤器可以过滤请求列表,在规则过滤器中数据过滤规则时,如果语法有误,框会显红色,如正确,会是绿色,输入正确的规则后点击Apply
生效。其中过滤规则包括
过滤IP
1
2ip eq 192.168.191.2 # 不管源 IP 还是目标 IP
ip.src eq 192.168.191.2 # 限制源 IP过滤端口
1
2tcp.port eq 80 # 限制端口为 80
tcp.srcport eq 80 # 限制源端口过滤协议
1
2
3
4
5
6
7
8
9
10
11
12
13tcp
udp
arp
icmp
http
smtp
ftp
dns
msnms
ip
ssl
oicq
bootp过滤MAC地址
1
2eth.dst == A0:00:00:04:C5:84 // 过滤目标mac
eth.src eq A0:00:00:04:C5:84 // 过滤来源macHTTP模式过滤
1
2
3
4
5http.request.method == “GET”
http.request.method == “POST”
http.request.uri == “/public/images/test.png”
http contains “GET”
http contains “HTTP/1.”
以上基本过滤规则基本已经满足了日常的抓包需求,Wireshark 的过滤规则很庞大,如果想详细了解请参考官方文档。