探索ESP32平台攻击附近Wi-Fi网络的可能性。
本项目介绍了一款适用于 ESP32 平台的通用工具,用于实施多种 Wi-Fi 攻击。它提供了一些在 Wi-Fi 攻击中常用的通用功能,并使实现新攻击变得更加简单。它还包含了 Wi-Fi 攻击本身,例如从握手包中捕获 PMKID,或通过不同方法(如启动恶意克隆 AP 或直接发送解除认证帧)捕获握手包等。
显然,破解并不属于本项目的范围,因为 ESP32 不具备高效破解哈希的能力。其余工作都可以在这个小巧、廉价、低功耗的 SoC 上完成。
给 ESP32 上电
管理 AP 在启动后自动开启
连接到该 AP
默认设置:
SSID: ManagementAP,密码: mgmtadmin
在浏览器中打开 192.168.4.1,您将看到如下的 Web 客户端,用于配置和控制工具:

本项目当前使用 ESP-IDF 4.1 开发(提交 5ef1b390026270503634ac3ec9f1ec2e364e23b2)。在新版本上可能无法正常工作。
项目可以通过常规的 ESP-IDF 方式构建:
idf.py build
本项目不支持使用 make 的旧方法。
如果您已经配置好 ESP-IDF,最简单的方法是使用 idf.py flash。
如果您不想搭建完整的 ESP-IDF 环境,可以使用 build/ 目录中预构建的二进制文件,并通过 esptool.py(需要 Python)进行刷写。
示例命令(请遵循 esptool 仓库 中的说明):
esptool.py -p /dev/ttyS5 -b 115200 --after hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size detect 0x8000 build/partition_table/partition-table.bin 0x1000 build/bootloader/bootloader.bin 0x10000 build/esp32-wifi-penetration-tool.bin
在 Windows 上您可以使用官方的 Flash Download Tool。
项目中实现的攻击方式在 主组件 README 中有描述。这些攻击背后的理论位于 doc/ATTACKS_THEORY.md。
本项目使用 Doxygen 标记来记录组件的 API 和实现。已包含 Doxyfile,因此如果您想生成 API 参考,只需在根目录下运行 doxygen。它将在 doc/api/html 中生成 HTML 格式的 API 参考。
本项目由多个组件组成,这些组件可在其他项目中重用。每个组件都有自己的 README 并提供详细描述。以下是各组件的简要说明:
本项目主要在 ESP32-DEVKITC-32E 上构建和测试,但对于任何 ESP32-WROOM-32 模组应该没有差异。
在下面的图片中,您可以看到由电池(锂聚合物蓄电池)供电的 ESP32 DevKitC,使用以下硬件:
整体(不含硬币)该设置重量约为 17g。通过使用更小的锂聚合物蓄电池并直接使用 ESP32-WROOM-32 模组而非整个开发板,可以进一步缩小体积。
该设置花费了我约 300 捷克克朗(约 11.50 欧元 / 13.50 美元)。直接使用成本约 80 捷克克朗(约 3 欧元 / 3.5 美元)的模组,总价可降至 160 捷克克朗(约 6.5 欧元 / 7.5 美元),这使得该工具非常便宜,几乎人人都能使用。
根据实验测量,ESP32 在攻击执行期间功耗约为 100mA。
欢迎贡献。请随时重构现有代码库。在注释新函数和文件时,请遵循 Doxygen 标记。本项目主要用于教育和演示目的,因此欢迎提供详细的文档。
本项目演示了 Wi-Fi 网络及其底层 802.11 标准的漏洞,以及如何利用 ESP32 平台攻击这些脆弱点。请负责任地使用,仅针对您有权攻击的网络。
尽管本项目采用 MIT 许可证(详情请参见 LICENSE 文件),但请不要吝啬或自私,分享您的工作。