2021-07-15

WIFI-Sniffer模式

wifi sniffer模式可以通过esp_wifi_set_promiscous()使能。如
果使能sniffer模式,可以向应用程序存储以下数据包

  • 802.11管理帧

  • 802.11数据帧,包括APDU,AMPDU,AMSCU等

  • 802.11MIMO帧,sniffer 模式仅转MIMO帧的长度

  • 802.11控制帧
    不可向应用程序转存以下数据包

  • 802.11错误帧,如有CRC错误的帧
    对于Sniffer 模式 可以 转储的帧,应用程序可以另外使用 esp_wifi_set_promiscuous_filter() 和 esp_wifi_set_promiscuous_ctrl_filter() 决定筛选哪些特定类型的数据包。应用程序默认筛选所有 802.11 数据和管理帧。

    可以在 WIFI_MODE_NULL、WIFI_MODE_STA、WIFI_MODE_AP、WIFI_MODE_APSTA 等Wi-Fi 模式下使能 Wi-Fi Sniffer 模式。也就是说,当 station 连接到 AP,或者 AP 有 Wi-Fi 连接时,就可以使能。请注意,Sniffer 模式对 station/AP Wi-Fi 连接的吞吐量有 很大影响。通常,除非有特别原因,当 station/AP Wi-Fi 连接出现大量流量,不应使能。

该模式下还应注意回调函数 wifi_promiscuous_cb_t 的使用。该回调将直接在 Wi-Fi 驱动程序任务中进行,所以如果应用程序需处理大量过滤的数据包,建议在回调中向应用程序任务发布一个事件,把真正的工作推迟到应用程序任务中完成。

什么是sniffer模式:我们在讲sniffer程序是把NIC(网络适配卡,一般是以太网卡)只为一种叫promiscuous混杂的状态,一旦网卡设置为这种模式,他就是sniffer程序能接受传输在网络上的每一个信息包

一,wireshark使用

  1. 什么是wireshark
    wireshare 是一个网络封包分析软件。网络封包分析软件的功能是攫取网络封包,并竟可能显示出最为详细的网络封包资料 。wireshark使用winPCAP作为接口,直接与网卡进行数据报文交换。

  2. wireshark的主要应用
    网路管理员用来解决网络问题
    网络安全工程师用来检测安全隐患
    开发人员用来测试协议执行情况
    用来学习网络协议

  3. wireshark的特性
    支持Unix和Windows平台
    在接口实施捕捉包
    能详细的显示包的详细协议信息
    可以打开/保存捕捉的包
    可以导入导出其他捕捉程序支持的包数据格式
    可以通过多种方式过滤包
    多种方式查找包
    可以过滤多种色彩显示包
    创建多种统计分析

  4. wireshark的能与不能
    捕捉多种网络接口
    wireshark可以捕捉多种网络接口类型的包
    支持多种其他程序捕捉的文件
    wireshark可以打开多种网络分析软件捕捉的包
    支持多格式输出
    wireshark可以将捕捉文件输出为多种其他捕捉软件支持的格式
    多种协议解码提供支持
    wireshark可以支持多协议的解码
    wireshark不是入侵检测系统
    不会处理网络事务,仅仅是测量,监视网络
    并不会发送网络包或做其他交互性的事情

二,如何获取wireshark
官网链接:https://www.wireshark.org/download.html
支持多种操作系统
三,使用方法
1) 启动 Wireshark
Linux 下,可编写一个 Shell 脚本,运行该文件即可启动 Wireshark 配置抓包网卡和信道。Shell 脚本如下:

ifconfig $1 down
iwconfig $1 mode monitor
iwconfig $1 channel $2
ifconfig $1 up
Wireshark&

脚本中有两个参数:$1 和 $2,分别表示网卡和信道,例如,./xxx.sh wlan0 6 (此处,wlan0 即为抓包使用的网卡,后面的数字 6 即为 AP 或 soft-AP 所在的 channel)。
2) 运行 Shell 脚本打开 Wireshark,会出现 Wireshark 抓包开始界面
3) 选择接口,开始抓包
2021-07-15

界面有多个接口,第一个为本地网卡,第二个为无线网络
双击wlan0即开始抓包
4) 设置过滤条件
抓包过程中会抓取到同信道所有的空中包,但其实很多都是我们不需要的,我们会设置抓包的过滤条件从而得到我们想要的包
下图中红色框内即为设置 filter 的位置。

2021-07-15
点击 Filter 按钮(下图的左上角蓝色按钮)会弹出 display filter 对话框。
点击 Expression 按钮,会出现 Filter Expression 对话框,在此你可以根据需求进行 filter 的设置。
5) 封包列表
若想查看包的具体的信息只需要选中要查看的包,在界面的下方会显示出包的具体的格式和包的内容。
6) 停止/开始包的捕捉
若要重新开始抓包,点击下图左上角的蓝色按钮即可。

  1. 保存当前捕捉包
    Linux 下,可以通过依次点击 “File” -> “Export Packet Dissections” -> “As Plain Text File” 进行保存。
    上图中,需要注意的是,选择 All packets、Displayed 以及 All expanded 三项。

Wireshark 捕捉的包可以保存为其原生格式文件(libpcap),也可以保存为其他格式(如.txt 文件)供其他工具进行读取分析。

上一篇:wireshark抓包使用教程


下一篇:Java 提供 ByteBuffer使用