你抽屉里那块吃灰的 ESP32 开发板,刷一个固件就能变成全协议无线安全测试平台。
WiFi 信标泛洪、 BLE 设备欺骗、 RFID 门禁卡克隆、 433MHz 遥控器重放、红外万能遥控——这些功能通常要一台 ¥2000+ 的 Flipper Zero 才能搞定。Bruce[1] 用一块 ESP32 全包了。截至写稿时 6.3k Star , AGPL-3.0 开源。
而且安装连命令行都不用开。
安装:浏览器打开网页,点一下
Bruce 提供了 Web Flasher[2],用 Chrome/Edge 打开网页, USB 插上 ESP32 ,选你的设备型号,点 Flash 。
完事了。
如果你的浏览器不支持 Web Serial ,也可以用 esptool.py 手动刷:
esptool.py --port /dev/ttyACM0 write_flash 0x00000 Bruce-Cardputer.bin
固件从 GitHub Releases[3] 下载,按设备型号选对应的 .bin 文件。
支持的设备覆盖了主流 ESP32 开发板生态: M5Stack Cardputer 、 StickC PLUS/PLUS2 、 Core BASIC/Core2/CoreS3 、 Lilygo T-Embed (含 CC1101 版)、 T-Deck 、 T-Display-S3 ,还有性价比之选 CYD ( Cheap Yellow Display ,淘宝搜"ESP32-2432S028",¥30 左右)。 Bruce 官方还设计了几款专用硬件板( Bruce RF Reaper 、 Smoochiee V2 ), PCB 文件在官网 bruce.computer/boards[4] 开源。
不同设备支持的无线模块有差异。关键差异看这张表:
| 设备 | CC1101(SubGHz) | NRF24 | RFID(PN532) | 红外 | BadUSB |
|---|---|---|---|---|---|
| Cardputer | Y | Y | Y | Y | Y |
| StickC PLUS2 | Y | Y | Y | Y | Y¹ |
| CYD 2432S028 | Y | Y | Y | Y | Y¹ |
| T-Embed CC1101 | Y | Y | Y | Y | Y |
| T-Deck | Y | N | N | N | Y |
¹ StickC/CYD 的 BadUSB 需要外接 USB 转接线。 T-Deck 没有内置射频模块,但 WiFi/BLE 功能齐全。
选设备的建议:Cardputer 自带键盘和电池,开机就能用,是体验最完整的方案(官方店 ¥200 左右)。CYD 最便宜,¥30 能玩到 80% 的功能。T-Embed CC1101 带 SubGHz 射频芯片和电池,适合无线电玩家。
第一招: WiFi 扫描 + Beacon Spam , 5 秒看到效果
刷完固件开机,屏幕上出现 Bruce 的主菜单。操作逻辑跟老式功能机一样:方向键选功能,确认键进入。
先试 WiFi 。
进 WiFi → Connect ,连上你家的路由(或者手机热点),这一步不是必须的,但连上后部分功能( Wardriving 上传 Wigle 、 NTP 对时)能用。
然后进 WiFi → WiFi Atks → Beacon Spam 。
屏幕上瞬间刷出一串"伪造 AP"的名称。打开手机 WiFi 列表,你会看到几十个不存在的热点名。这是 Beacon Spam ,原理是 ESP32 以极快速度广播伪造的 802.11 Beacon 帧,每帧声明一个新的 AP 名称。 Bruce 内置了几十个预设名称,你也可以在 SD 卡上放自定义列表。
停掉 Beacon Spam ,试 Target Atk 。选一个周围真实存在的 AP ( Bruce 扫描到的),然后选 Target Deauth 。 ESP32 对这个 AP 发送 Deauth 帧,把它连接的客户端踢下线。
这两个功能合在一起,就是 WiFi 安全测试的基本功:验证你的 AP 是否容易被洪水攻击压垮,验证你的客户端是否正确处理 Deauth 。
WiFi 不止于此: Evil Portal + Wardriving + ARP 欺骗
Bruce 的 WiFi 模块不是玩具。它内置了一套完整的网络攻击工具链。
Evil Portal 是最实战的功能。你选一个目标 AP , Bruce 同时发动 Deauth 把它踢下线,然后广播一个同名的伪造 AP 。客户端掉线后自动重连,连到了你的伪造 AP 上。 Bruce 弹出一个自定义的 Captive Portal 页面(比如仿冒的 WiFi 登录页),用户输入密码,密码被记录到 SD 卡。
Portal 页面是 HTML 文件,放在 SD 卡的指定目录下。 Bruce 的 Wiki 提供了模板,改个 logo 就能用。
Wardriving 把 ESP32 变成一个 WiFi 信号地图记录仪。打开 Wardriving , Bruce 持续扫描周围 AP ,记录 SSID 、 BSSID 、信号强度、加密类型和 GPS 坐标(如果外接了 GPS 模块),结果保存为 CSV 。回家后用 SD 卡里的 .csv 上传到 Wigle.net[5],就能在地图上看到你走过的路线上的所有 WiFi 热点分布。
ARP Spoofing 让你在局域网里做中间人。 Bruce 连上目标网络后,对网关和目标设备同时发送伪造的 ARP 包,把双方的数据包"拐"到 ESP32 上,再转发出去。链路上你就能看到明文流量。
还有一个彩蛋:Brucegotchi。这是 Pwnagotchi 协议的 ESP32 移植版, Bruce 能伪装成 Pwnagotchi"同伴",在 PwnGrid 网络上刷脸、发送自定义表情和昵称。如果你有树莓派跑着真正的 Pwnagotchi , Bruce 可以在旁边扮猪吃老虎。
BLE :一个 ESP32 同时冒充四台设备
切到 BLE 菜单。 BLE Scan 先扫一遍周围的蓝牙设备,速率比手机快。
重点在 BLE Spam 。 Bruce 能同时模拟四种设备的 BLE 广播:
选"Spam All",四种协议同时广播。效果就是,你周围所有人的手机和电脑同时弹配对窗口。
这不是攻击,是协议层面的原生行为。 Apple/Google/Samsung 设计这些协议的本意是让配对更方便——设备广播自己的存在,手机收到后弹出提示。 Bruce 做的只是"假装自己是那个设备"。只要手机蓝牙扫描开着,就一定会响应。
更实用的是 BadBLE。它把 BadUSB 的 Ducky Script 执行逻辑搬到了 BLE HID 上。 ESP32 模拟蓝牙键盘,连接到目标设备后,以键盘身份"敲入"预设的命令序列。 Windows 上可以用来打开 PowerShell 执行命令、下载文件、添加用户。跟 BadUSB 的区别是,它不需要物理插拔,攻击距离达到 BLE 范围(约 10-50 米)。
SubGHz 射频:把 ¥5 的 CC1101 模块变成全频段遥控器
ESP32 自己不带 SubGHz 收发能力。但 Bruce 支持外接 CC1101 模块——淘宝 ¥5 一个的小板子, SPI 接口接 4 根线( MOSI/MISO/SCK/CSN ),就能收发 300-928MHz 的信号。
GPIO 接法在 Bruce Wiki 里有详细引脚映射。接好后进 Config → RF → RF Module ,选 CC1101 。
进 RF → Spectrum ,屏幕上显示 433MHz 附近的频谱瀑布图。对着旁边按遥控器,你会看到频谱上冒出一个尖峰。这就是你的遥控器信号。
然后进 RF → Scan/Copy ,按下遥控器, Bruce 捕获并显示信号参数:频率、调制方式、二进制编码。点 Save 存到 SD 卡。再进 RF → Replay ,选中刚才保存的信号,点发送。门锁、卷帘门、无线插座——只要工作在 SubGHz 频段且没有滚动码, Bruce 就能重放。
Bruce 还内置了 Jammer 模式。 Full Jammer 在 433MHz 上发连续方波, Intermittent Jammer 发 PWM 间歇信号。前者纯干扰,后者可以测试设备的抗干扰能力。
需要强调:这是你自己的遥控器、你自己的设备。测别人的设备未经许可是违法的。
RFID/NFC :门禁卡、 Amiibo 、 NDEF 标签一机搞定
Bruce 的 RFID 模块需要外接 PN532 模块( I2C/SPI 接口,淘宝 ¥10-15 )。接好后进 Config → RFID Module 选 PN532 。
进 RFID → Read tag ,把门禁卡贴近 PN532 天线。屏幕上读出卡类型( MIFARE Classic 1K/4K 、 Ultralight 、 NTAG 等)、 UID 和扇区数据。 Read 125kHz 模式还能读低频卡(需要对应的 125kHz 读头)。
读出来的数据可以直接 Save 存文件,然后用 Clone tag 写进一张空白卡。进 Load file 选刚才的存盘文件,再进 Write data ,把空白卡贴上去,写完就能用。
还有两个彩蛋功能:
Amiibolink:把 Amiibo 的 .bin dump 文件放到 SD 卡, Bruce 通过 PN532 模拟 NFC 标签, Switch 上就能刷。不需要买 ¥100 一个的塑料小人。
NDEF 写入:自己编辑一条 NDEF 记录( URL 、文本、 WiFi 密码),写进 NFC 贴纸。贴在家门上,客人用手机碰一下自动连 WiFi 。
红外: TV-B-Gone 一把关掉所有电视
Bruce 的 IR 功能不需要额外的硬件模块。 ESP32 自己就能产生 38kHz 载波,接一个红外发射管( LED+限流电阻,成本不到 ¥1 )就行。 TX Pin 在 Config → IR 里设置。
进 IR → TV-B-Gone , ESP32 开始按数据库里的关机电平序列逐条发射,覆盖全球主流电视品牌的 IR 协议。在会议室、教室、机场休息室,对着电视按一下,屏幕黑了。
更实用的是 Custom IR 。 Bruce 支持 NEC 、 NECext 、 SIRC (及变体)、 Samsung32 、 RC5 、 RC5X 、 RC6 共 9 种红外协议。进 IR Receiver 先接收并解码遥控器信号,保存后再从 Custom IR 里加载重放。空调、电视、投影仪、风扇——只要不是加密的 IR 协议,都能学习和重放。
其他看家本领: BadUSB 、 JavaScript 解释器、 WebUI
BadUSB: Cardputer 和 T-Deck 的 USB 口直连电脑, Bruce 模拟 HID 键盘,执行 Ducky Script 。DELAY 3000、GUI r、STRING powershell——标准 BadUSB 语法。脚本放 SD 卡, 10 秒内从插入到执行完。
JavaScript 解释器: Bruce 内置了 Doolittle[6] 引擎,能在设备上直接运行 JS 脚本。想快速验证一个逻辑,不用编译 C 代码,写段 JS 扔 SD 卡里直接跑。脚本里可以调用 Bruce 内置的 API——控制 WiFi 、 BLE 、 GPIO 。
WebUI: Bruce 连上 WiFi 后,在浏览器输入 ESP32 的 IP 地址,会出现一个 Web 管理界面。你可以远程管理 SD 卡文件、控制设备功能。不需要屏幕, Headless 模式也能用。
ESPNOW 互联:两台刷了 Bruce 的 ESP32 可以通过 ESP-NOW 协议互传文件和指令。一台负责扫描,另一台负责攻击,分工作战。
跟 Flipper Zero 比,差在哪、好在哪
很多人看到 Bruce 的功能列表会直接想到 Flipper Zero 。有必要说清楚差异。
Flipper Zero 更强的地方:
– 硬件集成度高:出厂就配齐了 SubGHz 芯片、 RFID 读头、红外、 iButton 、电池、屏幕。 Bruce 要自己焊接模块。
– 125kHz RFID 支持更好: Flipper 内置了 125kHz 天线, Bruce 需要额外模块。
– iButton 物理接口: Bruce 虽然支持 iButton 协议,但需要自己接线。
Bruce 更强的地方:
– 开源无锁: AGPL-3.0 ,随便改。 Flipper 的固件也是开源的,但 Bruce 没有硬件绑定,任何 ESP32 都能刷。
– 硬件成本:¥30 ( CYD )对 ¥2000+。差了 60 倍。
– WiFi/BLE 能力碾压: Bruce 的 WiFi 攻击模块( Evil Portal 、 ARP Spoofing 、 Wardriving 、 Brucegotchi )和 BLE Spam (四协议同时广播)是 Flipper Zero 原生固件做不到的。 Flipper 的 WiFi 要外挂 ESP32 开发板才能实现这些功能。
– 可扩展性: JavaScript 解释器让 Bruce 的自动化能力远超 Flipper 的脚本引擎。 WebUI 可以实现远程操控。
– 设备生态:支持 M5Stack/Lilygo/CYD/ESP32-C5 全系列,屏幕从 0.96 寸到 2.8 寸都有适配。
结论:如果你需要一台"开箱即用"的设备做物理安全测试, Flipper Zero 不用折腾。如果你手里已经有 ESP32 开发板,或者想用更低的成本覆盖更多的无线协议, Bruce 是你该试的。
边界与下一步
Bruce 不是万能的。
SubGHz 射频在 315/433/868/915MHz 这些 ISM 频段上工作。加密协议(比如汽车遥控钥匙的滚动码)它不能重放,只能记录信号特征。 Jammer 功能在很多国家是非法的,包括中国大陆。
WiFi Deauth 和 Evil Portal 是企业安全测试的合法工具,但用在公共场合或他人网络上是违法的。 Bruce 的 Disclaimer 写得很清楚:只用于授权的安全测试。
RFID 功能受 PN532 芯片本身的限制。它只能读写 13.56MHz 的高频卡( MIFARE 、 NTAG 等),不能直接读写 125kHz 的低频卡。虽然 Bruce 有 Read 125kHz 模式,但需要外接对应的 125kHz 读头模块,而且只支持读取,不能写入和模拟。
Bruce 固件目前还在快速迭代,截至写稿时版本 v1.16 ( 2026-07-24 发布)。部分功能(如 FM 频谱、 Mousejack )标记为待实现,可能在后续版本中补齐。
如果你手边有一块 ESP32 开发板,打开 bruce.computer/flasher[2], 5 分钟就能让吃灰的板子变成一台无线安全测试仪。如果你是安全测试工程师, Bruce 的 Evil Portal + ARP Spoofing + BLE Spam 组合是渗透测试工具箱里的高性价比补充。如果你只是对无线协议好奇, Bruce 是最好的学习工具——每个协议的收发流程都在菜单里可以直接操作,比看文档直观得多。
参考链接
[1] Bruce: https://github.com/BruceDevices/firmware
[2] Web Flasher: https://bruce.computer/flasher
[3] GitHub Releases: https://github.com/BruceDevices/firmware/releases
[4] bruce.computer/boards: https://bruce.computer/boards
[5] Wigle.net: https://wigle.net
[6] Doolittle: https://github.com/justinknight93/Doolittle