mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
129 lines
6.4 KiB
Markdown
129 lines
6.4 KiB
Markdown
# 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}}
|