NexMon 모니터 모드 및 패킷 주입 활성화 (Broadcom 칩)

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

개요

대부분의 최신 Android 전화는 802.11 모니터 모드나 프레임 주입 기능 없이 출하되는 Broadcom/Cypress Wi-Fi 칩셋을 내장하고 있습니다. 오픈 소스 NexMon 프레임워크는 이러한 기능을 추가하기 위해 독점 펌웨어를 패치하고 이를 공유 라이브러리(libnexmon.so)와 CLI 도우미(nexutil)를 통해 노출합니다. 이 라이브러리를 기본 Wi-Fi 드라이버에 미리 로드함으로써, 루팅된 장치는 원시 802.11 트래픽을 캡처하고 임의의 프레임을 주입할 수 있습니다 – 외부 USB 어댑터가 필요하지 않습니다.

이 페이지는 완전히 패치된 삼성 갤럭시 S10 (BCM4375B1)을 예로 들어 빠른 워크플로우를 문서화합니다. 사용되는 항목은 다음과 같습니다:

  • 패치된 펌웨어 + libnexmon.so를 포함하는 NexMon Magisk 모듈
  • 모니터 모드 전환을 자동화하는 Hijacker Android 애플리케이션
  • 내부 인터페이스에 대해 클래식 무선 도구(aircrack-ng, wifite, mdk4 …)를 직접 실행하기 위한 선택적 Kali NetHunter chroot

같은 기술은 공개적으로 사용 가능한 NexMon 패치가 있는 모든 핸드셋(픽셀 1, 넥서스 6P, 갤럭시 S7/S8 등)에 적용됩니다.


전제 조건

  • 지원되는 Broadcom/Cypress 칩셋이 장착된 Android 핸드셋 (예: BCM4358/59/43596/4375B1)
  • Magisk ≥ 24로 루팅
  • BusyBox (대부분의 ROM/NetHunter에 이미 포함되어 있음)
  • NexMon Magisk ZIP 또는 다음을 제공하는 자체 컴파일된 패치:
  • /system/lib*/libnexmon.so
  • /system/xbin/nexutil
  • Hijacker ≥ 1.7 (arm/arm64) – https://github.com/chrisk44/Hijacker
  • (선택 사항) 무선 도구를 실행할 Linux chroot인 Kali NetHunter 또는 기타

NexMon 패치 플래싱 (Magisk)

  1. 정확한 장치/펌웨어에 대한 ZIP을 다운로드합니다 (예: nexmon-s10.zip).
  2. Magisk를 열고 -> 모듈 -> 저장소에서 설치 -> ZIP 선택 후 재부팅합니다. 모듈은 libnexmon.so/data/adb/modules/<module>/lib*/에 복사하고 SELinux 레이블이 올바른지 확인합니다.
  3. 설치 확인:
bash
ls -lZ $(find / -name libnexmon.so 2>/dev/null)
sha1sum $(which nexutil)

Hijacker 구성

Hijacker는 airodump, wifite 등을 실행하기 전에 모니터 모드를 자동으로 전환할 수 있습니다. 설정 -> 고급에서 다음 항목을 추가합니다 (모듈이 다를 경우 라이브러리 경로를 수정하십시오):

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

“Start monitor mode on airodump start”를 활성화하여 모든 Hijacker 스캔이 기본 모니터 모드(wlan0 대신 wlan0mon)에서 발생하도록 합니다.

Hijacker가 시작 시 오류를 표시하면, 공유 저장소에 필요한 디렉토리를 생성하고 앱을 다시 엽니다:

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

nexutil 플래그는 무엇을 의미하나요?

  • -s0x613 펌웨어 변수 0x613 (FCAP_FRAME_INJECTION)을 1로 설정 (임의 프레임의 TX 활성화).
  • -i 인터페이스를 모니터 모드로 설정 (radiotap 헤더가 앞에 추가됨).
  • -v2 상세 레벨 설정; 2는 확인 및 펌웨어 버전을 출력.
  • -m0 관리 모드 복원 (disable 명령에서 사용됨).

Enable monitor mode를 실행한 후 인터페이스가 모니터 상태에 있어야 하며, 다음을 사용하여 원시 프레임을 캡처할 수 있어야 합니다:

bash
airodump-ng --band abg wlan0

수동 원라이너 (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

만약 수동 스니핑만 필요하다면 -s0x613 플래그를 생략하세요.


Kali NetHunter / chroot 내에서 libnexmon 사용하기

Kali의 기본 사용자 공간 도구는 NexMon을 인식하지 않지만, LD_PRELOAD를 통해 강제로 사용할 수 있습니다:

  1. 미리 빌드된 공유 객체를 chroot로 복사합니다:
bash
cp /sdcard/Download/kalilibnexmon.so <chroot>/lib/
  1. Android 호스트에서 모니터 모드를 활성화합니다 (위의 명령어 또는 Hijacker를 통해).
  2. Kali 내에서 프리로드와 함께 무선 도구를 실행합니다:
bash
sudo su
export LD_PRELOAD=/lib/kalilibnexmon.so
wifite -i wlan0        # 또는 aircrack-ng, mdk4 …
  1. 완료되면 Android에서 일반적으로 모니터 모드를 비활성화합니다.

펌웨어가 이미 radiotap 주입을 처리하기 때문에, 사용자 공간 도구는 외부 Atheros 어댑터와 동일하게 작동합니다.


가능한 일반적인 공격

모니터 + TX가 활성화되면 다음을 수행할 수 있습니다:

  • wifite, hcxdumptool, airodump-ng로 WPA(2/3-SAE) 핸드쉐이크 또는 PMKID 캡처.
  • 클라이언트가 재연결하도록 강제하기 위해 비인증/비연결 프레임 주입.
  • mdk4, aireplay-ng, Scapy 등을 사용하여 임의의 관리/데이터 프레임 생성.
  • 휴대폰에서 직접 악성 AP를 구축하거나 KARMA/MANA 공격 수행.

Galaxy S10의 성능은 외부 USB NIC와 비슷합니다 (~20 dBm TX, 2-3 M pps RX).


문제 해결

  • Device or resource busy – 모니터 모드를 활성화하기 전에 Android Wi-Fi 서비스가 비활성화되어 있는지 확인하세요 (svc wifi disable).
  • nexutil: ioctl(PRIV_MAGIC) failed – 라이브러리가 미리 로드되지 않았습니다; LD_PRELOAD 경로를 다시 확인하세요.
  • 프레임 주입은 작동하지만 패킷이 캡처되지 않음 – 일부 ROM은 채널을 하드 블록합니다; nexutil -c <channel> 또는 iwconfig wlan0 channel <n>을 시도하세요.
  • SELinux가 라이브러리를 차단함 – 장치를 Permissive로 설정하거나 모듈 컨텍스트를 수정하세요: chcon u:object_r:system_lib_file:s0 libnexmon.so.

참고 문헌

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기