Nexmon 无线注入与 Android 定制内核
Nexmon 解决什么问题
大部分 Android 手机的 Wi-Fi 芯片(Broadcom BCM43 系列)默认不支持 monitor mode 和 packet injection。但 Nexmon 项目发现这些芯片硬件上是支持的——只是驱动被 Android 原厂阉割了。
Nexmon 做的事:给 Broadcom 芯片的固件打补丁,绕过了 Android 驱动对 monitor mode 和 injection 的限制。
为什么重要
- 不需要外接 USB 网卡(比如 Alfa AWUS036ACH)就能在手机上跑 Aircrack-ng 全套功能
- 更隐蔽(USB 网卡插在手机上很显眼)
- 原生支持 Wi-Fi 测试,从 monitor mode 到 WPA2 握手捕获一套走
支持的设备
Nexmon 当前官方支持的设备(部分精选):
| 设备 | 芯片 | 状态 |
|---|---|---|
| Nexus 5X | BCM4375 | ✅ 完全支持 |
| Galaxy S7/S7 Edge | BCM4359 | ✅ 支持 |
| Galaxy S8/S8+ | BCM4359 | ✅ 支持 |
| OnePlus 5 | BCM4355 | ✅ 支持 |
| Pixel 4 | BCM4375 | ✅ 支持 |
| Xiaomi Mi 8 | BCM4375 | ✅ 支持 |
| 麒麟/联发科芯片 | 各厂家 | ❌ 不支持(非 Broadcom) |
完整列表见 Nexmon 官方网站。
刷入 Nexmon 固件
方式一:刷 CTS Profile(推荐)
- 从 Nexmon 官方网站下载对应设备的 CTS Profile zip 文件
- 在 Magisk(已 root 的设备)中安装 zip
- 重启后 Nexmon 自动生效
方式二:手动编译
需要交叉编译环境,适合开发者:
# 克隆 Nexmon 仓库
git clone https://github.com/seemoo-lab/nexmon.git
cd nexmon
# 编译 Broadcom 补丁
cd patches/bcm4375/7_45_189/
make
使用 Nexmon 跑无线测试
刷入 Nexmon 后:
# 确认 Nexmon 已生效
dmesg | grep -i nexmon
# 应该看到类似 "bcmdhd: nexmon firmware loaded"
# 将 Wi-Fi 切到 monitor mode
nexmon_setup wlan0 mon0
# 用 airodump-ng 扫描
airodump-ng mon0
# 注入测试
aireplay-ng -9 -i mon0
# 看到 "Injection is working!" 就成功了
Nexmon vs 外接 USB 网卡
| 维度 | Nexmon | USB 网卡(Alfa) |
|---|---|---|
| 便携性 | 手机一体化,无外露 | 插一根 USB 线 + 一个天线 |
| 隐蔽性 | 很好 | 容易被发现 |
| 芯片支持 | Broadcom 限定 | 几乎所有支持 monitor 的芯片 |
| 天线增益 | 手机内置(通常较差) | Alfa 有 5dBi / 9dBi 天线可选 |
| 2.4GHz/5GHz | 取决于手机 | Alfa AWUS036ACH 支持双频 |
| 信号稳定性 | 中等 | 好(外置天线) |
实战建议:Nexmon 适合快速侦察和轻量测试,遇到复杂环境(远距 WPA2 破解)还是外接 Alfa 更稳。
Kali NetHunter + Nexmon
Kali NetHunter(Pro 版)预集成了 Nexmon:
- 在 NetHunter 菜单 → Wireless Menu 中一键刷入/切换
- 已为支持的设备预编译好固件
- 不需要手动编译补丁
限制与注意
- 只支持 Broadcom 芯片。联发科、麒麟、高通的 Wi-Fi 芯片都不行——这些厂商要么硬件不支持注入,要么固件无法修改
- OTA 更新后会失效:Android 系统更新可能覆盖 Nexmon 补丁,需要重新刷入
- 部分银行/支付 App 会检测:root + Nexmon 的组合触发某些金融 App 的安全检测