Habilitar Modo Monitor e Injeção de Pacotes NexMon no Android (chips Broadcom)

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks

Visão Geral

A maioria dos telefones Android modernos incorpora um chipset Wi-Fi Broadcom/Cypress que é enviado sem modo monitor 802.11 ou capacidades de injeção de quadros. O framework de código aberto NexMon modifica o firmware proprietário para adicionar esses recursos e os expõe através de uma biblioteca compartilhada (libnexmon.so) e um helper CLI (nexutil). Ao pré-carregar essa biblioteca no driver Wi-Fi padrão, um dispositivo com root pode capturar tráfego bruto 802.11 e injetar quadros arbitrários – eliminando a necessidade de um adaptador USB externo.

Esta página documenta um fluxo de trabalho rápido que usa um Samsung Galaxy S10 totalmente corrigido (BCM4375B1) como exemplo, utilizando:

  • Módulo Magisk NexMon contendo o firmware corrigido + libnexmon.so
  • Aplicativo Android Hijacker para automatizar a alternância do modo monitor
  • Chroot Kali NetHunter opcional para executar ferramentas sem fio clássicas (aircrack-ng, wifite, mdk4 …) diretamente contra a interface interna

A mesma técnica se aplica a qualquer dispositivo que tenha um patch NexMon disponível publicamente (Pixel 1, Nexus 6P, Galaxy S7/S8, etc.).


Pré-requisitos

  • Dispositivo Android com um chipset Broadcom/Cypress suportado (por exemplo, BCM4358/59/43596/4375B1)
  • Root com Magisk ≥ 24
  • BusyBox (a maioria das ROMs/NetHunter já o inclui)
  • ZIP Magisk NexMon ou patch auto-compilado fornecendo:
  • /system/lib*/libnexmon.so
  • /system/xbin/nexutil
  • Hijacker ≥ 1.7 (arm/arm64) – https://github.com/chrisk44/Hijacker
  • (Opcional) Kali NetHunter ou qualquer chroot Linux onde você pretende executar ferramentas sem fio

Flashing o patch NexMon (Magisk)

  1. Baixe o ZIP para o seu dispositivo/firmware exato (exemplo: nexmon-s10.zip).
  2. Abra o Magisk -> Módulos -> Instalar do armazenamento -> selecione o ZIP e reinicie. O módulo copia libnexmon.so para /data/adb/modules/<module>/lib*/ e garante que os rótulos SELinux estejam corretos.
  3. Verifique a instalação:
bash
ls -lZ $(find / -name libnexmon.so 2>/dev/null)
sha1sum $(which nexutil)

Configurando o Hijacker

O Hijacker pode alternar o modo monitor automaticamente antes de executar airodump, wifite, etc. Em Configurações -> Avançado adicione as seguintes entradas (edite o caminho da biblioteca se seu módulo for 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

Ative “Iniciar modo monitor ao iniciar airodump” para que cada varredura do Hijacker aconteça no modo monitor nativo (wlan0 em vez de wlan0mon).

Se o Hijacker mostrar erros ao iniciar, crie o diretório necessário no armazenamento compartilhado e reabra o aplicativo:

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

O que significam essas flags do nexutil?

  • -s0x613 Escreve a variável de firmware 0x613 (FCAP_FRAME_INJECTION) → 1 (habilita TX de quadros arbitrários).
  • -i Coloca a interface em modo monitor (o cabeçalho radiotap será adicionado).
  • -v2 Define o nível de verbosidade; 2 imprime confirmação e versão do firmware.
  • -m0 Restaura o modo gerenciado (usado no comando disable).

Após executar Enable monitor mode, você deve ver a interface em estado de monitor e ser capaz de capturar quadros brutos com:

bash
airodump-ng --band abg wlan0

Linha única manual (sem 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

Se você só precisa de sniffing passivo, omita a flag -s0x613.


Usando libnexmon dentro do Kali NetHunter / chroot

As ferramentas de espaço do usuário padrão no Kali não conhecem o NexMon, mas você pode forçá-las a usá-lo via LD_PRELOAD:

  1. Copie o objeto compartilhado pré-construído para o chroot:
bash
cp /sdcard/Download/kalilibnexmon.so <chroot>/lib/
  1. Ative o modo monitor a partir do host Android (comando acima ou através do Hijacker).
  2. Inicie qualquer ferramenta sem fio dentro do Kali com o preload:
bash
sudo su
export LD_PRELOAD=/lib/kalilibnexmon.so
wifite -i wlan0        # ou aircrack-ng, mdk4 …
  1. Quando terminar, desative o modo monitor como de costume no Android.

Como o firmware já lida com a injeção de radiotap, as ferramentas de espaço do usuário se comportam exatamente como em um adaptador Atheros externo.


Ataques Típicos Possíveis

Uma vez que monitor + TX está ativo, você pode:

  • Capturar handshakes WPA(2/3-SAE) ou PMKID com wifite, hcxdumptool, airodump-ng.
  • Injetar quadros de desautenticação / desassociação para forçar os clientes a reconectar.
  • Criar quadros de gerenciamento/dados arbitrários com mdk4, aireplay-ng, Scapy, etc.
  • Construir APs maliciosos ou realizar ataques KARMA/MANA diretamente do telefone.

O desempenho no Galaxy S10 é comparável a NICs USB externos (~20 dBm TX, 2-3 M pps RX).


Solução de Problemas

  • Device or resource busy – certifique-se de que o serviço Wi-Fi do Android está desativado (svc wifi disable) antes de ativar o modo monitor.
  • nexutil: ioctl(PRIV_MAGIC) failed – a biblioteca não está pré-carregada; verifique novamente o caminho LD_PRELOAD.
  • A injeção de quadros funciona, mas nenhum pacote capturado – alguns ROMs bloqueiam canais; tente nexutil -c <channel> ou iwconfig wlan0 channel <n>.
  • SELinux bloqueando a biblioteca – defina o dispositivo como Permissivo ou corrija o contexto do módulo: chcon u:object_r:system_lib_file:s0 libnexmon.so.

Referências

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks