यह एंड्रॉइड एसएसएल पिनिंग को बायपास करने और प्रॉक्सी अनजान एप्लिकेशन को इंटरसेप्ट करने के बारे में है।

Nov 27 2022
नमस्ते H3ckers, हम सभी जानते हैं कि "एंड्रॉइड ऐप्स के HTTPS ट्रैफ़िक को कैसे रोकें" के लिए बहुत सारे लेख उपलब्ध हैं, इसलिए यहां हम उन्हें कवर नहीं करने जा रहे हैं। यदि आपको कोई नहीं मिला है, तो निम्न का संदर्भ लें: बर्प के साथ काम करने के लिए एक एंड्रॉइड डिवाइस को कॉन्फ़िगर करना - पोर्टस्विगर पूर्वापेक्षाएँ: बर्पसुइट प्रॉक्सी से परिचित, बेसिक एंड्रॉइड पेंटेस्टिंग और उपकरण जैसे एडीबी, फ्रीडा, ऑब्जेक्शन, मैजिक एप्लिकेशन, डिकंपाइलिंग/रीकंपाइलिंग एपीके, और एपीके हस्ताक्षर।

होला H3ckers,

हम सभी जानते हैं कि "एंड्रॉइड ऐप्स के HTTPS ट्रैफ़िक को कैसे रोकें" के लिए बहुत सारे लेख उपलब्ध हैं, इसलिए यहां हम उन्हें कवर नहीं करने जा रहे हैं। यदि आपको कोई नहीं मिला है, तो निम्नलिखित देखें:

बर्प के साथ काम करने के लिए एक एंड्रॉइड डिवाइस को कॉन्फ़िगर करना - पोर्टस्विगर

पूर्वापेक्षाएँ:

BurpSuite प्रॉक्सी, बेसिक Android Pentesting और adb, frida, आपत्ति, Magisk एप्लिकेशन, Decompiling/Recompiling APK, और APK साइनिंग जैसे टूल से परिचित।

विषयसूची

  1. क्या मेरे लक्षित ऐप में एसएसएल पिनिंग है?
  2. रुको, हम पिनिंग की पुष्टि कैसे कर सकते हैं?
  3. बायपास करने का समय
  4. ऐप HTTP के साथ काम कर रहा है, भले ही मैं ऐप ट्रैफिक को क्यों नहीं रोक पा रहा हूं

मुझे मिल गया, यह एक मजाक जैसा लगता है, क्योंकि आप लोग जानते हैं कि यदि पिनिंग जगह पर है, तो हम अपने लक्षित Android एप्लिकेशन के HTTPS ट्रैफ़िक को कैप्चर नहीं कर पाएंगे।

2. रुको, हम पिनिंग की पुष्टि कैसे कर सकते हैं?

डिवाइस और प्रॉक्सी सर्वर (बर्प) दोनों में प्रॉक्सी सेट अप करने के बाद, लक्ष्य एप्लिकेशन को सक्रिय करें, फिर कुछ गतिविधियां करें जो लक्ष्य एप्लिकेशन और उनके सर्वर के बीच संचार करती हैं।

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

2. बायपास करने का समय

2.1 मूव सर्टिफिकेट - मैजिक मॉड्यूल:

यदि आपका डिवाइस मैजिक एप्लिकेशन के साथ रूट किया गया है, तो मूव सर्टिफिकेट मॉड्यूल एक अच्छा विकल्प है।

यह मॉड्यूल उपयोगकर्ता के विश्वसनीय प्रमाणपत्रों को सिस्टम स्टोर में ले जाएगा, जिससे सिस्टम (रूट) उस प्रमाणपत्र पर भरोसा करेगा जिसे उपयोगकर्ता स्थापित करता है (हमारा प्रॉक्सी सीए प्रमाणपत्र)

2.2 आपत्ति उपकरण

रेपो: सेंसपोस्ट / आपत्ति: आपत्ति - रनटाइम मोबाइल एक्सप्लोरेशन (github.com)

चरण 1 : सुनिश्चित करें कि एंड्रॉइड डिवाइस पर फ्रीडा सर्वर चल रहा है

चरण 2: निम्नलिखित आदेश के साथ आपत्ति के साथ लक्ष्य आवेदन संलग्न करें:

आपत्ति -जी <पीकेजी नाम / पीआईडी> एक्सप्लोर करें

फिर " एंड्रॉइड एसएसएलपिनिंग अक्षम " कमांड निष्पादित करें

बस इतना ही, स्क्रिप्ट एसएसएल पिनिंग क्लासेस को ढूंढ लेगी और पिनिंग को बायपास करने के लिए रनटाइम के दौरान उन्हें हुक कर देगी।

2.3 फ्रीडा फ्रेमवर्क

रेपो: फ्रीडा (github.com)

यहाँ सबसे लोकप्रिय और व्यापक रूप से इस्तेमाल की जाने वाली विधि आती है।

चरण 1 : सुनिश्चित करें कि एंड्रॉइड डिवाइस पर फ्रीडा सर्वर चल रहा है

चरण 2: अपने लक्ष्य एप्लिकेशन को फ्रिडा के साथ संलग्न करें और स्क्रिप्ट को बायपास करके अपना पसंदीदा एसएसएल चलाएं।

मेरी पसंदीदा स्क्रिप्ट निम्नलिखित हैं:

https://codeshare.frida.re/@akabe1/frida-multiple-unpinning/
https://codeshare.frida.re/@pcipolloni/universal-android-ssl-pinning-bypass-with-frida/

2.4 एक्सपोज़ड फ्रेमवर्क का उपयोग करना

यदि आपका डिवाइस Xposed ढांचे के साथ निहित है , तो आप पिनिंग को बायपास करने के लिए निम्न मॉड्यूल का प्रयास कर सकते हैं

  1. ac-pm/SSLUnpinning_Xposed: SSL प्रमाणपत्र सत्यापन (सर्टिफिकेट पिनिंग) को बायपास करने के लिए Android Xposed मॉड्यूल। (जीथब डॉट कॉम)
  2. ViRb3/TrustMeAlready: Android पर SSL सत्यापन और पिनिंग अक्षम करें, सिस्टम-वाइड (github.com)

apk-mitm एक सीएलआई एप्लिकेशन है जो एपीके फाइलों को संशोधित करके और रीपैकिंग करके स्वचालित रूप से एचटीटीपीएस निरीक्षण के लिए एंड्रॉइड एपीके फाइल तैयार करता है।

रेपो:

shroudedcode/apk-mitm: एक सीएलआई एप्लिकेशन जो स्वचालित रूप से HTTPS निरीक्षण के लिए एंड्रॉइड एपीके फाइल तैयार करता है (github.com)

एपीके-एमआईटीएम को एनपीएम का उपयोग करके निकाला जा सकता है

चरण 1: नीचे दिखाए अनुसार एपीके-मिटम चलाएं।

बस, apk-mitm ने अपना काम कर दिया है। अब हम पैच किए गए एपीके को इंस्टॉल कर सकते हैं और एप्लिकेशन ट्रैफिक को इंटरसेप्ट कर सकते हैं।

2.6 network_security_config.xml फ़ाइल को संशोधित करना

नेटवर्क सुरक्षा कॉन्फ़िगरेशन ऐप्स को घोषणात्मक कॉन्फ़िगरेशन फ़ाइल के माध्यम से अपनी नेटवर्क सुरक्षा सेटिंग्स को अनुकूलित करने देता है । संपूर्ण कॉन्फ़िगरेशन इस XML फ़ाइल में समाहित है, और किसी कोड परिवर्तन की आवश्यकता नहीं है।

स्रोत : नेटवर्क सुरक्षा विन्यास | Android डेवलपर्स

नेटवर्क सुरक्षा कॉन्फ़िगरेशन Android 7.0 या उच्चतर में काम करता है।

चरण 1 : एपीकेटूल या विकल्पों के साथ एंड्रॉइड एप्लिकेशन को डीकंपाइल करें। और /res/xml के अंतर्गत network_security_config.xml फ़ाइल का पता लगाएं।

चरण 2 : यदि ऐप ने अपने CA प्रमाणपत्रों को पिन किया है तो फ़ाइल इस तरह दिख सकती है।

छवि स्रोत: developer.android.com

चरण 3 : उस <pin-set>… </pin-set> टैग अनुभाग को हटा दें और निम्नलिखित जोड़ें:

चरण 4: अब फाइल को सेव करें और एपीकेटूल और यूबर-एपीके-साइनर (संशोधित एपीके पर हस्ताक्षर करने के लिए) का उपयोग करके एप्लिकेशन को फिर से पैक करें।

बस, हमारा नया एपीके इंस्टॉल करें और आप जाने के लिए तैयार हैं।

3. क्या होगा अगर एप्लिकेशन इंटरसेप्ट नहीं हो रहा है और कोई त्रुटि भी नहीं दिखा रहा है !!

यहाँ मेरे दिमाग में पहली बात पॉप-अप " स्पंदन " है। स्पंदन आधारित अनुप्रयोग मूल रूप से " प्रॉक्सी अनजान " हैं।

तो यहाँ आता है हमारा हीरो " रिफ्लटर ":

" यह ढांचा फ़्लटर ऐप्स रिवर्स इंजीनियरिंग के साथ फ़्लटर लाइब्रेरी के पैच किए गए संस्करण का उपयोग करने में मदद करता है जो पहले से ही संकलित है और ऐप रीपैकिंग के लिए तैयार है। "

रेपो:https://github.com/Impact-I/reFlutter

चरण 1: पाइप का उपयोग करके रिफ्लटर को स्थापित करें

चरण 2: नीचे स्क्रीनशॉट में दिखाए गए आदेशों का पालन करें।

चरण 3: uber-apk-signer या किसी भी विकल्प का उपयोग करके एप्लिकेशन पर हस्ताक्षर करें और इसे इंस्टॉल करें।

चरण 4: अब बर्प प्रॉक्सी में, पोर्ट 8083 को सुनना शुरू करें और " समर्थन अदृश्य प्रॉक्सीइंग " को भी सक्षम करें ।

बस इतना ही झलकता है, तुम सब जाने के लिए तैयार हो...!

4. मेरा एप्लिकेशन केवल HTTP का उपयोग कर रहा है लेकिन फिर भी मैं इंटरसेप्ट करने में सक्षम नहीं हूँ !!

हम्म..यह थोड़ा अजीब है, लेकिन कभी-कभी ऐसा होता है।

इस व्यवहार वाले एप्लिकेशन को मूल रूप से " प्रॉक्सी अनजान " एप्लिकेशन कहा जाता है। इस तरह के एप्लिकेशन सिस्टम वाइड प्रॉक्सी सेटिंग्स के साथ सहयोग किए बिना ट्रैफिक को सीधे इंटरनेट पर रूट करते हैं।

बायपास करने का समय:

इस विधि के लिए, मैं भाई फारिस ❤ को धन्यवाद देना चाहूंगा।

(60) फारिस मोहम्मद | लिंक्डइन

चरण 1: उस डोमेन पते का पता लगाएं जिससे ऐप Wireshark का उपयोग करके संचार कर रहा है। नीचे दिखाया गया है।

चरण 2: एपीकेटूल का उपयोग करके एप्लिकेशन को डीकंपाइल करें

चरण 3: विघटित फ़ोल्डर दर्ज करें और उस फ़ाइल का पता लगाने के लिए ack/grep टूल का उपयोग करें जिसमें डोमेन नाम का उल्लेख किया गया है।

चरण 4: डोमेन नाम को IP पते और बर्पसुइट के पोर्ट से बदलें।

चरण 5: एप्लिकेशन को फिर से पैक करें, उस पर हस्ताक्षर करें और इसे एंड्रॉइड डिवाइस पर इंस्टॉल करें।

चरण7: बर्पसुइट प्रॉक्सी में, रिक्वेस्ट हैंडलिंग टैब से, रीडायरेक्ट होस्ट और पोर्ट को मूल डोमेन एड्रेस के रूप में दें, जिसका उपयोग ऐप द्वारा पहली बार किया गया था।

चरण 8: एप्लिकेशन के मूल डोमेन पते पर बर्प श्रोता आईपी पते से होस्ट हेडर मान को बदलने के लिए प्रॉक्सी विकल्पों में सेटअप मैच और बदलें

बस। अब एप्लिकेशन का HTTP ट्रैफ़िक हमारे बर्प प्रॉक्सी में कैप्चर किया जाएगा।

नोट: - यहां, चूंकि हम हार्डकोडेड एप्लिकेशन डोमेन को प्रतिस्थापित करते हैं, इसलिए हमें डिवाइस प्रॉक्सी सेटअप करने की आवश्यकता नहीं है क्योंकि एप्लिकेशन सीधे हार्डकोडेड डोमेन के साथ संचार करता है (हमने इसे हमारे प्रॉक्सी आईपी से बदल दिया है)।

तो मुझे लगता है कि मैंने अभी के लिए किया है। वास्तव में, कुछ और तरीके हैं जिनका उपयोग हम Android SSL पिनिंग को बायपास करने के लिए कर सकते हैं। मैं आपकी प्रतिक्रियाओं के आधार पर इसका भाग 2 बनाने की कोशिश करूंगा।

धन्यवाद दोस्तों, हैप्पी हैकिंग :)