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
# Włącz tryb monitorowania NexMon i wstrzykiwanie pakietów na Androidzie (układy Broadcom)
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
## 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](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/
|
||
```
|
||
2. Włącz tryb monitorowania z **gospodarza Android** (polecenie powyżej lub przez Hijacker).
|
||
3. 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 …
|
||
```
|
||
4. 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
|
||
* [Hijacker na Samsung Galaxy S10 z wstrzykiwaniem bezprzewodowym](https://forums.kali.org/t/hijacker-on-the-samsung-galaxy-s10-with-wireless-injection/10305)
|
||
* [NexMon – framework do patchowania oprogramowania układowego](https://github.com/seemoo-lab/nexmon)
|
||
* [Hijacker (interfejs graficzny aircrack-ng dla Androida)](https://github.com/chrisk44/Hijacker)
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|