Habilitar el Modo Monitor de NexMon e Inyección de Paquetes en Android (chips Broadcom)

Reading time: 6 minutes

tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Descripción general

La mayoría de los teléfonos Android modernos incorporan un chipset Wi-Fi Broadcom/Cypress que se envía sin modo monitor 802.11 o capacidades de inyección de tramas. El marco de código abierto NexMon parchea el firmware propietario para agregar esas características y las expone a través de una biblioteca compartida (libnexmon.so) y un asistente CLI (nexutil). Al pre-cargar esa biblioteca en el controlador Wi-Fi de stock, un dispositivo con root puede capturar tráfico 802.11 en bruto e inyectar tramas arbitrarias, eliminando la necesidad de un adaptador USB externo.

Esta página documenta un flujo de trabajo rápido que toma un Samsung Galaxy S10 completamente parcheado (BCM4375B1) como ejemplo, utilizando:

  • Módulo Magisk de NexMon que contiene el firmware parcheado + libnexmon.so
  • Aplicación Hijacker para automatizar el cambio de modo monitor
  • Chroot opcional de Kali NetHunter para ejecutar herramientas inalámbricas clásicas (aircrack-ng, wifite, mdk4 …) directamente contra la interfaz interna

La misma técnica se aplica a cualquier dispositivo que tenga un parche NexMon disponible públicamente (Pixel 1, Nexus 6P, Galaxy S7/S8, etc.).


Requisitos previos

  • Dispositivo Android con un chipset Broadcom/Cypress compatible (por ejemplo, BCM4358/59/43596/4375B1)
  • Root con Magisk ≥ 24
  • BusyBox (la mayoría de los ROMs/NetHunter ya lo incluyen)
  • ZIP de NexMon Magisk o parche autocompilado que proporcione:
  • /system/lib*/libnexmon.so
  • /system/xbin/nexutil
  • Hijacker ≥ 1.7 (arm/arm64) – https://github.com/chrisk44/Hijacker
  • (Opcional) Kali NetHunter o cualquier chroot de Linux donde pretendas ejecutar herramientas inalámbricas

Flashear el parche NexMon (Magisk)

  1. Descarga el ZIP para tu dispositivo/firmware exacto (ejemplo: nexmon-s10.zip).
  2. Abre Magisk -> Módulos -> Instalar desde almacenamiento -> selecciona el ZIP y reinicia. El módulo copia libnexmon.so en /data/adb/modules/<module>/lib*/ y asegura que las etiquetas de SELinux sean correctas.
  3. Verifica la instalación:
bash
ls -lZ $(find / -name libnexmon.so 2>/dev/null)
sha1sum $(which nexutil)

Configurando Hijacker

Hijacker puede alternar el modo monitor automáticamente antes de ejecutar airodump, wifite, etc. En Configuración -> Avanzado agrega las siguientes entradas (edita la ruta de la biblioteca si tu módulo es diferente):

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

Habilita "Iniciar el modo monitor al iniciar airodump" para que cada escaneo de Hijacker ocurra en modo monitor nativo (wlan0 en lugar de wlan0mon).

Si Hijacker muestra errores al iniciar, crea el directorio requerido en el almacenamiento compartido y vuelve a abrir la aplicación:

bash
mkdir -p /storage/emulated/0/Hijacker

¿Qué significan esas banderas nexutil?

  • -s0x613 Escribir variable de firmware 0x613 (FCAP_FRAME_INJECTION) → 1 (habilitar TX de tramas arbitrarias).
  • -i Poner la interfaz en modo monitor (el encabezado radiotap se añadirá).
  • -v2 Establecer nivel de verbosidad; 2 imprime confirmación y versión del firmware.
  • -m0 Restaurar modo gestionado (utilizado en el comando disable).

Después de ejecutar Enable monitor mode deberías ver la interfaz en estado de monitor y poder capturar tramas en bruto con:

bash
airodump-ng --band abg wlan0

Línea de comando manual (sin 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

Si solo necesitas sniffing pasivo, omite la bandera -s0x613.


Usando libnexmon dentro de Kali NetHunter / chroot

Las herramientas de espacio de usuario de stock en Kali no conocen NexMon, pero puedes forzarlas a usarlo a través de LD_PRELOAD:

  1. Copia el objeto compartido preconstruido en el chroot:
bash
cp /sdcard/Download/kalilibnexmon.so <chroot>/lib/
  1. Habilita el modo monitor desde el host de Android (comando anterior o a través de Hijacker).
  2. Lanza cualquier herramienta inalámbrica dentro de Kali con el preload:
bash
sudo su
export LD_PRELOAD=/lib/kalilibnexmon.so
wifite -i wlan0        # o aircrack-ng, mdk4 …
  1. Cuando termines, desactiva el modo monitor como de costumbre en Android.

Debido a que el firmware ya maneja la inyección de radiotap, las herramientas de espacio de usuario se comportan igual que en un adaptador Atheros externo.


Ataques Típicos Posibles

Una vez que el monitor + TX está activo, puedes:

  • Capturar handshakes WPA(2/3-SAE) o PMKID con wifite, hcxdumptool, airodump-ng.
  • Inyectar tramas de desautenticación / desasociación para forzar a los clientes a reconectarse.
  • Crear tramas de gestión/datos arbitrarias con mdk4, aireplay-ng, Scapy, etc.
  • Construir APs maliciosos o realizar ataques KARMA/MANA directamente desde el teléfono.

El rendimiento en el Galaxy S10 es comparable a NICs USB externos (~20 dBm TX, 2-3 M pps RX).


Solución de Problemas

  • Device or resource busy – asegúrate de que el servicio Wi-Fi de Android esté deshabilitado (svc wifi disable) antes de habilitar el modo monitor.
  • nexutil: ioctl(PRIV_MAGIC) failed – la biblioteca no está pre-cargada; verifica el camino de LD_PRELOAD.
  • La inyección de tramas funciona pero no se capturan paquetes – algunos ROMs bloquean canales; intenta nexutil -c <channel> o iwconfig wlan0 channel <n>.
  • SELinux bloqueando la biblioteca – establece el dispositivo en Permissivo o corrige el contexto del módulo: chcon u:object_r:system_lib_file:s0 libnexmon.so.

Referencias

tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks