【保姆级教学】抓包工具Wireshark使用教程

发布时间 2023-06-12 18:04:01作者: 始識

wireshark介绍

今天讲一下另一款底层抓包软件,之前写过两篇抓包软件
分别是

  1. fiddler抓包【https://www.cnblogs.com/zichliang/p/16067941.html】
  2. mitmdump抓包【https://www.cnblogs.com/zichliang/p/16067941.html】
    Wireshark (前身 Ethereal) 是一个网络包分析工具该工具主要是用来捕获网络数据包,并自动解析数据包为用户显示数据包的详细信息,供用户对数据包进行分析
    当然wireshark更多的偏向于硬件底层多一点。偏向于底层接口抓包。
    wireshark可以通过过滤器可以筛选出想要分析的内容。包括按照协议过滤、端口和主机名过滤、数据包内容过滤。
    那常见的协议过滤是哪几种呢?

常见协议包抓取

  • ARP协议
  • ICMP协议
  • TCP协议
  • UDP协议
  • DNS协议
  • HTTP协议

WireShark应用

  1. 网络管理员会使用wireshark来检查网络问题
  2. 网络安全工程师 使用Wireshark 来检查资讯安全相关问题
  3. 软件测试工程师使用wireshark抓包,来分析自己测试的软件
  4. 开发人员 使用Wireshark来为新的通讯协议除错
  5. 从事socket编程的工程师会用wireshark来调试
  6. 普通使用 使用Wireshark 来学习网络协议的相关知识
  7. 还可以抓一些敏感信息....

下载及安装

Kali Linux系统自带 Wireshark 工具,而windows 需要手动安装wireshark
下面贴上下载官网:
https://www.wireshark.org/download.html
下载完之后一直点下一步安装即可。

wireshark的使用

首先安装完了之后,我们打开抓包软件

可以看到有很多的网络接口,那我们应该如何选择呢?
win+r =====> cmd ====> ipconfig


选择我们现在正在上网的网卡
这里用的wifi 就直接抓wlan这个网卡了。
直接鼠标双击点进去

可以看到有很多的数据包
在此之前了解下抓包的两种模式。

混杂模式与普通模式




不勾选就是普通模式
那什么是混杂模式 和普通模式呢?

  • 混杂模式: 混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址
  • 普通模式: 普通模式下网卡只接收发给本机的包 (包括广播包)传递给上层程序,其它的包一律丢弃

一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用

页面介绍

整体来说,界面主要分为以下几部分:
菜单栏:Wireshark的标准菜单栏。
工具栏:常用功能的快捷图标按钮,提供快速访问菜单中经常用到的项目的功能。
过滤器:提供处理当前显示过滤得方法。
Packet List面板:显示每个数据帧的摘要。这里采用表格的形式列出了当前捕获文件中的所有数据包,其中包括了数据包序号、数据包捕获的相对时间、数据包的源地址和目标地址、数据包的协议以及在数据包中找到的概况信息等。
Packet Details面板:分析数据包的详细信息。这个面板分层次地显示了一个数据包中的内容,并且可以通过展开或是收缩来显示这个数据包中所捕获的全部内容。
Packet Bytes面板:以十六进制和ASCII码的形式显示数据包的内容。这里显 示了一个数据包未经处理的原始样子,也就是在链路上传播时的样子。
状态栏:包含有专家信息、注释、包的数量和Profile。

菜单栏

文件:打开文件集、保存包、导出HTTP对象
编辑:清除所有标记的包、忽略包和时间属性
视图:查看/隐藏工具栏和面板、编辑Time列、重设颜色
跳转:跳转到某个设置好的分组列表
捕获:用于设置模式和开始与停止
分析:创建显示过滤器宏、查看启用协议、保存关注解码
统计:创建图表并打开各种协议统计窗口
电话:执行所有语音功能(图表、图形、回放)
无线:用于设置无线蓝牙等抓包的功能
工具:根据包内容构建防火墙规则、访问Lua脚本工具
帮助:学习wireshark全球存储和个人配置文件

工具栏


从左至右

  • 开始捕获
  • 停止捕获

过滤器的使用。

刚刚点击了停止抓包 要是重新开启抓包点击左上角这个按钮

如果想保存就点击第一个,一般做测试都是不保存的。
然后就可以重新开始抓包了。

然后就正式开始过滤抓包了,我们想抓http相关的包====> 直接输入http或者tcp


可能这样显得不太直观。

举个三次握手四次挥手的例子。
当输入 tcp.flags.ack == 0 即代表底层握手(链接成功)
当输入 tcp.flags.syn == 1 即代表底层握手(数据发送成功)
不懂的可以自己去百度什么是三次握手四次挥手。

所抓到也都是底层链接成功和发送成功的包。


当然 命令和命令之间也可以通过and 或者or来完成与或非的关系。


即使讲到了链接和发送的命令 再讲一下发送成功结束的命令tcp.flags.fin==1

其中展示了本机向此服务器发送成功的数据包