hacktricks/src/generic-methodologies-and-resources/pentesting-wifi/enable-nexmon-monitor-and-injection-on-android.md

129 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Aktivieren des NexMon-Monitor-Modus & Paket-Injektion auf Android (Broadcom-Chips)
{{#include ../../banners/hacktricks-training.md}}
## Übersicht
Die meisten modernen Android-Handys verfügen über einen Broadcom/Cypress-Wi-Fi-Chipsatz, der ohne 802.11-Monitor-Modus oder Frame-Injektionsfähigkeiten ausgeliefert wird. Das Open-Source-NexMon-Framework patcht die proprietäre Firmware, um diese Funktionen hinzuzufügen, und stellt sie über eine Shared Library (`libnexmon.so`) und einen CLI-Helfer (`nexutil`) zur Verfügung. Durch das Vorladen dieser Bibliothek in den Standard-Wi-Fi-Treiber kann ein gerootetes Gerät rohen 802.11-Verkehr erfassen und beliebige Frames injizieren was die Notwendigkeit eines externen USB-Adapters beseitigt.
Diese Seite dokumentiert einen schnellen Workflow, der ein vollständig gepatchtes Samsung Galaxy S10 (BCM4375B1) als Beispiel verwendet, mit:
* NexMon Magisk-Modul, das die gepatchte Firmware + `libnexmon.so` enthält
* Hijacker Android-Anwendung zur Automatisierung des Umschaltens des Monitor-Modus
* Optional Kali NetHunter Chroot, um klassische drahtlose Tools (aircrack-ng, wifite, mdk4 …) direkt gegen die interne Schnittstelle auszuführen
Die gleiche Technik gilt für jedes Handy, das einen öffentlich verfügbaren NexMon-Patch hat (Pixel 1, Nexus 6P, Galaxy S7/S8 usw.).
---
## Voraussetzungen
* Android-Handy mit einem unterstützten Broadcom/Cypress-Chipsatz (z. B. BCM4358/59/43596/4375B1)
* Root mit Magisk ≥ 24
* BusyBox (die meisten ROMs/NetHunter enthalten es bereits)
* NexMon Magisk ZIP oder selbstkompilierten Patch, der bereitstellt:
* `/system/lib*/libnexmon.so`
* `/system/xbin/nexutil`
* Hijacker ≥ 1.7 (arm/arm64) [https://github.com/chrisk44/Hijacker](https://github.com/chrisk44/Hijacker)
* (Optional) Kali NetHunter oder ein beliebiges Linux-Chroot, in dem Sie drahtlose Tools ausführen möchten
---
## Flashen des NexMon-Patches (Magisk)
1. Laden Sie die ZIP für Ihr genaues Gerät/Firmware herunter (Beispiel: `nexmon-s10.zip`).
2. Öffnen Sie Magisk -> Module -> Aus Speicher installieren -> wählen Sie die ZIP aus und starten Sie neu.
Das Modul kopiert `libnexmon.so` in `/data/adb/modules/<module>/lib*/` und stellt sicher, dass die SELinux-Labels korrekt sind.
3. Überprüfen Sie die Installation:
```bash
ls -lZ $(find / -name libnexmon.so 2>/dev/null)
sha1sum $(which nexutil)
```
---
## Konfigurieren von Hijacker
Hijacker kann den Monitor-Modus automatisch umschalten, bevor `airodump`, `wifite` usw. ausgeführt werden. Fügen Sie in **Einstellungen -> Erweitert** die folgenden Einträge hinzu (bearbeiten Sie den Bibliothekspfad, wenn Ihr Modul abweicht):
```
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
```
Aktivieren Sie „Monitor-Modus beim Start von airodump starten“, damit jeder Hijacker-Scan im nativen Monitor-Modus erfolgt (`wlan0` anstelle von `wlan0mon`).
Wenn Hijacker beim Start Fehler anzeigt, erstellen Sie das erforderliche Verzeichnis im gemeinsamen Speicher und öffnen Sie die App erneut:
```bash
mkdir -p /storage/emulated/0/Hijacker
```
### Was bedeuten diese `nexutil`-Flags?
* **`-s0x613`** Schreibe Firmware-Variable 0x613 (FCAP_FRAME_INJECTION) → `1` (Aktivieren des TX von beliebigen Frames).
* **`-i`** Setze das Interface in den Monitor-Modus (Radiotap-Header wird hinzugefügt).
* **`-v2`** Setze die Ausführlichkeitsebene; `2` druckt Bestätigung und Firmware-Version.
* **`-m0`** Stelle den Managed-Modus wieder her (wird im *disable*-Befehl verwendet).
Nach dem Ausführen von *Enable monitor mode* solltest du das Interface im Monitor-Zustand sehen und in der Lage sein, rohe Frames mit:
```bash
airodump-ng --band abg wlan0
```
---
## Manuelle Einzeile (ohne 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
```
Wenn Sie nur passives Sniffing benötigen, lassen Sie das `-s0x613` Flag weg.
---
## Verwendung von `libnexmon` in Kali NetHunter / chroot
Standardbenutzerwerkzeuge in Kali kennen NexMon nicht, aber Sie können sie zwingen, es über `LD_PRELOAD` zu verwenden:
1. Kopieren Sie das vorgebaute Shared Object in das chroot:
```bash
cp /sdcard/Download/kalilibnexmon.so <chroot>/lib/
```
2. Aktivieren Sie den Monitor-Modus vom **Android-Host** (Befehl oben oder über Hijacker).
3. Starten Sie ein beliebiges drahtloses Tool in Kali mit dem Preload:
```bash
sudo su
export LD_PRELOAD=/lib/kalilibnexmon.so
wifite -i wlan0 # oder aircrack-ng, mdk4 …
```
4. Deaktivieren Sie den Monitor-Modus wie gewohnt auf Android, wenn Sie fertig sind.
Da die Firmware bereits die Radiotap-Injektion verarbeitet, verhalten sich Benutzerwerkzeuge genau wie bei einem externen Atheros-Adapter.
---
## Typische Angriffe möglich
Sobald Monitor + TX aktiv ist, können Sie:
* WPA(2/3-SAE) Handshakes oder PMKID mit `wifite`, `hcxdumptool`, `airodump-ng` erfassen.
* Deauthentifizierungs-/Dissoziationsrahmen injizieren, um Clients zum Wiederverbinden zu zwingen.
* Beliebige Management-/Datenrahmen mit `mdk4`, `aireplay-ng`, Scapy usw. erstellen.
* Rogue APs erstellen oder KARMA/MANA-Angriffe direkt vom Telefon ausführen.
Die Leistung auf dem Galaxy S10 ist vergleichbar mit externen USB NICs (~20 dBm TX, 2-3 M pps RX).
---
## Fehlersuche
* `Device or resource busy` stellen Sie sicher, dass der **Android-WLAN-Dienst deaktiviert ist** (`svc wifi disable`), bevor Sie den Monitor-Modus aktivieren.
* `nexutil: ioctl(PRIV_MAGIC) failed` die Bibliothek ist nicht vorab geladen; überprüfen Sie den `LD_PRELOAD`-Pfad.
* Rahmeninjektion funktioniert, aber keine Pakete erfasst einige ROMs blockieren Kanäle hart; versuchen Sie `nexutil -c <channel>` oder `iwconfig wlan0 channel <n>`.
* SELinux blockiert die Bibliothek setzen Sie das Gerät auf *Permissive* oder beheben Sie den Modulkontext: `chcon u:object_r:system_lib_file:s0 libnexmon.so`.
---
## Referenzen
* [Hijacker auf dem Samsung Galaxy S10 mit drahtloser Injektion](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 für Android)](https://github.com/chrisk44/Hijacker)
{{#include ../../banners/hacktricks-training.md}}