Translated ['src/generic-methodologies-and-resources/pentesting-wifi/REA

This commit is contained in:
Translator 2025-07-13 18:12:08 +00:00
parent 454e787559
commit b06496db73
3 changed files with 185 additions and 50 deletions

View File

@ -25,6 +25,7 @@
- [Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks](generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
- [Spoofing SSDP and UPnP Devices with EvilSSDP](generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)
- [Pentesting Wifi](generic-methodologies-and-resources/pentesting-wifi/README.md)
- [Enable Nexmon Monitor And Injection On Android](generic-methodologies-and-resources/pentesting-wifi/enable-nexmon-monitor-and-injection-on-android.md)
- [Evil Twin EAP-TLS](generic-methodologies-and-resources/pentesting-wifi/evil-twin-eap-tls.md)
- [Phishing Methodology](generic-methodologies-and-resources/phishing-methodology/README.md)
- [Clone a Website](generic-methodologies-and-resources/phishing-methodology/clone-a-website.md)

View File

@ -19,6 +19,12 @@ iwlist wlan0 scan #Scan available wifis
```
## 도구
### Hijacker & NexMon (안드로이드 내부 Wi-Fi)
{{#ref}}
enable-nexmon-monitor-and-injection-on-android.md
{{#endref}}
### EAPHammer
```
git clone https://github.com/s0lst1c3/eaphammer.git
@ -61,8 +67,8 @@ sudo python setup.py install # Install any dependencies
- WPA-PSK인 경우
- WPS인 경우: Pixie dust 공격 및 브루트포스 공격 (브루트포스 공격은 시간이 오래 걸릴 수 있으니 주의하세요). null PIN 또는 데이터베이스/생성된 PIN을 시도하지 않습니다.
- AP에서 PMKID를 캡처하여 크랙 시도
- AP의 클라이언트를 비인증하여 핸드이크 캡처 시도
- PMKID 또는 핸드이크가 있는 경우, 상위 5000개의 비밀번호를 사용하여 브루트포스 시도.
- AP의 클라이언트를 비인증하여 핸드이크 캡처 시도
- PMKID 또는 핸드이크가 있는 경우, 상위 5000개의 비밀번호를 사용하여 브루트포스 시도.
## 공격 요약
@ -77,7 +83,7 @@ sudo python setup.py install # Install any dependencies
- **WPA-PSK**
- **WPS** 핀 "브루트포스"
- **WPA PMKID** 브루트포스
- \[DoS +] **WPA 핸드이크** 캡처 + 크래킹
- \[DoS +] **WPA 핸드이크** 캡처 + 크래킹
- **WPA-MGT**
- **사용자 이름 캡처**
- **브루트포스** 자격 증명
@ -87,7 +93,7 @@ sudo python setup.py install # Install any dependencies
- **WPA-MGT** -- 회사 자격 증명 캡처에 유용
- **KARMA, MANA**, **Loud MANA**, **Known beacon**
- **+ 오픈** -- 캡티브 포털 자격 증명 캡처 및/또는 LAN 공격 수행에 유용
- **+ WPA** -- WPA 핸드이크 캡처에 유용
- **+ WPA** -- WPA 핸드이크 캡처에 유용
## DOS
@ -95,7 +101,7 @@ sudo python setup.py install # Install any dependencies
**설명은** [**여기**:](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**.**
**비인증** 공격은 Wi-Fi 해킹에서 널리 사용되는 방법으로, "관리" 프레임을 위조하여 **장치를 네트워크에서 강제로 연결 끊기**는 것입니다. 이 암호화되지 않은 패킷은 클라이언트가 합법적인 네트워크에서 온 것처럼 속여, 공격자가 크랙 목적으로 WPA 핸드이크를 수집하거나 네트워크 연결을 지속적으로 방해할 수 있게 합니다. 이 간단한 전술은 널리 사용되며 네트워크 보안에 중대한 영향을 미칩니다.
**비인증** 공격은 Wi-Fi 해킹에서 널리 사용되는 방법으로, "관리" 프레임을 위조하여 **장치를 네트워크에서 강제로 연결 끊기**는 것입니다. 이 암호화되지 않은 패킷은 클라이언트가 합법적인 네트워크에서 온 것처럼 속여, 공격자가 크랙 목적으로 WPA 핸드이크를 수집하거나 네트워크 연결을 지속적으로 방해할 수 있게 합니다. 이 전술은 그 단순함으로 인해 경각심을 불러일으키며, 네트워크 보안에 중대한 영향을 미칩니다.
**Aireplay-ng를 사용한 비인증**
```
@ -150,7 +156,7 @@ Access Points (APs)를 탐색하여 SSID가 제대로 공개되었는지 확인
**ATTACK MODE m: Michael Countermeasures Exploitation**
무작위 또는 중복 패킷을 다양한 QoS 큐에 전송하면 **TKIP APs**에서 Michael Countermeasures가 작동하여 AP가 1분 동안 중단될 수 있습니다. 이 방법은 효율적인 **DoS** (서비스 거부) 공격 전술입니다.
무작위 또는 중복 패킷을 다양한 QoS 큐에 전송하면 **TKIP APs**에서 Michael Countermeasures가 트리거되어 AP가 1분 동안 중단될 수 있습니다. 이 방법은 효율적인 **DoS** (서비스 거부) 공격 전술입니다.
```bash
# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
@ -163,9 +169,9 @@ AP에 **EAPOL 시작 프레임**을 플러딩하면 **가짜 세션**이 생성
# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
```
**ATTACK MODE s: IEEE 802.11s 메 네트워크에 대한 공격**
**ATTACK MODE s: IEEE 802.11s 메 네트워크에 대한 공격**
네트워크에서 링크 관리 및 라우팅에 대한 다양한 공격.
네트워크에서 링크 관리 및 라우팅에 대한 다양한 공격.
**ATTACK MODE w: WIDS 혼란**
@ -176,7 +182,7 @@ mkd4 -e <SSID> -c <channel> [-z]
```
**ATTACK MODE f: Packet Fuzzer**
다양한 패킷 소스와 패킷 조작을 위한 포괄적인 수정자 세트를 갖춘 패킷 퍼저입니다.
패킷 조작을 위한 다양한 패킷 소스와 포괄적인 수정자 세트를 갖춘 패킷 퍼저입니다.
### **Airggedon**
@ -195,7 +201,7 @@ WPS (Wi-Fi Protected Setup)는 장치를 라우터에 연결하는 과정을 간
- **Reaver**는 WPS에 대한 강력하고 실용적인 공격을 위해 설계되었으며, 다양한 액세스 포인트와 WPS 구현에 대해 테스트되었습니다.
- **Bully**는 C로 작성된 WPS 무차별 대입 공격의 **새로운 구현**입니다. 원래 Reaver 코드에 비해 몇 가지 장점이 있습니다: 의존성 감소, 메모리 및 CPU 성능 향상, 엔디안 처리의 정확성, 그리고 더 강력한 옵션 세트.
이 공격은 **WPS PIN의 취약성**을 이용하며, 특히 첫 네 자리 숫자의 노출과 마지막 숫자의 체크섬 역할이 무차별 대입 공격을 용이하게 합니다. 그러나 공격자의 MAC 주소를 차단하는 것과 같은 무차별 대입 공격에 대한 방어는 공격을 계속하기 위해 **MAC 주소 회전**을 요구합니다.
이 공격은 **WPS PIN의 취약성**을 이용하며, 특히 첫 네 자리 숫자의 노출과 마지막 자리 숫자의 체크섬 역할이 무차별 대입 공격을 용이하게 합니다. 그러나 공격자의 **MAC 주소 차단**과 같은 무차별 대입 공격에 대한 방어는 공격을 계속하기 위해 **MAC 주소 회전**을 요구합니다.
Bully 또는 Reaver와 같은 도구로 WPS PIN을 얻으면 공격자는 WPA/WPA2 PSK를 유추할 수 있어 **지속적인 네트워크 접근**을 보장합니다.
```bash
@ -234,11 +240,11 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
![](<../../images/image (219).png>)
- 5와 6은 **사용자 정의 PIN**(있는 경우)을 시도할 수 있습니다.
- 7과 8은 **Pixie Dust 공격**을 수행합니다.
- 13은 **NULL PIN**을 테스트할 수 있습니다.
- 11과 12는 **선택한 AP와 관련된 PIN을 사용 가능한 데이터베이스에서 수집하고** **가능한 PIN을 생성**합니다: ComputePIN, EasyBox 및 선택적으로 Arcadyan(추천, 왜 안 되겠습니까?).
- 9와 10은 **모든 가능한 PIN을 테스트**합니다.
- 5와 6은 **사용자 정의 PIN**을 시도할 수 있게 해줍니다 (있다면)
- 7과 8은 **Pixie Dust 공격**을 수행합니다
- 13은 **NULL PIN**을 테스트할 수 있게 해줍니다
- 11과 12는 **선택한 AP와 관련된 PIN을 사용 가능한 데이터베이스에서 수집하고** **가능한 PIN을 생성**합니다: ComputePIN, EasyBox 및 선택적으로 Arcadyan (추천, 왜 안되겠어요?)
- 9와 10은 **모든 가능한 PIN을 테스트**합니다
## **WEP**
@ -254,7 +260,7 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
### PMKID
2018년, **hashcat** [발표했습니다](https://hashcat.net/forum/thread-7717.html) 새로운 공격 방법을, 이는 **단일 패킷**만 필요하고 대상 AP에 클라이언트가 연결될 필요가 없다는 점에서 독특합니다—공격자와 AP 간의 상호작용만 필요합니다.
2018년, **hashcat** [revealed](https://hashcat.net/forum/thread-7717.html) 새로운 공격 방법을 공개했습니다. 이 방법은 **하나의 패킷**만 필요하고, 클라이언트가 대상 AP에 연결될 필요가 없다는 점에서 독특합니다—공격자와 AP 간의 상호작용만 필요합니다.
많은 현대 라우터는 연결 중에 **첫 번째 EAPOL** 프레임에 `Robust Security Network`로 알려진 **선택적 필드**를 추가합니다. 여기에는 `PMKID`가 포함됩니다.
@ -262,7 +268,7 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
```bash
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
```
"PMK Name"이 일정하다는 점을 감안할 때, AP와 스테이션의 BSSID를 알고 있으며, `PMK`가 전체 4-way handshake의 것과 동일하다면, **hashcat**은 이 정보를 사용하여 PSK를 크랙하고 패스프레이즈를 복구할 수 있습니다!
"PMK Name"이 일정하다는 점을 감안할 때, AP와 스테이션의 BSSID를 알고 있으며, `PMK`가 전체 4-way 핸드쉐이크의 것과 동일하다면, **hashcat**은 이 정보를 사용하여 PSK를 크랙하고 패스프레이즈를 복구할 수 있습니다!
이 정보를 **수집**하고 비밀번호를 로컬에서 **브루트포스**하려면 다음을 수행할 수 있습니다:
```bash
@ -283,9 +289,9 @@ hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
```
올바른 해시의 형식은 **4부분**으로 구성되어 있습니다. 예: `4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838` 만약 당신의 해시가 **오직** **3부분**만 포함하고 있다면, 이는 **유효하지 않습니다** (PMKID 캡처가 유효하지 않았습니다).
올바른 해시의 형식은 **4부분**으로 구성되어 있습니다. 예: `4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838` 만약 당신의 해시가 **단지** **3부분**만 포함하고 있다면, 이는 **유효하지 않습니다** (PMKID 캡처가 유효하지 않았습니다).
`hcxdumptool`**핸드쉐이크도 캡처합니다** (이와 같은 것이 나타날 것입니다: **`MP:M1M2 RC:63258 EAPOLTIME:17091`**). 당신은 `cap2hccapx`를 사용하여 **핸드쉐이크**를 **hashcat**/**john** 형식으로 **변환**할 수 있습니다.
`hcxdumptool`**핸드쉐이크**도 **캡처**합니다 (이와 같은 것이 나타날 수 있습니다: **`MP:M1M2 RC:63258 EAPOLTIME:17091`**). 당신은 `cap2hccapx`를 사용하여 **핸드쉐이크**를 **hashcat**/**john** 형식으로 **변환**할 수 있습니다.
```bash
tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
@ -341,7 +347,7 @@ pyrit -r psk-01.cap analyze
```
## **WPA Enterprise (MGT)**
**기업 WiFi 설정에서는 다양한 인증 방법을 접하게 됩니다.** 각 방법은 서로 다른 보안 수준과 관리 기능을 제공합니다. `airodump-ng`와 같은 도구를 사용하여 네트워크 트래픽을 검사할 때 이러한 인증 유형에 대한 식별자를 발견할 수 있습니다. 일반적인 방법으로는:
**기업 WiFi 설정에서는 다양한 인증 방법을 접하게 됩니다.** 각 방법은 서로 다른 보안 수준과 관리 기능을 제공합니다. `airodump-ng`와 같은 도구를 사용하여 네트워크 트래픽을 검사할 때 이러한 인증 유형에 대한 식별자를 발견할 수 있습니다. 일반적인 방법으로는 다음이 포함됩니다:
```
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
```
@ -352,17 +358,17 @@ pyrit -r psk-01.cap analyze
3. **EAP-TLS (Transport Layer Security)**:
- 인증을 위해 클라이언트 측 및 서버 측 인증서를 모두 사용하며, 통신을 보호하기 위해 사용자 기반 및 세션 기반 WEP 키를 동적으로 생성할 수 있습니다.
4. **EAP-TTLS (Tunneled Transport Layer Security)**:
- 암호화된 터널을 통해 상호 인증을 제공하며, 사용자별 및 세션별 동적 WEP 키를 파생하는 방법을 제공합니다. 서버 측 인증서만 필요하며, 클라이언트는 자격 증명을 사용합니다.
- 암호화된 터널을 통해 상호 인증을 제공하며, 사용자별 및 세션별 WEP 키를 동적으로 유도하는 방법을 제공합니다. 서버 측 인증서만 필요하며, 클라이언트는 자격 증명을 사용합니다.
5. **PEAP (Protected Extensible Authentication Protocol)**:
- EAP와 유사하게 보호된 통신을 위한 TLS 터널을 생성합니다. 터널이 제공하는 보호 덕분에 EAP 위에 더 약한 인증 프로토콜을 사용할 수 있습니다.
- **PEAP-MSCHAPv2**: 일반적으로 PEAP로 언급되며, 취약한 MSCHAPv2 챌린지/응답 메커니즘과 보호 TLS 터널을 결합합니다.
- **PEAP-EAP-TLS (또는 PEAP-TLS)**: EAP-TLS와 유사하지만 인증서 교환 전에 TLS 터널을 시작하여 추가 보안 계층을 제공합니다.
- **PEAP-EAP-TLS (또는 PEAP-TLS)**: EAP-TLS와 유사하지만 인증서 교환 전에 TLS 터널을 시작하여 추가적인 보안 계층을 제공합니다.
이 인증 방법에 대한 더 많은 정보는 [여기](https://en.wikipedia.org/wiki/Extensible_Authentication_Protocol)와 [여기](https://www.intel.com/content/www/us/en/support/articles/000006999/network-and-i-o/wireless-networking.html)에서 확인할 수 있습니다.
### Username Capture
[https://tools.ietf.org/html/rfc3748#page-27](https://tools.ietf.org/html/rfc3748#page-27)을 읽어보면 **EAP**를 사용하는 경우 **"Identity"** **메시지**가 **지원되어야** 하며, **사용자 이름**이 **"Response Identity"** 메시지에서 **명확하게** 전송된다고 합니다.
[https://tools.ietf.org/html/rfc3748#page-27](https://tools.ietf.org/html/rfc3748#page-27)을 읽어보면 **EAP**를 사용하는 경우 **"Identity"** **메시지**가 **지원되어야** 하며, **사용자 이름**이 **"Response Identity"** 메시지에서 **명확하게** 전송된다는 것을 알 수 있습니다.
가장 안전한 인증 방법 중 하나인 **PEAP-EAP-TLS**를 사용하더라도 **EAP 프로토콜에서 전송된 사용자 이름을 캡처**할 수 있습니다. 이를 위해 **인증 통신을 캡처**하고 (채널 내에서 `airodump-ng`를 시작하고 동일한 인터페이스에서 `wireshark`를 실행) 패킷을 `eapol`로 필터링합니다.\
"**Response, Identity**" 패킷 내에서 클라이언트의 **사용자 이름**이 나타납니다.
@ -374,22 +380,22 @@ pyrit -r psk-01.cap analyze
신원 숨기기는 EAP-PEAP와 EAP-TTLS 모두에서 지원됩니다. WiFi 네트워크의 맥락에서 EAP-Identity 요청은 일반적으로 연결 과정 중에 액세스 포인트(AP)에 의해 시작됩니다. 사용자 익명성을 보호하기 위해, 사용자의 장치에서 EAP 클라이언트의 응답은 초기 RADIUS 서버가 요청을 처리하는 데 필요한 필수 정보만 포함합니다. 이 개념은 다음 시나리오를 통해 설명됩니다:
- EAP-Identity = anonymous
- 이 시나리오에서 모든 사용자는 사용자 식별자로 "anonymous"라는 가명을 사용합니다. 초기 RADIUS 서버는 EAP-PEAP 또는 EAP-TTLS 서버로 작동하며, PEAP 또는 TTLS 프로토콜의 서버 측을 관리합니다. 내부(보호된) 인증 방법은 로컬에서 처리되거나 원격(홈) RADIUS 서버에 위임됩니다.
- 이 시나리오에서 모든 사용자는 사용자 식별자로 가명 "anonymous"를 사용합니다. 초기 RADIUS 서버는 EAP-PEAP 또는 EAP-TTLS 서버로 작동하며, PEAP 또는 TTLS 프로토콜의 서버 측을 관리합니다. 내부(보호된) 인증 방법은 로컬에서 처리되거나 원격(홈) RADIUS 서버에 위임됩니다.
- EAP-Identity = anonymous@realm_x
- 이 상황에서 서로 다른 영역의 사용자 자신의 영역을 나타내면서 신원을 숨깁니다. 이를 통해 초기 RADIUS 서버는 EAP-PEAP 또는 EAP-TTLS 요청을 해당 영역의 RADIUS 서버로 프록시할 수 있으며, 이 서버는 PEAP 또는 TTLS 서버로 작동합니다. 초기 RADIUS 서버는 RADIUS 릴레이 노드로만 작동합니다.
- 이 상황에서 서로 다른 영역의 사용자들은 자신의 영역을 나타내면서 신원을 숨깁니다. 이를 통해 초기 RADIUS 서버는 EAP-PEAP 또는 EAP-TTLS 요청을 해당 영역의 RADIUS 서버로 프록시할 수 있으며, 이 서버는 PEAP 또는 TTLS 서버로 작동합니다. 초기 RADIUS 서버는 RADIUS 릴레이 노드로만 작동합니다.
- 또는 초기 RADIUS 서버가 EAP-PEAP 또는 EAP-TTLS 서버로 작동하고 보호된 인증 방법을 처리하거나 다른 서버로 전달할 수 있습니다. 이 옵션은 다양한 영역에 대해 별도의 정책 구성을 용이하게 합니다.
EAP-PEAP에서는 PEAP 서버와 PEAP 클라이언트 간에 TLS 터널이 설정되면, PEAP 서버가 EAP-Identity 요청을 시작하고 이를 TLS 터널을 통해 전송합니다. 클라이언트는 이 두 번째 EAP-Identity 요청에 대해 사용자의 실제 신원을 포함한 EAP-Identity 응답을 암호화된 터널을 통해 전송합니다. 이 접근 방식은 802.11 트래픽을 엿보는 누구에게도 사용자의 실제 신원을 드러내는 것을 효과적으로 방지합니다.
EAP-PEAP에서는 PEAP 서버와 PEAP 클라이언트 간에 TLS 터널이 설정된 후, PEAP 서버가 EAP-Identity 요청을 시작하고 이를 TLS 터널을 통해 전송합니다. 클라이언트는 이 두 번째 EAP-Identity 요청에 대해 사용자의 실제 신원을 포함한 EAP-Identity 응답을 암호화된 터널을 통해 전송합니다. 이 접근 방식은 802.11 트래픽을 엿보는 누구에게도 사용자의 실제 신원을 드러내지 않도록 효과적으로 방지합니다.
EAP-TTLS는 약간 다른 절차를 따릅니다. EAP-TTLS에서는 클라이언트가 일반적으로 PAP 또는 CHAP을 사용하여 TLS 터널로 보호된 인증을 수행합니다. 이 경우 클라이언트는 터널 설정 후 전송 초기 TLS 메시지에 User-Name 속성과 Password 또는 CHAP-Password 속성을 포함합니다.
EAP-TTLS는 약간 다른 절차를 따릅니다. EAP-TTLS에서는 클라이언트가 일반적으로 PAP 또는 CHAP을 사용하여 TLS 터널로 보호된 인증을 수행합니다. 이 경우 클라이언트는 터널 설정 후 전송되는 초기 TLS 메시지에 User-Name 속성과 Password 또는 CHAP-Password 속성을 포함합니다.
선택한 프로토콜에 관계없이, PEAP/TTLS 서버는 TLS 터널이 설정된 후 사용자의 실제 신원을 알게 됩니다. 실제 신원은 user@realm 또는 단순히 user로 표현될 수 있습니다. PEAP/TTLS 서버가 사용자 인증을 담당하는 경우, 이제 사용자의 신원을 보유하고 TLS 터널로 보호된 인증 방법을 진행합니다. 또는 PEAP/TTLS 서버가 사용자의 홈 RADIUS 서버로 새로운 RADIUS 요청을 전달할 수 있습니다. 이 새로운 RADIUS 요청은 PEAP 또는 TTLS 프로토콜 계층을 생략합니다. 보호된 인증 방법이 EAP인 경우, 내부 EAP 메시지는 EAP-PEAP 또는 EAP-TTLS 래퍼 없이 홈 RADIUS 서버로 전송됩니다. 나가는 RADIUS 메시지의 User-Name 속성에는 사용자의 실제 신원이 포함되어 있으며, 들어오는 RADIUS 요청의 익명 User-Name을 대체합니다. 보호된 인증 방법이 PAP 또는 CHAP(오직 TTLS에서만 지원)인 경우, TLS 페이로드에서 추출된 User-Name 및 기타 인증 속성이 나가는 RADIUS 메시지에 대체되어 들어오는 RADIUS 요청에서 발견된 익명 User-Name 및 TTLS EAP-Message 속성을 대체합니다.
자세한 내용은 [여기](https://www.interlinknetworks.com/app_notes/eap-peap.htm)에서 확인하세요.
더 많은 정보는 [여기](https://www.interlinknetworks.com/app_notes/eap-peap.htm)에서 확인하세요.
### EAP-Bruteforce (password spray)
클라이언트가 **사용자 이름과 비밀번호**를 사용할 것으로 예상되는 경우(**EAP-TLS는 이 경우 유효하지 않음**), **사용자 이름**(다음 부분 참조)과 **비밀번호** 목록을 얻으려고 시도하고 [**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)**를 사용하여 액세스를 **브루트포스**할 수 있습니다.**
클라이언트가 **사용자 이름과 비밀번호**를 사용할 것으로 예상되는 경우 (**EAP-TLS는 이 경우 유효하지 않음**), **사용자 이름**(다음 부분 참조)과 **비밀번호** 목록을 얻으려고 시도하고 [**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)**를 사용하여 액세스를 **브루트포스**할 수 있습니다.**
```bash
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
```
@ -416,14 +422,14 @@ EAP-TTLS는 약간 다른 절차를 따릅니다. EAP-TTLS에서는 클라이언
### 수동 스캔
- AP는 주기적으로 비콘 프레임을 방송하여 자신의 존재와 기능을 알리며, AP의 ESSID도 포함됩니다(방송이 비활성화되지 않은 경우).
- AP는 주기적으로 비콘 프레임을 방송하여 자신의 존재와 기능을 알리며, AP의 ESSID를 포함하지만 방송이 비활성화된 경우는 제외됩니다.
- 수동 스캔 중에 스테이션은 비콘 프레임을 수신합니다. 비콘의 ESSID가 스테이션의 PNL에 있는 항목과 일치하면, 스테이션은 해당 AP에 자동으로 연결될 수 있습니다.
- 장치의 PNL에 대한 지식은 알려진 네트워크의 ESSID를 모방하여 장치를 악성 AP에 연결하도록 속일 수 있는 잠재적 착취를 허용합니다.
- 장치의 PNL에 대한 지식은 알려진 네트워크의 ESSID를 모방하여 장치를 속여 악성 AP에 연결하도록 할 수 있는 잠재적 착취를 허용합니다.
### 능동 프로빙
- 능동 프로빙은 스테이션이 근처 AP와 그 특성을 발견하기 위해 프로브 요청을 보내는 것니다.
- 지향 프로브 요청은 특정 ESSID를 목표로 하여, 특정 네트워크가 범위 내에 있는지 감지하는 데 도움을 줍니다. 이는 숨겨진 네트워크일지라도 가능합니다.
- 능동 프로빙은 스테이션이 근처 AP와 그 특성을 발견하기 위해 프로브 요청을 보내는 것을 포함합니다.
- 지향 프로브 요청은 특정 ESSID를 목표로 하여, 숨겨진 네트워크일지라도 특정 네트워크가 범위 내에 있는지 감지하는 데 도움을 줍니다.
- 브로드캐스트 프로브 요청은 SSID 필드가 비어 있으며, 모든 근처 AP에 전송되어 스테이션이 PNL 내용을 공개하지 않고도 선호 네트워크를 확인할 수 있게 합니다.
## 인터넷으로의 리디렉션이 있는 간단한 AP
@ -453,7 +459,7 @@ listen-address=127.0.0.1
ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
```
그리고 **dnsmasq**를 시작합니다:
그리고 **dnsmasq**를 **시작**합니다:
```bash
dnsmasq -C dnsmasq.conf -d
```
@ -479,7 +485,7 @@ wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1
```
**불필요한 프로세스 중지** , **모니터 모드 설정** , 그리고 **hostapd 시작**:
**귀찮은 프로세스 중지** , **모니터 모드 설정** , 그리고 **hostapd 시작**:
```bash
airmon-ng check kill
iwconfig wlan0 mode monitor
@ -494,11 +500,11 @@ echo 1 > /proc/sys/net/ipv4/ip_forward
```
## Evil Twin
악성 쌍둥이 공격은 WiFi 클라이언트가 네트워크를 인식하는 방식을 이용하며, 주로 네트워크 이름(ESSID)에 의존하고 클라이언트에게 기본 스테이션(액세스 포인트)이 인증할 필요가 없습니다. 주요 사항은 다음과 같습니다:
악성 쌍둥이 공격은 WiFi 클라이언트가 네트워크를 인식하는 방식을 이용하며, 주로 네트워크 이름(ESSID)에 의존하고 기본 스테이션(액세스 포인트)이 클라이언트에 대해 인증할 필요가 없습니다. 주요 사항은 다음과 같습니다:
- **구별의 어려움**: 장치들은 동일한 ESSID와 암호화 유형을 공유하는 경우 합법적인 액세스 포인트와 악성 액세스 포인트를 구별하는 데 어려움을 겪습니다. 실제 네트워크는 종종 동일한 ESSID를 가진 여러 액세스 포인트를 사용하여 원활하게 범위를 확장합니다.
- **클라이언트 로밍 및 연결 조작**: 802.11 프로토콜은 장치가 동일한 ESS 내의 액세스 포인트 간에 로밍할 수 있도록 허용합니다. 공격자는 장치를 현재의 기본 스테이션에서 분리하고 악성 스테이션에 연결하도록 유도하여 이를 악용할 수 있습니다. 이는 더 강한 신호를 제공하거나 비인증 패킷이나 재밍과 같은 방법을 통해 합법적인 액세스 포인트와의 연결을 방해함으로써 달성할 수 있습니다.
- **실행의 어려움**: 여러 개의 잘 배치된 액세스 포인트가 있는 환경에서 악성 쌍둥이 공격을 성공적으로 실행하는 것은 어려울 수 있습니다. 단일 합법적인 액세스 포인트를 비인증하면 장치가 다른 합법적인 액세스 포인트에 연결되는 경우가 많으며, 공격자가 모든 인근 액세스 포인트를 비인증하거나 악성 액세스 포인트를 전략적으로 배치할 수 없는 한 그렇습니다.
- **실행의 어려움**: 여러 개의 잘 배치된 액세스 포인트가 있는 환경에서 악성 쌍둥이 공격을 성공적으로 실행하는 것은 어려울 수 있습니다. 단일 합법적인 액세스 포인트를 비인증하면 장치가 다른 합법적인 액세스 포인트에 연결되는 경우가 많으며, 공격자가 모든 인근 액세스 포인트를 비인증하거나 전략적으로 악성 액세스 포인트를 배치할 수 없는 한 그렇습니다.
아주 기본적인 Open Evil Twin(인터넷으로 트래픽을 라우팅할 수 있는 기능 없음)을 만들 수 있습니다:
```bash
@ -512,19 +518,19 @@ Airgeddon을 사용하는 경우: `Options: 5,6,7,8,9 (Evil Twin 공격 메뉴
![](<../../images/image (1088).png>)
기본적으로 PNL에 ESSID가 WPA로 보호되어 저장되어 있으면, 장치는 자동으로 Open evil Twin에 연결되지 않습니다. 실제 AP에 DoS 공격을 시도하고 사용자가 수동으로 Open evil twin에 연결하기를 바라거나, 실제 AP에 DoS 공격을 하고 WPA Evil Twin을 사용하여 핸드쉐이크를 캡처할 수 있습니다(이 방법을 사용하면 PSK를 알지 못하므로 피해자가 당신에게 연결할 수는 없지만, 핸드쉐이크를 캡처하고 이를 크랙하려고 시도할 수 있습니다).
기본적으로 PNL에 ESSID가 WPA로 보호되어 저장되어 있으면, 장치는 자동으로 Open evil Twin에 연결되지 않습니다. 실제 AP를 DoS 공격하여 사용자가 수동으로 Open evil twin에 연결하기를 바라거나, 실제 AP를 DoS 공격하고 WPA Evil Twin을 사용하여 핸드쉐이크를 캡처할 수 있습니다(이 방법을 사용하면 PSK를 알지 못하므로 피해자가 당신에게 연결할 수는 없지만, 핸드쉐이크를 캡처하고 이를 크랙하려고 시도할 수 있습니다).
_일부 OS 및 AV는 사용자가 Open 네트워크에 연결하는 것이 위험하다고 경고할 것입니다..._
### WPA/WPA2 Evil Twin
**WPA/2를 사용하여 Evil Twin을 생성할 수** 있으며, 장치가 WPA/2로 해당 SSID에 연결하도록 구성되어 있다면 연결을 시도할 것입니다. 어쨌든, **4-way-handshake를 완료하려면** 클라이언트가 사용할 **비밀번호**를 **알아야** 합니다. **모르면** **연결이 완료되지 않습니다.**
**WPA/2를 사용하여 Evil Twin을 생성할 수** 있으며, 장치가 WPA/2로 해당 SSID에 연결하도록 구성되어 있다면 연결을 시도할 것입니다. 어쨌든, **4-way-handshake를 완료하려면** 클라이언트가 사용할 **비밀번호**를 **알아야** 합니다. **모르면** **연결이 완료되지 않습니다.**
```bash
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
```
### Enterprise Evil Twin
이 공격을 이해하기 위해서는 먼저 [WPA Enterprise 설명](#wpa-enterprise-mgt)을 읽는 것을 추천합니다.
이 공격을 이해하기 위해서는 먼저 간단한 [WPA Enterprise 설명](#wpa-enterprise-mgt)을 읽는 것을 추천합니다.
**hostapd-wpe 사용하기**
@ -545,11 +551,11 @@ hostapd-wpe ./victim/victim.conf -s
# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds
```
기본적으로, EAPHammer는 이 인증 방법을 제공합니다 (평문 비밀번호를 얻기 위해 가장 먼저 GTC를 시도하고 그 다음에 더 강력한 인증 방법을 사용합니다):
기본적으로, EAPHammer는 이 인증 방법을 제공합니다 (평문 비밀번호를 얻기 위해 가장 먼저 시도하는 GTC에 주목하고, 그 다음 더 강력한 인증 방법을 사용합니다):
```
GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
```
이것은 긴 연결 시간을 피하기 위한 기본 방법론입니다. 그러나 인증 방법을 가장 약한 것부터 가장 강한 것까지 서버에 지정할 수도 있습니다:
이것은 긴 연결 시간을 피하기 위한 기본 방법론입니다. 그러나 인증 방법을 가장 약한 것부터 가장 강한 것까지 지정할 수도 있습니다:
```
--negotiate weakest
```
@ -573,9 +579,9 @@ _이 방법은 PEAP 연결에서 테스트되었지만 임의의 TLS 터널을
**hostapd-wpe**의 **구성**에서 _**dh_file**_이 포함된 줄을 **주석 처리**합니다(`dh_file=/etc/hostapd-wpe/certs/dh`에서 `#dh_file=/etc/hostapd-wpe/certs/dh`로 변경)\
이렇게 하면 `hostapd-wpe`**DH 대신 RSA를 사용하여 키를 교환**하므로 **서버의 개인 키를 알고 있으면** 나중에 트래픽을 **복호화**할 수 있습니다.
이제 수정된 구성으로 **`hostapd-wpe`**를 사용하여 **Evil Twin**을 시작합니다. 또한 Evil Twin 공격을 수행하는 **인터페이스**에서 **`wireshark`**를 시작합니다.
이제 수정된 구성으로 **`hostapd-wpe`**를 사용하여 **Evil Twin**을 시작합니다. 또한 **Evil Twin 공격을 수행하는 인터페이스에서 `wireshark`**를 시작합니다.
이제 또는 나중에(인증 시도가 몇 개 캡처된 후) `Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...`에서 wireshark에 개인 RSA 키를 추가할 수 있습니다.
이제 또는 나중에(인증 시도가 캡처된 후) `Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...`에서 wireshark에 개인 RSA 키를 추가할 수 있습니다.
새 항목을 추가하고 다음 값으로 양식을 채웁니다: **IP 주소 = any** -- **포트 = 0** -- **프로토콜 = data** -- **키 파일** (**키 파일을 선택**, 문제를 피하기 위해 **비밀번호로 보호되지 않은 키 파일**을 선택합니다).
@ -589,16 +595,16 @@ _이 방법은 PEAP 연결에서 테스트되었지만 임의의 TLS 터널을
### ESSID 및 MAC 블랙/화이트리스트
다양한 유형의 미디어 액세스 제어 필터 목록(MFACL)과 해당 모드 및 악성 액세스 포인트(AP)의 동작에 미치는 영향:
다양한 유형의 미디어 접근 제어 필터 목록(MFACL)과 그에 따른 모드 및 악성 액세스 포인트(AP)의 동작에 미치는 영향:
1. **MAC 기반 화이트리스트**:
- 악성 AP는 화이트리스트에 지정된 장치의 프로브 요청에만 응답하며, 나열되지 않은 모든 장치에는 보이지 않습니다.
- 악성 AP는 화이트리스트에 지정된 장치의 프로브 요청에만 응답하며, 나열되지 않은 다른 장치에는 보이지 않습니다.
2. **MAC 기반 블랙리스트**:
- 악성 AP는 블랙리스트에 있는 장치의 프로브 요청을 무시하여, 특정 장치에 대해 악성 AP가 보이지 않게 만듭니다.
3. **SSID 기반 화이트리스트**:
- 악성 AP는 나열된 특정 ESSID에 대해서만 프로브 요청에 응답하여, 해당 ESSID가 포함되지 않은 장치에는 보이지 않게 만듭니다.
4. **SSID 기반 블랙리스트**:
- 악성 AP는 블랙리스트에 있는 특정 ESSID에 대한 프로브 요청에 응답하지 않으며, 특정 네트워크를 찾는 장치에 보이지 않게 만듭니다.
- 악성 AP는 블랙리스트에 있는 특정 ESSID에 대한 프로브 요청에 응답하지 않으며, 특정 네트워크를 찾는 장치에 대해 보이지 않게 만듭니다.
```bash
# example EAPHammer MFACL file, wildcards can be used
09:6a:06:c8:36:af
@ -624,9 +630,9 @@ name3
### MANA
그 후, **장치들이 불확실한 네트워크 응답을 무시하기 시작하여** 원래의 karma 공격의 효과가 감소했습니다. 그러나 **MANA 공격**으로 알려진 새로운 방법이 Ian de Villiers와 Dominic White에 의해 도입되었습니다. 이 방법은 악성 AP가 **장치의 방송 프로브 요청에 응답하여 장치가 이전에 인식한 네트워크 이름(SSID)으로 선호 네트워크 목록(PNL)을 캡처하는** 것니다. 이 정교한 공격은 장치가 알려진 네트워크를 기억하고 우선순위를 매기는 방식을 이용하여 원래의 karma 공격에 대한 보호를 우회합니다.
그 후, **장치들이 불확실한 네트워크 응답을 무시하기 시작하여 원래의 카르마 공격의 효과가 감소했습니다**. 그러나 **MANA 공격**으로 알려진 새로운 방법이 Ian de Villiers와 Dominic White에 의해 소개되었습니다. 이 방법은 악성 AP가 **장치의 방송 프로브 요청에 응답하여 장치가 이전에 인식한 네트워크 이름(SSID)으로 선호 네트워크 목록(PNL)을 캡처하는** 것을 포함합니다. 이 정교한 공격은 장치가 알려진 네트워크를 기억하고 우선순위를 매기는 방식을 이용하여 원래의 카르마 공격에 대한 보호를 우회합니다.
MANA 공격은 장치의 지향 및 방송 프로브 요청을 모두 모니터링하여 작동합니다. 지향 요청의 경우, 장치의 MAC 주소와 요청된 네트워크 이름을 기록하여 이 정보를 목록에 추가합니다. 방송 요청이 수신되면, AP는 장치의 목록에 있는 네트워크와 일치하는 정보를 제공하여 장치가 악성 AP에 연결하도록 유도합니다.
MANA 공격은 장치의 지향 및 방송 프로브 요청을 모두 모니터링하여 작동합니다. 지향 요청의 경우, 장치의 MAC 주소와 요청된 네트워크 이름을 기록하여 이 정보를 목록에 추가합니다. 방송 요청이 수신되면 AP는 장치 목록의 네트워크와 일치하는 정보를 제공하여 장치가 악성 AP에 연결하도록 유도합니다.
```bash
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
```
@ -657,7 +663,7 @@ Eaphammer는 이 공격을 MANA 공격으로 구현했으며, 목록 내의 모
```
## Wi-Fi Direct
**Wi-Fi Direct**는 전통적인 무선 액세스 포인트 없이 Wi-Fi를 사용하여 장치들이 서로 직접 연결할 수 있도록 하는 프로토콜입니다. 이 기능은 프린터와 텔레비전과 같은 다양한 사물인터넷(IoT) 장치에 통합되어 있으며, 장치 간의 직접 통신을 용이하게 합니다. Wi-Fi Direct의 주목할 만한 특징은 하나의 장치가 그룹 소유자라고 알려진 액세스 포인트 역할을 하여 연결을 관리한다는 것입니다.
**Wi-Fi Direct**는 전통적인 무선 액세스 포인트 없이 Wi-Fi를 사용하여 장치들이 서로 직접 연결할 수 있도록 하는 프로토콜입니다. 이 기능은 프린터와 텔레비전과 같은 다양한 사물인터넷(IoT) 장치에 통합되어 있 장치 간의 직접 통신을 용이하게 합니다. Wi-Fi Direct의 주목할 만한 특징은 하나의 장치가 그룹 소유자라는 액세스 포인트 역할을 하여 연결을 관리한다는 점입니다.
Wi-Fi Direct 연결의 보안은 **Wi-Fi Protected Setup (WPS)**를 통해 설정되며, 안전한 페어링을 위한 여러 방법을 지원합니다. 여기에는 다음이 포함됩니다:

View File

@ -0,0 +1,128 @@
# NexMon 모니터 모드 및 패킷 주입 활성화 (Broadcom 칩)
{{#include ../../banners/hacktricks-training.md}}
## 개요
대부분의 최신 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
```
If you only need passive sniffing, omit the `-s0x613` flag.
---
## Using `libnexmon` inside Kali NetHunter / chroot
Kali의 기본 사용자 공간 도구는 NexMon을 인식하지 않지만, `LD_PRELOAD`를 통해 강제로 사용할 수 있습니다:
1. 미리 빌드된 공유 객체를 chroot에 복사합니다:
```bash
cp /sdcard/Download/kalilibnexmon.so <chroot>/lib/
```
2. **Android 호스트**에서 모니터 모드를 활성화합니다 (위의 명령어 또는 Hijacker를 통해).
3. Kali 내에서 프리로드와 함께 무선 도구를 실행합니다:
```bash
sudo su
export LD_PRELOAD=/lib/kalilibnexmon.so
wifite -i wlan0 # 또는 aircrack-ng, mdk4 …
```
4. 완료되면 Android에서 일반적으로 모니터 모드를 비활성화합니다.
펌웨어가 이미 radiotap 주입을 처리하므로, 사용자 공간 도구는 외부 Atheros 어댑터와 동일하게 작동합니다.
---
## Typical Attacks Possible
모니터 + 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).
---
## Troubleshooting
* `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`.
---
## References
* [Hijacker on the Samsung Galaxy S10 with wireless injection](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 for Android)](https://github.com/chrisk44/Hijacker)
{{#include ../../banners/hacktricks-training.md}}