mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
129 lines
5.6 KiB
Markdown
129 lines
5.6 KiB
Markdown
# 在 Android(Broadcom 芯片)上启用 NexMon 监控模式和数据包注入
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
## 概述
|
||
大多数现代 Android 手机都嵌入了一个 Broadcom/Cypress Wi-Fi 芯片组,该芯片组出厂时不支持 802.11 监控模式或帧注入功能。开源的 NexMon 框架修补了专有固件,以添加这些功能,并通过共享库 (`libnexmon.so`) 和 CLI 辅助工具 (`nexutil`) 公开它们。通过将该库预加载到标准 Wi-Fi 驱动程序中,已 root 的设备可以捕获原始 802.11 流量并注入任意帧,从而消除了对外部 USB 适配器的需求。
|
||
|
||
本页面记录了一个快速工作流程,以完全修补的三星 Galaxy S10(BCM4375B1)为例,使用:
|
||
|
||
* 包含修补固件 + `libnexmon.so` 的 NexMon Magisk 模块
|
||
* 自动化监控模式切换的 Hijacker Android 应用程序
|
||
* 可选的 Kali NetHunter chroot,以直接针对内部接口运行经典无线工具(aircrack-ng, wifite, mdk4 等)
|
||
|
||
同样的技术适用于任何具有公开可用 NexMon 补丁的手机(Pixel 1, Nexus 6P, Galaxy S7/S8 等)。
|
||
|
||
---
|
||
|
||
## 先决条件
|
||
* 支持的 Broadcom/Cypress 芯片组的 Android 手机(例如 BCM4358/59/43596/4375B1)
|
||
* 使用 Magisk ≥ 24 的 root 权限
|
||
* BusyBox(大多数 ROM/NetHunter 已经包含它)
|
||
* 提供以下内容的 NexMon Magisk ZIP 或自编译补丁:
|
||
* `/system/lib*/libnexmon.so`
|
||
* `/system/xbin/nexutil`
|
||
* Hijacker ≥ 1.7 (arm/arm64) – [https://github.com/chrisk44/Hijacker](https://github.com/chrisk44/Hijacker)
|
||
* (可选)Kali NetHunter 或任何您打算运行无线工具的 Linux chroot
|
||
|
||
---
|
||
|
||
## 刷写 NexMon 补丁(Magisk)
|
||
1. 下载适合您设备/固件的 ZIP(示例:`nexmon-s10.zip`)。
|
||
2. 打开 Magisk -> 模块 -> 从存储安装 -> 选择 ZIP 并重启。
|
||
该模块将 `libnexmon.so` 复制到 `/data/adb/modules/<module>/lib*/` 并确保 SELinux 标签正确。
|
||
3. 验证安装:
|
||
```bash
|
||
ls -lZ $(find / -name libnexmon.so 2>/dev/null)
|
||
sha1sum $(which nexutil)
|
||
```
|
||
|
||
---
|
||
|
||
## 配置 Hijacker
|
||
Hijacker 可以在运行 `airodump`、`wifite` 等之前自动切换监控模式。在 **设置 -> 高级** 中添加以下条目(如果您的模块不同,请编辑库路径):
|
||
```
|
||
Prefix:
|
||
LD_PRELOAD=/data/user/0/com.hijacker/files/lib/libnexmon.so
|
||
|
||
Enable monitor mode:
|
||
svc wifi disable; ifconfig wlan0 up; nexutil -s0x613 -i -v2
|
||
|
||
Disable monitor mode:
|
||
nexutil -m0; svc wifi enable
|
||
```
|
||
启用“在 airodump 启动时启动监视模式”,以便每次 Hijacker 扫描都在原生监视模式下进行(`wlan0` 而不是 `wlan0mon`)。
|
||
|
||
如果 Hijacker 在启动时显示错误,请在共享存储上创建所需的目录并重新打开应用程序:
|
||
```bash
|
||
mkdir -p /storage/emulated/0/Hijacker
|
||
```
|
||
### 那些 `nexutil` 标志是什么意思?
|
||
* **`-s0x613`** 写入固件变量 0x613 (FCAP_FRAME_INJECTION) → `1` (启用任意帧的 TX)。
|
||
* **`-i`** 将接口置于监控模式(radiotap 头将被添加)。
|
||
* **`-v2`** 设置详细级别; `2` 打印确认和固件版本。
|
||
* **`-m0`** 恢复管理模式(在 *disable* 命令中使用)。
|
||
|
||
运行 *Enable monitor mode* 后,您应该看到接口处于监控状态,并能够使用以下命令捕获原始帧:
|
||
```bash
|
||
airodump-ng --band abg wlan0
|
||
```
|
||
---
|
||
|
||
## 手动一行代码(不使用 Hijacker)
|
||
```bash
|
||
# Enable monitor + injection
|
||
svc wifi disable && ifconfig wlan0 up && nexutil -s0x613 -i -v2
|
||
|
||
# Disable and return to normal Wi-Fi
|
||
nexutil -m0 && svc wifi enable
|
||
```
|
||
如果您只需要被动嗅探,请省略 `-s0x613` 标志。
|
||
|
||
---
|
||
|
||
## 在 Kali NetHunter / chroot 中使用 `libnexmon`
|
||
Kali 中的标准用户空间工具不知道 NexMon,但您可以通过 `LD_PRELOAD` 强制它们使用:
|
||
|
||
1. 将预构建的共享对象复制到 chroot 中:
|
||
```bash
|
||
cp /sdcard/Download/kalilibnexmon.so <chroot>/lib/
|
||
```
|
||
2. 从 **Android 主机** 启用监控模式(上面的命令或通过 Hijacker)。
|
||
3. 在 Kali 中启动任何无线工具并进行预加载:
|
||
```bash
|
||
sudo su
|
||
export LD_PRELOAD=/lib/kalilibnexmon.so
|
||
wifite -i wlan0 # 或 aircrack-ng, mdk4 …
|
||
```
|
||
4. 完成后,像往常一样在 Android 上禁用监控模式。
|
||
|
||
因为固件已经处理了 radiotap 注入,用户空间工具的行为就像在外部 Atheros 适配器上一样。
|
||
|
||
---
|
||
|
||
## 可能的典型攻击
|
||
一旦监控 + TX 激活,您可以:
|
||
* 使用 `wifite`、`hcxdumptool`、`airodump-ng` 捕获 WPA(2/3-SAE) 握手或 PMKID。
|
||
* 注入去认证/断开连接帧以强制客户端重新连接。
|
||
* 使用 `mdk4`、`aireplay-ng`、Scapy 等构造任意管理/数据帧。
|
||
* 从手机直接构建恶意 AP 或执行 KARMA/MANA 攻击。
|
||
|
||
Galaxy S10 的性能与外部 USB NIC 相当(~20 dBm TX,2-3 M pps RX)。
|
||
|
||
---
|
||
|
||
## 故障排除
|
||
* `Device or resource busy` – 确保 **Android Wi-Fi 服务已禁用** (`svc wifi disable`) 后再启用监控模式。
|
||
* `nexutil: ioctl(PRIV_MAGIC) failed` – 库未预加载;仔细检查 `LD_PRELOAD` 路径。
|
||
* 帧注入有效但未捕获数据包 – 一些 ROM 硬性阻止频道;尝试 `nexutil -c <channel>` 或 `iwconfig wlan0 channel <n>`。
|
||
* SELinux 阻止库 – 将设备设置为 *Permissive* 或修复模块上下文:`chcon u:object_r:system_lib_file:s0 libnexmon.so`。
|
||
|
||
---
|
||
|
||
## 参考
|
||
* [Hijacker on the Samsung Galaxy S10 with wireless injection](https://forums.kali.org/t/hijacker-on-the-samsung-galaxy-s10-with-wireless-injection/10305)
|
||
* [NexMon – firmware patching framework](https://github.com/seemoo-lab/nexmon)
|
||
* [Hijacker (aircrack-ng GUI for Android)](https://github.com/chrisk44/Hijacker)
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|