Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
esp32-sniffer — 用于嗅探智能手机在搜索 Wi-Fi 连接时发送的 PROBE REQUEST 数据包、以提取各类信息的 ESP32 固件 | Kitploit
工具/GitHubGitHub/ets-polito/esp32-sniffer
嵌入式系统安全数据包嗅探与分析侦察Wi-Fi审计物联网安全信息收集无线安全硬件与物联网安全
GitHubets-polito/esp32-sniffer

esp32-sniffer

用于嗅探智能手机在搜索 Wi-Fi 连接时发送的 PROBE REQUEST 数据包、以提取各类信息的 ESP32 固件

查看仓库
32840552年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

ESP32 Sniffer

ETS

Software License Demo Twitter

本项目使用 Espressif IoT Development Framework(ESP-IDF),并已在 ESP-WROOM-32 模块和 esp-idf v3.2 上测试通过。

完整项目(即 ESP32 固件、服务器和 GUI)的概述可在此处找到。

本固件的编写目的是嗅探智能手机在寻找 Wi-Fi 连接时发送的 Probe Request 数据包。当智能手机上的 Wi-Fi 连接处于活动状态时,它会以广播方式(在所有信道频率上)发送一条 probe request 消息,询问是否存在任何免费 Wi-Fi 或某些已知的 Wi-Fi(即智能手机知道该 Wi-Fi 的密码)。ESP32 将嗅探该消息并提取不同类型的信息。

从每个被嗅探的数据包中提取以下信息:

  • 发送请求的智能手机的 MAC
  • 请求所发往的 Wi-Fi 的 SSID
  • 请求发送时的时间戳
  • 接收信号强度指示(RSSI)
  • 序列号(SN)
  • HT Capabilities Info

每隔一分钟,这些信息会被发送到服务器并进行处理。最后,可以通过 GUI 查看处理后的信息(智能手机实时位置、智能手机频率等)。

演示

Watch the video

目录

  • 固件概述
  • ESP-IDF 环境配置
  • 使用方法
  • 文件配置
    • 变量配置
    • 添加自定义菜单
  • 组件
  • 资源

固件概述

该固件由两个主要线程/任务组成:

  • Sniffer 任务

    • 嗅探 Probe Request 数据包,并将上述信息保存到文件中。
  • Wi-Fi 任务

    • 每分钟获取由 Sniffer 任务保存的信息,并将其发送到服务器。
    • 使用 lock 来管理文件中 I/O 操作的关键区段。

ESP32 被配置为 WIFI_MODE_APSTA 模式:即它会创建“soft-AP and station control block”并启动“soft-AP and station”。得益于此,ESP32 能够同时嗅探信息并将信息发送到服务器,从而避免在发送数据时丢失数据包信息。

以下是 Probe Request 中可能包含的信息字段的完整列表(来源 IEEE 802.11-2012):

cwap-probe-10

下面是用 Wireshark 嗅探到的数据包,你可以在其中看到每个字段的比特数及其在数据包中的位置:

cwap-probe-03

ESP-IDF 环境配置

本节内容可能已过时,请查看官方网站以获取更多信息以及关于如何开始使用 ESP-IDF 的最新指南。

  1. 设置工具链

    • Windows
    • Linux
    • Mac OS
  2. 获取 ESP-IDF

    除了工具链(其中包含用于编译和构建应用程序的程序)之外,你还需要 ESP32 专用的 API / 库。

    cd ~/esp
    git clone --recursive https://github.com/espressif/esp-idf.git
     
    
  3. 检出到版本 v3.x

    cd esp-idf
    git checkout release/v3.2
     
    
  4. 设置 ESP-IDF 的路径

    工具链程序通过 IDF_PATH 环境变量访问 ESP-IDF。 该变量应在你的 PC 上设置好,否则项目将无法构建。

    • Windows
    • Linux & Mac OS
  5. 安装所需的 Python 包

    python -m pip install --user -r $IDF_PATH/requirements.txt
    

使用方法

  1. 确保已导出路径

    export IDF_PATH=~/esp/esp-idf
    export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin
    
  2. 克隆仓库

    git clone https://github.com/ETS-PoliTO/esp32-sniffer.git
    cd esp32-sniffer
    
  3. 在 ESP32 与你的 PC 之间建立串口连接

    make menuconfig
    

    进入 Serial flasher config,然后进入 Default serial port,设置 ESP32 所连接的端口

    请注意,如果你使用的是桥接器,可能需要下载一些驱动:

    • CP210x
    • FTDI

    此文档提供了关于如何在 ESP32 与 PC 之间建立串口连接的指南。

  4. 构建代码并烧录到 ESP32

    make all && make flash
    
  5. 查看日志

    make monitor
    

文件配置

文件 /main/Kconfig.projbuild 包含两个不同的菜单:

  • SPIFFS(SPI Flash File System)

    它包含有关 SPIFFS 分区的一些重要信息:

    • SPIFFS 基地址
    • SPIFFS 大小
    • SPIFFS 逻辑块大小
    • SPIFFS 逻辑页大小

    SPIFFS 是一个支持磨损均衡、文件系统一致性检查等功能的文件系统。

  • 配置项

    它包含不同的变量:

    • ESP32_ID:ESP32 的 ID
    • WIFI_SSID:WiFi 的 SSID(网络名称)
    • WIFI_PASS:WiFi 密码(WPA 或 WPA2)
    • BROKER_ADDR:MQTT broker 的 IP
    • BROKER_PSW:MQTT broker 的密码
    • BROKER_PORT:MQTT broker 的端口
    • CHANNEL:ESP32 嗅探 PROBE REQUEST 的信道
    • SNIFFING_TIME:嗅探时长
    • 等等...

变量配置

要配置上述变量:

  1. 在项目文件夹中打开终端并运行

    make menuconfig 
    
  2. 选择要修改的菜单

  3. 按需编辑变量

添加自定义菜单

你还可以添加包含不同变量的不同菜单:

  1. 打开 Kconfig.projbuild

  2. 开始一个新菜单

    menu YOUR_MENU_NAME
    
  3. 添加你需要的变量

  4. 结束菜单

    endmenu
    

组件

  • SPIFFS

    你需要创建一个分区表。

    SPIFFS 组件

  • ESP32 MQTT

    使用了 ESP32 MQTT 库。

    MQTT 文档

  • MD5

    用于对嗅探到的数据包进行哈希运算,以获得唯一标识符的哈希函数。

资源

  • 官方 esp-idf git 仓库,可查看一些示例以及所用数据结构的相关信息。
  • Espressif IoT Development Framework 的最新文档版本。
  • ESP32 论坛,可提问并查找社区资源。
  • ESP32-IDF 文档,可浏览模块、命名空间、数据结构和文件。

另请查看此演示视频,了解 ESP32 如何工作。

塞内卡

通过训诫之路漫长,通过榜样则短暂而有效

下载工具