Enable NexMon Monitor Mode & Packet Injection on Android (Broadcom chips)

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 का समर्थन करें

Overview

अधिकांश आधुनिक Android फोन में एक Broadcom/Cypress Wi-Fi चिपसेट होता है जो 802.11 मॉनिटर मोड या फ्रेम-इंजेक्शन क्षमताओं के बिना आता है। ओपन-सोर्स NexMon ढांचा स्वामित्व वाले फर्मवेयर को पैच करता है ताकि उन सुविधाओं को जोड़ा जा सके और उन्हें एक साझा पुस्तकालय (libnexmon.so) और एक CLI सहायक (nexutil) के माध्यम से उजागर किया जा सके। उस पुस्तकालय को स्टॉक Wi-Fi ड्राइवर में प्री-लोड करके, एक रूटेड डिवाइस कच्चा 802.11 ट्रैफ़िक कैप्चर कर सकता है और मनमाने फ्रेम इंजेक्ट कर सकता है - बाहरी USB एडाप्टर की आवश्यकता को समाप्त करता है।

यह पृष्ठ एक तेज़ कार्यप्रवाह का दस्तावेजीकरण करता है जो एक पूरी तरह से पैच किए गए Samsung Galaxy S10 (BCM4375B1) को उदाहरण के रूप में लेता है, जिसका उपयोग करते हुए:

  • NexMon Magisk मॉड्यूल जिसमें पैच किया गया फर्मवेयर + libnexmon.so
  • मॉनिटर-मोड टॉगलिंग को स्वचालित करने के लिए Hijacker Android एप्लिकेशन
  • वैकल्पिक Kali NetHunter chroot क्लासिक वायरलेस टूल (aircrack-ng, wifite, mdk4 …) को सीधे आंतरिक इंटरफेस के खिलाफ चलाने के लिए

यह तकनीक किसी भी हैंडसेट पर लागू होती है जिसमें एक सार्वजनिक रूप से उपलब्ध NexMon पैच है (Pixel 1, Nexus 6P, Galaxy S7/S8, आदि)।


Prerequisites

  • एक समर्थित Broadcom/Cypress चिपसेट वाला Android हैंडसेट (जैसे BCM4358/59/43596/4375B1)
  • Magisk ≥ 24 के साथ रूट
  • BusyBox (अधिकांश ROMs/NetHunter में पहले से ही शामिल है)
  • NexMon Magisk ZIP या स्वयं-निर्मित पैच प्रदान करना:
  • /system/lib*/libnexmon.so
  • /system/xbin/nexutil
  • Hijacker ≥ 1.7 (arm/arm64) – https://github.com/chrisk44/Hijacker
  • (वैकल्पिक) Kali NetHunter या कोई भी Linux chroot जहां आप वायरलेस टूल चलाने का इरादा रखते हैं

Flashing the NexMon patch (Magisk)

  1. अपने सटीक डिवाइस/फर्मवेयर के लिए ZIP डाउनलोड करें (उदाहरण: nexmon-s10.zip)।
  2. Magisk खोलें -> Modules -> Install from storage -> ZIP का चयन करें और रिबूट करें। मॉड्यूल libnexmon.so को /data/adb/modules/<module>/lib*/ में कॉपी करता है और सुनिश्चित करता है कि SELinux लेबल सही हैं।
  3. स्थापना की पुष्टि करें:
bash
ls -lZ $(find / -name libnexmon.so 2>/dev/null)
sha1sum $(which nexutil)

Configuring Hijacker

Hijacker airodump, wifite, आदि चलाने से पहले स्वचालित रूप से मॉनिटर मोड को टॉगल कर सकता है। Settings -> Advanced में निम्नलिखित प्रविष्टियाँ जोड़ें (यदि आपका मॉड्यूल भिन्न है तो पुस्तकालय पथ संपादित करें):

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 इंटरफ़ेस को मॉनिटर मोड में डालें (रेडियोटैप हेडर जोड़ा जाएगा)।
  • -v2 विस्तृत स्तर सेट करें; 2 पुष्टि और फर्मवेयर संस्करण प्रिंट करता है।
  • -m0 प्रबंधित मोड को पुनर्स्थापित करें (जो अक्षम कमांड में उपयोग किया जाता है)।

Enable monitor mode चलाने के बाद आपको इंटरफ़ेस को मॉनिटर स्थिति में देखना चाहिए और कच्चे फ़्रेम कैप्चर करने में सक्षम होना चाहिए:

bash
airodump-ng --band abg wlan0

मैनुअल वन-लाइनर (बिना हाइजैकर)

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 पर सामान्य रूप से मॉनिटर मोड को अक्षम करें।

क्योंकि फर्मवेयर पहले से ही रेडियोटैप इंजेक्शन को संभालता है, उपयोगकर्ता-स्थान उपकरण बाहरी Atheros एडाप्टर की तरह व्यवहार करते हैं।


संभावित सामान्य हमले

एक बार जब मॉनिटर + TX सक्रिय हो जाता है, तो आप:

  • wifite, hcxdumptool, airodump-ng के साथ WPA(2/3-SAE) हैंडशेक या PMKID कैप्चर कर सकते हैं।
  • क्लाइंट को फिर से कनेक्ट करने के लिए डिअथेंटिकेशन / डिसएसोसिएशन फ्रेम इंजेक्ट कर सकते हैं।
  • mdk4, aireplay-ng, Scapy, आदि के साथ मनमाने प्रबंधन/डेटा फ्रेम बना सकते हैं।
  • फोन से सीधे रॉग AP बना सकते हैं या KARMA/MANA हमले कर सकते हैं।

गैलेक्सी S10 पर प्रदर्शन बाहरी USB NICs (~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 पथ की दोबारा जांच करें।
  • फ्रेम इंजेक्शन काम करता है लेकिन कोई पैकेट कैप्चर नहीं हुआ – कुछ ROMs चैनलों को हार्ड-ब्लॉक करते हैं; 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 का समर्थन करें