Activer le mode moniteur NexMon et l’injection de paquets sur Android (puces Broadcom)

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Aperçu

La plupart des téléphones Android modernes intègrent une puce Wi-Fi Broadcom/Cypress qui est livrée sans mode moniteur 802.11 ni capacités d’injection de trames. Le framework open-source NexMon patch le firmware propriétaire pour ajouter ces fonctionnalités et les expose via une bibliothèque partagée (libnexmon.so) et un helper CLI (nexutil). En préchargeant cette bibliothèque dans le pilote Wi-Fi d’origine, un appareil rooté peut capturer le trafic 802.11 brut et injecter des trames arbitraires – éliminant ainsi le besoin d’un adaptateur USB externe.

Cette page documente un flux de travail rapide qui prend un Samsung Galaxy S10 entièrement patché (BCM4375B1) comme exemple, en utilisant :

  • Module Magisk NexMon contenant le firmware patché + libnexmon.so
  • Application Android Hijacker pour automatiser le basculement du mode moniteur
  • Chroot Kali NetHunter optionnel pour exécuter des outils sans fil classiques (aircrack-ng, wifite, mdk4 …) directement contre l’interface interne

La même technique s’applique à tout appareil disposant d’un patch NexMon disponible publiquement (Pixel 1, Nexus 6P, Galaxy S7/S8, etc.).


Prérequis

  • Appareil Android avec une puce Broadcom/Cypress prise en charge (par exemple, BCM4358/59/43596/4375B1)
  • Root avec Magisk ≥ 24
  • BusyBox (la plupart des ROMs/NetHunter l’incluent déjà)
  • ZIP Magisk NexMon ou patch auto-compilé fournissant :
  • /system/lib*/libnexmon.so
  • /system/xbin/nexutil
  • Hijacker ≥ 1.7 (arm/arm64) – https://github.com/chrisk44/Hijacker
  • (Optionnel) Kali NetHunter ou tout chroot Linux où vous comptez exécuter des outils sans fil

Flasher le patch NexMon (Magisk)

  1. Téléchargez le ZIP pour votre appareil/firmware exact (exemple : nexmon-s10.zip).
  2. Ouvrez Magisk -> Modules -> Installer depuis le stockage -> sélectionnez le ZIP et redémarrez. Le module copie libnexmon.so dans /data/adb/modules/<module>/lib*/ et s’assure que les étiquettes SELinux sont correctes.
  3. Vérifiez l’installation :
ls -lZ $(find / -name libnexmon.so 2>/dev/null)
sha1sum $(which nexutil)

Configurer Hijacker

Hijacker peut basculer le mode moniteur automatiquement avant d’exécuter airodump, wifite, etc. Dans Paramètres -> Avancé, ajoutez les entrées suivantes (modifiez le chemin de la bibliothèque si votre module diffère) :

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

Activez “Démarrer le mode moniteur au démarrage d’airodump” afin que chaque scan de Hijacker se fasse en mode moniteur natif (wlan0 au lieu de wlan0mon).

Si Hijacker affiche des erreurs au lancement, créez le répertoire requis sur le stockage partagé et rouvrez l’application :

mkdir -p /storage/emulated/0/Hijacker

Que signifient ces drapeaux nexutil ?

  • -s0x613 Écrire la variable de firmware 0x613 (FCAP_FRAME_INJECTION) → 1 (activer l’envoi de trames arbitraires).
  • -i Mettre l’interface en mode moniteur (l’en-tête radiotap sera ajouté).
  • -v2 Définir le niveau de verbosité ; 2 imprime la confirmation et la version du firmware.
  • -m0 Restaurer le mode géré (utilisé dans la commande disable).

Après avoir exécuté Enable monitor mode, vous devriez voir l’interface en état de moniteur et être capable de capturer des trames brutes avec :

airodump-ng --band abg wlan0

Ligne de commande manuelle (sans Hijacker)

# 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 vous n’avez besoin que de l’écoute passive, omettez le drapeau -s0x613.


Utilisation de libnexmon dans Kali NetHunter / chroot

Les outils d’espace utilisateur de base dans Kali ne connaissent pas NexMon, mais vous pouvez les forcer à l’utiliser via LD_PRELOAD :

  1. Copiez l’objet partagé pré-construit dans le chroot :
cp /sdcard/Download/kalilibnexmon.so <chroot>/lib/
  1. Activez le mode moniteur depuis l’hôte Android (commande ci-dessus ou via Hijacker).
  2. Lancez n’importe quel outil sans fil dans Kali avec le préchargement :
sudo su
export LD_PRELOAD=/lib/kalilibnexmon.so
wifite -i wlan0        # ou aircrack-ng, mdk4 …
  1. Lorsque vous avez terminé, désactivez le mode moniteur comme d’habitude sur Android.

Parce que le firmware gère déjà l’injection radiotap, les outils d’espace utilisateur se comportent comme sur un adaptateur Atheros externe.


Attaques typiques possibles

Une fois le mode moniteur + TX actif, vous pouvez :

  • Capturer des handshakes WPA(2/3-SAE) ou PMKID avec wifite, hcxdumptool, airodump-ng.
  • Injecter des trames de désauthentification / de désassociation pour forcer les clients à se reconnecter.
  • Créer des trames de gestion/données arbitraires avec mdk4, aireplay-ng, Scapy, etc.
  • Construire des APs malveillants ou effectuer des attaques KARMA/MANA directement depuis le téléphone.

Les performances sur le Galaxy S10 sont comparables à celles des NIC USB externes (~20 dBm TX, 2-3 M pps RX).


Dépannage

  • Device or resource busy – assurez-vous que le service Wi-Fi Android est désactivé (svc wifi disable) avant d’activer le mode moniteur.
  • nexutil: ioctl(PRIV_MAGIC) failed – la bibliothèque n’est pas préchargée ; vérifiez le chemin LD_PRELOAD.
  • L’injection de trames fonctionne mais aucun paquet capturé – certains ROMs bloquent les canaux ; essayez nexutil -c <channel> ou iwconfig wlan0 channel <n>.
  • SELinux bloque la bibliothèque – définissez l’appareil sur Permissif ou corrigez le contexte du module : chcon u:object_r:system_lib_file:s0 libnexmon.so.

Références

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks