pr0misc/Libnexmonkali-Plus

GitHub: pr0misc/Libnexmonkali-Plus

通过 LD_PRELOAD 拦截系统调用,在应用 Nexmon 补丁的 Broadcom 芯片上实现监听模式、帧注入与信道切换的跨平台兼容库。

Stars: 0 | Forks: 0

# Libnexmonkali-Plus 🚀 ## 📖 概述 该库通过 `LD_PRELOAD` 拦截系统调用,从而在应用了 Nexmon 补丁的 Broadcom 芯片上启用监听模式、帧注入和信道切换。它同时支持 **bcmdhd** (Samsung) 和 **brcmfmac** (TicWatch/RPi) 内核驱动,并能在运行时自动检测正确的注入方法。 ### 支持的设备 | 设备 | 芯片 | 驱动 | 架构 | 注入方式 | |---|---|---|---|---| | Samsung S10/S21+ | BCM4375b1 | `bcmdhd` | aarch64 | `NEX_INJECT_FRAME` IOCTL | | TicWatch Pro/Pro3 | BCM43436b0 | `brcmfmac` | armhf | Raw socket → `wl_send_hook` | | Raspberry Pi (64-bit) | 各种 | `brcmfmac` | aarch64 | Raw socket → `wl_send_hook` | | Raspberry Pi (32-bit) | 各种 | `brcmfmac` | armhf | Raw socket → `wl_send_hook` | ### 支持的工具 | 工具 | 用途 | 自动延迟 | |---|---|---| | Reaver / Bully | WPS 攻击 | 5ms | | hcxdumptool | PMKID/握手包捕获 | 10ms | | aireplay-ng | Deauth / 注入 | 15ms | | Kismet | 扫描 / 监听 | 20ms | | airodump-ng | 跳频 / 扫描 | 40ms | | 所有其他工具 | 通用 | 70ms (安全) | ## ⚡ 关键特性 ### 1. 通用数据包注入 通过 Hook 所有主要的数据包传输系统调用:`write()`、`sendto()`、`sendmsg()`、`send()`、`sendmmsg()` 来实现。在 **bcmdhd** 设备上,帧通过 `NEX_INJECT_FRAME` IOCTL 路由。在 **brcmfmac** 设备 (TicWatch/RPi) 上,帧直接传递给内核,由固件的 `wl_send_hook` 处理注入。 ### 2. 自动驱动检测 初始化时,库会探测 `/sys/module/brcmfmac/` 和 `/sys/module/bcmdhd/` 以确定已加载的驱动,并选择正确的注入方法。如果探测失败,则回退到基于架构的默认设置(`armhf` → raw socket, `aarch64` → IOCTL)。 ### 3. 可靠的握手包捕获 强制设置 `WLC_SET_PM=0` (持续唤醒模式) 以防止芯片在 EAPOL 握手期间进入休眠。每次信道变更后都会强制开启混杂模式 (`WLC_SET_PROMISC=1`)。 ### 4. 智能速度 (自动优化) 检查 `/proc/self/comm` 以检测当前运行的工具,并自动设置最佳注入延迟。可以通过 `NEXMON_DELAY` 环境变量进行覆盖。 ### 5. 信道切换稳定性 每次信道变更后重新强制执行唤醒和混杂状态。对于 Kismet 和 hcxdumptool,每注入 50 个帧会定期执行一次稳定性强化。 ### 6. Kismet & hcxdumptool 绕过 - 伪造 `NL80211_CMD_SET_INTERFACE` 成功(防止出现“无法设置监听模式”错误) - 抑制读取时的 `EOPNOTSUPP`/`EINVAL` netlink 错误(防止工具中止) - 强制 `SIOCSIWMODE` 成功,以支持 Kismet 的旧版监听模式路径 ### 7. 可配置接口 设置 `NEXMON_IFACE` 环境变量以覆盖默认的 `wlan0` 接口名称。 ## 🛠️ 编译与安装 ### 前置条件 - 交叉编译器:`aarch64-linux-gnu-gcc` 和/或 `arm-linux-gnueabihf-gcc` - libnl3 开发头文件:`apt install libnl-3-dev libnl-genl-3-dev` ### 编译 ``` # 适用于 Samsung S10/S21+ 及现代 64-bit 设备 make aarch64 # 适用于 TicWatch Pro/Pro3 及 32-bit ARM 设备 make armhf # 全局安装 (复制到 /usr/lib/ 和 /usr/bin/) sudo make install ``` ## 💻 使用方法 ### 步骤 1:启用监听模式 (设备端) ``` nexutil -m2 # or: nexutil -s0x613 -i -v2 ``` ### 步骤 2:运行工具 **选项 A:单条命令 (推荐)** ``` # 自动检测速度 (让 library 为每个 tool 选择最佳延迟) nxsp 0 reaver -i wlan0 -b -c # 手动覆盖延迟 (例如,15ms) nxsp 15 mdk4 wlan0 d ``` **选项 B:Shell 模式** ``` # 进入 Nexmon shell (每个 tool 智能自动检测) nxsp load # 运行 tools — 每个 tool 自动获得其最佳延迟 reaver -i wlan0 ... airodump-ng wlan0 # 退出 exit ``` **选项 C:直接使用 LD_PRELOAD** ``` NEXMON_DELAY=0 LD_PRELOAD=/usr/lib/libnexmonkali.so reaver -i wlan0 ... ``` ### 环境变量 | 变量 | 默认值 | 描述 | |---|---|---| | `NEXMON_DELAY` | 自动检测 | 注入延迟 (纳秒) (0 = 无延迟) | | `NEXMON_IFACE` | `wlan0` | 覆盖接口名称 | ## ⚠️ 免责声明 本软件仅用于教育目的和经授权的安全审计。作者不对因使用本软件而导致的任何滥用或损害负责。请确保您遵守所有关于无线电传输和网络安全的当地法律法规。 ## 🏆 致谢 - 原始工作:[Nexmon Team](https://github.com/seemoo-lab/nexmon) - 灵感与动力:[yesimxev](https://github.com/yesimxev) - 原始库:[RoninNada](https://github.com/RoninNada/libnexmonkali) - S10 优化与分支:[qazianwar222](https://github.com/pr0misc)
标签:aireplay-ng, airodump-ng, bcmdhd, brcmfmac, Broadcom 芯片, Kali Linux 工具, LD_PRELOAD, Nexmon, WiFi 渗透测试, 中间人攻击, 内核驱动, 协议分析, 安卓安全, 客户端加密, 握手包捕获, 数据包注入, 权限提升, 监听模式, 系统调用拦截, 网络协议, 网络安全, 防御绕过, 隐私保护