通用黑客与观察安全工具
适用于 Adafruit ESP32-S3 Reverse TFT Feather 的独立 WPA/WPA2 握手包捕获固件:内置 240×135 TFT 和 三个按钮 —— 正常使用无需配套手机应用或浏览器。捕获内容以 .pcap 格式保存到 LittleFS;Captures → Download AP 会开放一个小型 WiFi 网络,以便你在另一台设备上列出并下载文件。
仅限教育和授权测试使用。 只能在你拥有或明确获得测试许可的网络上使用。
在授权目标上,固件可以发送去认证帧,在客户端重连时捕获 WPA 4 次握手,并将结果存储到闪存中。界面完全显示在 TFT 上;下载 Web 界面仅在从 Captures 启动 Download AP 时运行。
.pcap 文件、清除存储或启动 Download APw.FL 板使用外部 2.4 GHz 路径:w.FL / IPEX3(非 u.FL)→ RP-SMA 尾线 → 偶极子天线(Feather 指南)。
你需要一根 USB-C 线缆用于供电和烧录。
供电(无需电池): 可以通过 USB-C 为板子供电(充电器、笔记本电脑或使用合适线缆/OTG 的手机)。JST 接口上的 LiPoly 电池为可选项;此构建在进行下方板载改造后通常省略电池。
移除元件面的两个过孔连接器,以便外壳空间/布线:JST-PH 电池连接器(靠近 USB-C)和 STEMMA QT / JST-SH I²C 连接器(板子中部)。请小心拆焊。

无需额外接线;默认配置见 config_s3.h。
arduino.cc —— 2.x 版本即可。
File → Preferences → Additional Boards Manager URLs:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Tools → Board → Boards Manager → 安装 esp32(Espressif 出品,3.x,支持 ESP32-S3)。
ESP32 WiFi 协议栈会阻止原始去认证帧,除非固件能够覆盖 ieee80211_raw_frame_sanity_check(已在 GHOST_TFT.ino 中实现)。链接器必须允许该符号覆盖 SDK 中的副本 —— 在已安装的 platform.txt 中向 compiler.c.elf.libs 添加 -zmuldefs(许多 ESP32 “原始帧” 示例都采用同样的修改):
找到 platform.txt:
Windows: C:\Users\<USERNAME>\AppData\Local\Arduino15\packages\esp32\hardware\esp32\<VERSION>\platform.txt
Mac: ~/Library/Arduino15/packages/esp32/hardware/esp32/<VERSION>/platform.txt
Linux: ~/.arduino15/packages/esp32/hardware/esp32/<VERSION>/platform.txt
将:
compiler.c.elf.libs="@{compiler.sdk.path}/flags/ld_libs"
改为:
compiler.c.elf.libs="@{compiler.sdk.path}/flags/ld_libs" -zmuldefs
保存并重启 Arduino IDE。
GHOST_TFT.ino(将所有 .h 文件放在同一文件夹中)。示例文件夹名称必须与 .ino 文件名一致(本仓库:GHOST_TFT / GHOST_TFT.ino)。
config_s3.h 中配置为 SELECT_LONG_PRESS_MS)完成编辑在 Captures 中启动 Download AP,用另一台设备连接该 SSID(密码显示在 TFT 和 Settings 中),打开所显示的 IP(通常为 http://192.168.4.1),下载 .pcap 文件,然后按 Select 停止 AP。
GHOST_TFT/
├── assets/
│ └── logo.svg
├── docs/images/
├── GHOST_TFT.ino
├── config_s3.h
├── types.h
├── display.h
├── input.h
├── storage.h
├── attack.h
├── download_server.h
└── logo.h
unsupport frame type / 去认证不生效 —— 添加 -zmuldefs 并重启 IDE;确认 platform.txt 中的对应行。
ESP32-S3 上传失败 —— 使用支持数据传输的 USB 线缆;按 Adafruit 说明使用 BOOT/复位。
捕获中握手包不完整或缺失 —— 信号、PMF、5 GHz 客户端或超时;调整 Settings 并在你控制的实验网络上重新测试。
仅限教育和授权安全测试。 在未获准测试的网络上发送去认证流量或捕获握手包在大多数司法管辖区属于违法行为。
基于 Arduino-ESP32 核心构建。原始 WiFi 帧技术借鉴了社区成果,例如 Jeija / esp32-80211-tx。
GHOST 是免费开源项目。如果它对你有所帮助,欢迎打赏,但绝非义务。
| 零件 | Adafruit | 价格(约) |
|---|
| Adafruit ESP32-S3 Reverse TFT(带 w.FL 天线) | Product 6303 | 见商店 |
| RP-SMA 转 w.FL / MHF3 / IPEX3 适配器 | Product 5444 | $2.95 |
| 2.4GHz RP-SMA 偶极子旋转天线 — 2dBi | Product 944 | $7.95 |