你的手机在不停地喊周围所有记住过的 WiFi 名。开飞行模式试试,没用, iPhone 关了 WiFi 开关也停不了。每隔几分钟它还是会往外广播 probe request :星巴克 WiFi 在不在?公司 WiFi 在不在?你家路由器还在不在?
这不是 bug ,是 802.11 协议就是这么设计的。这些 probe request 在空中明码飘着,任何一块 ESP32 都能收到。想看看你周围飘着多少东西吗?
ESP32 Marauder[1] 就是干这个的。一块 ESP32 开发板刷上这个固件,触屏操作, SD 卡存数据,不需要笔记本也能跑。截至今天 11.8k Star , 1.4k Fork , 1,884 次提交。 2019 年 9 月创建,最近一次推送是上周末, 7 年持续维护。 294 个 open issue 说明社区极度活跃。由 justcallmekoko[2] 开发, C++ 编写,基于 Arduino 框架。
# 零门槛方案:浏览器直接刷
# https://justcallmekoko.github.io/ESP32Marauder/flash.html
# 或者用 esptool 命令行刷入
esptool.py --port /dev/ttyUSB0 write_flash 0x00000 marauder.bin
插电开机, 2.8 寸触摸屏亮起,一个像素骷髅头闪现。你的 ESP32 已经默默开始扫描周围所有的 WiFi 了。
不是 Flipper Zero 的平替,是 WiFi 特化攻击平台
很多人拿它跟 Flipper Zero 比,但这个对比本身就有问题。两者的设计哲学完全不同,定位上不是竞争关系,是互补关系。
Marauder 的仓库介绍写得明明白白:"A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32"。 WiFi 在前,蓝牙在后, Sub-GHz 不在议程内。社区不是没提过, Issue #516[3] 从 2024 年 3 月就在请求加 CC1101 支持,至今 open 。另有 #294[4] 建议接 Flipper Zero 的 Sub-GHz GPIO 模块,作者直接标了 "Not planned"。不是没能力做,是不想做,做了就不是 Marauder 了。
一张表说清楚各自的边界:
| 维度 | Flipper Zero | ESP32 Marauder |
|---|---|---|
| 价格 | $169 (约 ¥1200 ) | ¥15 裸板 / ¥350 官方套件 |
| WiFi 全功能攻击 | 需外挂,功能有限 | 原生,全功能 |
| 蓝牙 | BLE 扫描 | BLE + 经典蓝牙 + Airtag 追踪 |
| Sub-GHz ( 433/868/915 ) | 原生支持 | 不支持(社区请求多年,已拒绝) |
| NFC/RFID | 原生支持 | 需外挂 PN532 |
| 屏幕 | 单色 LCD | 2.8 寸 TFT 彩色触屏 |
| SD 卡数据导出 | 支持 | PCAP + CSV + 日志全导出 |
一个需要注意的事: Marauder 仓库目前没有在元信息里声明 License ( Readme 有 MIT badge 但字段为空)。如果你要做二次开发或商用,先跟作者确认。
六个实战:探针嗅探、 Deauth 、 PMKID 、钓鱼、蓝牙、 Airtag
WiFi 探针嗅探是最安静的功能,不发射任何信号,纯被动监听。周围手机、笔记本、智能家居设备在不停发 probe request , SD 卡会记下每一台设备的 MAC 、信号强度、喊过的每一个 WiFi 名:
[PROBE] Device: d4:6e:0e:xx:xx:xx -> SSID: Starbucks WiFi
[PROBE] Device: a4:83:e7:xx:xx:xx -> SSID: Office-5G
[PROBE] Device: b8:27:eb:xx:xx:xx -> SSID: HomeNetwork
这些数据导出来就是一份行走的人群画像,你去过哪上班、去过哪家咖啡店、在哪个酒店住过。 Marauder 支持导出 CSV 和 PCAP 。数据存在你自己的 SD 卡上,不需要联网,不需要注册任何账号。
Deauth 攻击是 WiFi 安全教材第一课。给目标客户端发 deauthentication 帧强行踢下线,客户端被踢后自动重连走一次 4-Way Handshake ,你开着抓包就拿到了 WPA 握手包。在 Marauder 触屏上选目标 AP 、选关联的客户端、点 Deauth ,三下搞定。
但有个实际情况要说清楚:社区反馈里 deauth 的稳定性因人而异。 Issue #1179[5] 里有多人报告失效。这不是 Marauder 独有的问题, 802.11w Protected Management Frames 在越来越多的路由器上默认开启, deauth 帧被 PMF 保护后自动丢弃。 WiFi 6 路由器几乎全部默认开 PMF , deauth 对这些设备无效。如果目标路由器支持 802.11w 且开了 PMF ,老老实实换其他方法。
PMKID 捕获是 2018 年由 Hashcat 作者发现的技术。向支持漫游的 AP 发关联帧, AP 回应里直接包含 PMKID ,不需要客户端在线,不需要 deauth ,比传统手法安静得多。 Marauder 一键完成全信道 PMKID 扫描,抓到 PCAP 文件在 SD 卡上,拔下来跑 hashcat :
hashcat -m 22000 marauder.pcap wordlist.txt
有 GPU 的话,弱密码秒出。
Evil Portal 钓鱼门户是 Marauder 最有社工味道的功能。建一个假 WiFi 热点, SSID 跟真的一模一样,连上来的设备弹强制门户,页面长得像真的登录页。用户输入密码后 Marauder 存下来,页面跳到 Google ,用户以为网络正常了。内置 Google 、星巴克、机场 WiFi 等多套 HTML 模板,文件在 SD 卡上可以自己改。
但这里要坦诚说清楚: Evil Portal 是当前版本最不稳定的功能。 Issue #1412[6] 报告选择 AP 或 SSID 后设备直接重启,这个问题还开着,没人回复。社区有人推测是 SD 卡读写冲突, HTML 模板在 SD 卡上,创建热点时频繁读写碰上了 SPI 总线冲突,还没有确定的修复方案。如果你要用 Evil Portal ,先在测试环境验证,别直接拿去生产环境。
蓝牙 Wardrive能同时做 WiFi 加蓝牙扫描。 BLE 设备(手环、手表、 Airtag 、 Tile )和经典蓝牙设备(耳机、音箱、车载蓝牙)都能识别。配合 GPS 模块接 GPIO ,边走边扫,数据全写 SD 卡。不过 Issue #1409[7] 报告 WiGLE 上传功能目前不可用,数据暂时只能本地分析。
Airtag 检测完全本地运行。怀疑有人往你包里放了 Airtag 跟踪, Marauder 能主动扫描周围 Airtag 并告警。不需要 iPhone ,不需要联网,比苹果官方的 Tracker Detect 响应更快。
硬件怎么选:先看什么不能买
ESP32 的芯片家族名字多到你眼花: S2 、 S3 、 C2 、 C3 、 C5 、 C6 。 Marauder 只认原版 ESP32 ,就是 ESP32-WROOM 或 ESP32-DevKitC 。
有人不信邪, Issue #237[8] 专门问了 ESP32-S2 能不能用。作者标了 "Not planned"。这些变种芯片的架构有差异, WiFi 驱动接口不同,刷进去跑不起来,不是"调一调就能用"的问题。淘宝图便宜买了 S2 ,拿到手发现刷不进去,这个坑踩过的人不在少数。
能用的三条路线:
加电池的提醒: Issue #1403[11] 有人报告电池指示器不显示。不是电池坏了,是电量计模块在某些硬件版本上没驱动起来。能充电,但看不到剩余电量,用起来心里没底。
局限:从 294 个 open issue 里挑出来的真实问题
Sub-GHz 永远不会有。从 2024 年 3 月到现在社区一直在要 CC1101 支持, issue 开着但作者没接。你需要遥控器重放、汽车钥匙分析、 433MHz 传感器读取, Flipper Zero 或者单独的 CC1101 模块才是正确方案。 Marauder 的边界就是 WiFi 加蓝牙,不会往外扩。
Evil Portal 不稳定,前面说过了,但值得再强调一次。选择 AP 或 SSID 导致设备重启的问题还没修, issue 挂着没人回复。这是目前在用 Marauder 的人最常抱怨的事情。
只有 2.4GHz。 ESP32 的 WiFi 芯片不支持 5GHz 频段,这是硬件天花板,换芯片才能解决。
Deauth 对开 PMF 的路由器完全无效,这是 802.11w 标准决定的,不是 bug 。 WiFi 6 路由器几乎全部默认开启 PMF ,对这些设备只能被动监听不能主动攻击。理解你的目标:如果它是一台现代路由器,别浪费时间去试 deauth 。
没有官方 License 声明。 Readme 有 MIT badge 但仓库元信息里 License 字段是空的,二次开发或商用前先确认。
蓝牙是副业不是主业。 Marauder 的核心永远是 WiFi 工具链。蓝牙功能( Airtag 检测、 BLE 扫描)能用,但不要期待它达到 Ubertooth 那种专业蓝牙协议分析的深度。
SD 卡兼容性看运气。建议用 ≤ 32GB 、 FAT32 格式,品牌选 Sandisk 或 Samsung 。杂牌卡是已知问题源,有人插进去秒认,有人格式化三遍读不到。花十块钱买个靠谱的卡比花两小时排查为什么读不到划算。
一块 ¥15 的 ESP32-DevKitC ,一根 USB 线,浏览器打开 web flasher 点一下。你手里这块小板子就开始扫描了。 47 个 AP , 139 个 probe request , 3 个 Airtag 在附近,全部记在 SD 卡上。
这个项目跑了 7 年,攒了 11,800 颗星,解决了一个很确切的问题:让人用最便宜的硬件,用自己看得见的方式,理解周围的 WiFi 到底有多不安全。
参考链接
[1] ESP32 Marauder: https://github.com/justcallmekoko/ESP32Marauder
[2] justcallmekoko: https://github.com/justcallmekoko
[3] #516: https://github.com/justcallmekoko/ESP32Marauder/issues/516
[4] #294: https://github.com/justcallmekoko/ESP32Marauder/issues/294
[5] #1179: https://github.com/justcallmekoko/ESP32Marauder/issues/1179
[6] #1412: https://github.com/justcallmekoko/ESP32Marauder/issues/1412
[7] #1409: https://github.com/justcallmekoko/ESP32Marauder/issues/1409
[8] #237: https://github.com/justcallmekoko/ESP32Marauder/issues/237
[9] 官网: https://www.justcallmekokollc.com
[10] #1389: https://github.com/justcallmekoko/ESP32Marauder/issues/1389
[11] #1403: https://github.com/justcallmekoko/ESP32Marauder/issues/1403