RAZKOM/GHOST

GitHub: RAZKOM/GHOST

一款运行在 ESP32-S3 TFT 开发板上的独立式无线安全工具,通过去认证攻击抓取 WPA/WPA2 握手数据并保存为 pcap 文件。

Stars: 24 | Forks: 1

# GHOST **通用黑客与观察安全工具**

GHOST — main view

GHOST — back view    GHOST — standing

专为 **Adafruit ESP32-S3 Reverse TFT Feather** 开发的独立 WPA/WPA2 **握手抓取**固件:内置 **240×135 TFT** 屏幕和 **三个按钮** —— 正常使用时无需配套的手机 App 或浏览器。抓取的数据将保存为 LittleFS 上的 `.pcap` 文件;**抓包记录 → 下载 AP** 会开启一个小型 WiFi 网络,方便你列出并下载文件到其他设备。 **仅供教育及授权测试使用。** 请仅在你拥有或已获得明确测试许可的网络上使用。 ## 功能说明 在授权目标上,该固件可以发送 deauthentication 帧,在客户端重连时抓取 WPA 4 次握手数据,并将结果存储在闪存中。用户界面完全在 TFT 屏幕上显示;只有在从 **抓包记录** 中启动 **下载 AP** 时,才会运行下载用的 Web UI。 ## 功能特性 - **独立 UI** —— 在 TFT 屏幕上进行菜单操作;向上 / 选择 / 向下(必要时可按下开发板的重置键) - **扫描** —— 浏览网络;针对特定网络执行 **攻击**、**+WL**、**+BL** 或返回 - **白名单狩猎** —— 按顺序遍历白名单 - **全部狩猎** —— 遍历除黑名单外的所有可见网络(视情况跳过开放网络) - **白名单与黑名单** —— 持久化存储的列表 - **抓包记录** —— 列出 `.pcap` 文件、清空存储或启动 **下载 AP** - **基础防指纹** —— 可选的 STA MAC 随机化(开机时和/或每次攻击时,以及手动更新),去-auth 间隔具有 ±20-30% 的抖动,随机化的去-auth 原因码(1/2/3/4/8 而非固定值),并且每个设备的 Download AP SSID/密码存储在 Preferences 中(可在 **设置** 中编辑或重新随机生成) - **设置** —— 控制时序和狩猎限制(见上文),以及所有防指纹开关和 AP 凭据;更改会 **自动保存** 到闪存(具有短暂防抖机制;在离开 **设置** 时执行 flush) - Feather 开发板上的 **NeoPixel** 状态指示灯 ## 硬件说明 ### 零件清单 | 零件 | Adafruit | 价格(约) | |------|----------|-----------------| | **Adafruit ESP32-S3 Reverse TFT with w.FL Antenna** | [产品 6303](https://www.adafruit.com/product/6303) | 见商店 | | **RP-SMA 转 w.FL / MHF3 / IPEX3 适配器** | [产品 5444](https://www.adafruit.com/product/5444) | $2.95 | | **2.4GHz 偶极旋转天线 RP-SMA 接口 — 2dBi** | [产品 944](https://www.adafruit.com/product/944) | $7.95 | **w.FL** 版本的开发板使用外部 2.4 GHz 路径:**w.FL / IPEX3**(非 u.FL)→ **RP-SMA** 转接线 → **偶极天线**([Feather 指南](https://learn.adafruit.com/adafruit-esp32-s3-reverse-tft-feather/overview))。 你需要一根 **USB-C 数据线** 用于供电和烧录。 **供电(无需电池):** 你可以通过 USB-C(充电器、笔记本电脑或带有合适数据线/OTG 的手机)为开发板供电。JST 接口上的 LiPoly 电池是可选的;在进行下文的开发板改造后,这种构建方式通常会省略该电池。 ### 开发板改造(外接天线) 为了给外壳留出间隙并方便走线,请移除元件侧的 **两个** 通孔连接器:**JST-PH 电池**连接器(靠近 USB-C)和 **STEMMA QT / JST-SH** I²C 连接器(板子中部)。请小心进行脱焊。 ![开发板改造 — 移除画圈的电池 JST 和 STEMMA QT 连接器](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/547fc0d330012455.png) ### 引脚 无需额外接线;默认配置在 [`config_s3.h`](config_s3.h) 中。 ## 软件设置 ### 1. Arduino IDE [arduino.cc](https://www.arduino.cc/en/software) —— 2.x 版本即可。 ### 2. ESP32 开发板支持包 1. **文件 → 首选项** → 附加开发板管理器网址: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json 2. **工具 → 开发板 → 开发板管理器** → 安装由 Espressif 提供的 **esp32**(3.x 版本,支持 ESP32-S3)。 ### 3. 开发板选择 - **Adafruit ESP32-S3 Reverse TFT Feather**(名称可能因核心版本不同而略有差异) - 选择正确的 **端口**;如果上传失败,请启用 **USB CDC On Boot**(根据 Adafruit 的说明) ### 4. Deauth 帧补丁 (linker) ESP32 WiFi 协议栈会拦截原始的 deauth 帧,除非固件能够覆盖 `ieee80211_raw_frame_sanity_check`(在 `GHOST_TFT.ino` 中实现)。链接器必须允许该符号覆盖 SDK 中的副本 —— 请在你安装的 **`platform.txt`** 文件中的 `compiler.c.elf.libs` 项后添加 **`-zmuldefs`**(这与许多 ESP32 “原始帧” 示例中使用的修改方法相同): **查找 `platform.txt`:** ``` Windows: C:\Users\\AppData\Local\Arduino15\packages\esp32\hardware\esp32\\platform.txt Mac: ~/Library/Arduino15/packages/esp32/hardware/esp32//platform.txt Linux: ~/.arduino15/packages/esp32/hardware/esp32//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**。 ### 5. 打开草图并烧录 1. 打开 **`GHOST_TFT.ino`**(确保所有 `.h` 文件都在同一文件夹内)。 2. 点击 **上传**。如果需要 ROM bootloader,请使用 **BOOT** 键 / 进行重置。 草图文件夹的名称必须与 `.ino` 文件名一致(本仓库中为:**`GHOST_TFT`** / **`GHOST_TFT.ino`**)。 ## 使用说明 ### 主菜单 - **扫描网络** —— 选择 **攻击**、**+WL**、**+BL** 或返回 - **白名单狩猎** / **全部狩猎** - **抓包记录** —— **下载 AP** 将使用 **设置** 中的 SSID 和密码启动一个 WiFi AP(首次开机时随机生成,随后存储在 Preferences 中) - **列表** —— 编辑白名单 / 黑名单条目 - **设置** —— 攻击时序、防指纹选项、Download AP 的 SSID/密码(更改后会在短暂延迟后或当你离开 **设置** 时自动保存)。SSID/密码编辑:高亮光标位于当前字符处;轻点 **选择**(松开)进入下一个位置;**长按选择**(约 1 秒,可通过 [`config_s3.h`](config_s3.h) 中的 `SELECT_LONG_PRESS_MS` 配置)完成输入 ### 下载 AP 从 **抓包记录** 中启动 **下载 AP**,在其他设备上加入该 SSID(密码显示在 TFT 屏幕和 **设置** 中),打开显示的 IP 地址(通常是 `http://192.168.4.1`),下载 `.pcap` 文件,然后按 **选择** 停止 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 ``` ## 限制说明 - **仅限 2.4 GHz** —— 5 GHz 客户端可能会在带外重连。 - **PMF / WPA3** —— 如果启用了受保护的管理帧,deauth 帧可能会被忽略。 - **单无线电** —— 下载 AP 仅在从 **抓包记录** 中启动时才会运行。 - **闪存** —— LittleFS 的大小限制了你能够保留的大型抓包文件的数量。 ## 故障排除 **`unsupport frame type` / deauth 无效** —— 添加 `-zmuldefs` 并重启 IDE;检查 `platform.txt` 中的对应行是否正确。 **ESP32-S3 上传失败** —— 需使用支持数据传输的 USB 数据线;按 Adafruit 的说明操作 BOOT/重置。 **抓取的握手中断或缺失** —— 可能是信号、PMF、5 GHz 客户端或超时问题;请调整 **设置** 并在你可控的实验网络中重新测试。 ## 法律声明 **仅供教育及授权安全测试使用。** 在未经许可的网络上发送 deauthentication 流量或抓取握手数据在许多司法管辖区都是 **违法的**。 ## 支持 GHOST 是免费且开源的。如果它对你有所帮助,我们随时欢迎捐赠,但这绝非强制要求。 [![Ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/razcom)
标签:ESP32, WiFi渗透测试, 嵌入式开发, 插件系统, 攻击路径可视化, 网络安全, 隐私保护, 黑客工具