Włącz tryb monitorowania NexMon i wstrzykiwanie pakietów na Androidzie (układy Broadcom)

Reading time: 6 minutes

tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks

Przegląd

Większość nowoczesnych telefonów z Androidem zawiera układ Wi-Fi Broadcom/Cypress, który jest dostarczany bez trybu monitorowania 802.11 lub możliwości wstrzykiwania ramek. Framework open-source NexMon łata zastrzeżone oprogramowanie układowe, aby dodać te funkcje i udostępnia je za pośrednictwem biblioteki współdzielonej (libnexmon.so) oraz pomocnika CLI (nexutil). Poprzez wstępne załadowanie tej biblioteki do standardowego sterownika Wi-Fi, zrootowane urządzenie może przechwytywać surowy ruch 802.11 i wstrzykiwać dowolne ramki – eliminując potrzebę zewnętrznego adaptera USB.

Ta strona dokumentuje szybki proces roboczy, który wykorzystuje w pełni załatany Samsung Galaxy S10 (BCM4375B1) jako przykład, używając:

  • Moduł NexMon Magisk zawierający załatane oprogramowanie układowe + libnexmon.so
  • Aplikacja Hijacker na Androida do automatyzacji przełączania trybu monitorowania
  • Opcjonalnie Kali NetHunter chroot do uruchamiania klasycznych narzędzi bezprzewodowych (aircrack-ng, wifite, mdk4 …) bezpośrednio na wewnętrznym interfejsie

Ta sama technika ma zastosowanie do każdego telefonu, który ma publicznie dostępny łata NexMon (Pixel 1, Nexus 6P, Galaxy S7/S8 itp.).


Wymagania wstępne

  • Telefon z Androidem z obsługiwanym układem Broadcom/Cypress (np. BCM4358/59/43596/4375B1)
  • Root z Magisk ≥ 24
  • BusyBox (większość ROM-ów/NetHunter już go zawiera)
  • NexMon Magisk ZIP lub samodzielnie skompilowana łatka zapewniająca:
  • /system/lib*/libnexmon.so
  • /system/xbin/nexutil
  • Hijacker ≥ 1.7 (arm/arm64) – https://github.com/chrisk44/Hijacker
  • (Opcjonalnie) Kali NetHunter lub dowolny Linux chroot, w którym zamierzasz uruchomić narzędzia bezprzewodowe

Flashowanie łaty NexMon (Magisk)

  1. Pobierz ZIP dla swojego dokładnego urządzenia/oprogramowania (przykład: nexmon-s10.zip).
  2. Otwórz Magisk -> Moduły -> Zainstaluj z pamięci -> wybierz ZIP i uruchom ponownie. Moduł kopiuje libnexmon.so do /data/adb/modules/<module>/lib*/ i zapewnia, że etykiety SELinux są poprawne.
  3. Zweryfikuj instalację:
bash
ls -lZ $(find / -name libnexmon.so 2>/dev/null)
sha1sum $(which nexutil)

Konfigurowanie Hijacker

Hijacker może automatycznie przełączać tryb monitorowania przed uruchomieniem airodump, wifite itp. W Ustawienia -> Zaawansowane dodaj następujące wpisy (edytuj ścieżkę do biblioteki, jeśli twój moduł się różni):

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

Włącz „Rozpocznij tryb monitorowania przy starcie airodump”, aby każde skanowanie Hijacker odbywało się w natywnym trybie monitorowania (wlan0 zamiast wlan0mon).

Jeśli Hijacker wyświetla błędy przy uruchomieniu, utwórz wymaganą katalog na wspólnej pamięci i ponownie otwórz aplikację:

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

Co oznaczają te flagi nexutil?

  • -s0x613 Zapisz zmienną firmware 0x613 (FCAP_FRAME_INJECTION) → 1 (włącz TX dowolnych ramek).
  • -i Ustaw interfejs w trybie monitorowania (nagłówek radiotap zostanie dodany).
  • -v2 Ustaw poziom szczegółowości; 2 drukuje potwierdzenie i wersję firmware.
  • -m0 Przywróć tryb zarządzany (używany w poleceniu disable).

Po uruchomieniu Włącz tryb monitorowania powinieneś zobaczyć interfejs w stanie monitorowania i być w stanie przechwytywać surowe ramki za pomocą:

bash
airodump-ng --band abg wlan0

Ręczny one-liner (bez Hijackera)

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

Jeśli potrzebujesz tylko pasywnego sniffingu, pomiń flagę -s0x613.


Używanie libnexmon w Kali NetHunter / chroot

Standardowe narzędzia użytkownika w Kali nie znają NexMon, ale możesz zmusić je do jego użycia za pomocą LD_PRELOAD:

  1. Skopiuj wstępnie zbudowany obiekt współdzielony do chroot:
bash
cp /sdcard/Download/kalilibnexmon.so <chroot>/lib/
  1. Włącz tryb monitorowania z gospodarza Android (polecenie powyżej lub przez Hijacker).
  2. Uruchom dowolne narzędzie bezprzewodowe w Kali z preload:
bash
sudo su
export LD_PRELOAD=/lib/kalilibnexmon.so
wifite -i wlan0        # lub aircrack-ng, mdk4 …
  1. Po zakończeniu, wyłącz tryb monitorowania jak zwykle na Androidzie.

Ponieważ oprogramowanie układowe już obsługuje wstrzykiwanie radiotap, narzędzia użytkownika zachowują się tak samo jak na zewnętrznym adapterze Atheros.


Typowe możliwe ataki

Gdy monitor + TX jest aktywny, możesz:

  • Przechwytywać handshake WPA(2/3-SAE) lub PMKID za pomocą wifite, hcxdumptool, airodump-ng.
  • Wstrzykiwać ramki deautoryzacji / dezasocjacji, aby zmusić klientów do ponownego połączenia.
  • Tworzyć dowolne ramki zarządzające/dane za pomocą mdk4, aireplay-ng, Scapy itp.
  • Budować fałszywe AP lub przeprowadzać ataki KARMA/MANA bezpośrednio z telefonu.

Wydajność na Galaxy S10 jest porównywalna z zewnętrznymi NIC USB (~20 dBm TX, 2-3 M pps RX).


Rozwiązywanie problemów

  • Device or resource busy – upewnij się, że usługa Wi-Fi Android jest wyłączona (svc wifi disable) przed włączeniem trybu monitorowania.
  • nexutil: ioctl(PRIV_MAGIC) failed – biblioteka nie jest wstępnie załadowana; sprawdź ścieżkę LD_PRELOAD.
  • Wstrzykiwanie ramek działa, ale nie przechwycono żadnych pakietów – niektóre ROM-y blokują kanały; spróbuj nexutil -c <channel> lub iwconfig wlan0 channel <n>.
  • SELinux blokuje bibliotekę – ustaw urządzenie na Permissive lub napraw kontekst modułu: chcon u:object_r:system_lib_file:s0 libnexmon.so.

Odniesienia

tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks