इसे छोड़कर कंटेंट पर जाएं

iOS कैप्चर

iPhone / iPad पर कैप्चर करना हमेशा से एक सिरदर्द रहा है। सामान्य टूल्स को या तो jailbreak की ज़रूरत होती है, या वे केवल एक प्रॉक्सी सेट कर सकते हैं (जिसका मतलब फिर भी profile और certificate install करना है, और certificate pinning वाले ऐप्स तब भी कैप्चर नहीं हो पाते)। iOS कैप्चर तीन बिना-jailbreak तरीके देता है, “बिना किसी configuration के सिस्टम requests देखना” से लेकर “पूरे डिवाइस का पूरा traffic” और “एक अकेले ऐप का पूरा plaintext” तक। इनमें से कोई एक आपका टारगेट पूरा कर देगा।


1. सामान्य तैयारी

Section titled “1. सामान्य तैयारी”
  • डिवाइस कनेक्ट करें: iPhone / iPad को डेटा केबल से कंप्यूटर से जोड़ें, फिर डिवाइस पर Trust टैप करें।
  • jailbreak की ज़रूरत नहीं: तीनों तरीके बिना jailbreak किए डिवाइस के लिए हैं।
  • नए systems के साथ compatible: iOS के नए वर्ज़न (iOS 17 और उससे ऊपर सहित) एक नए device channel पर स्विच हो गए हैं, और यहाँ कनेक्ट करना व कैप्चर करना अब भी काम करता है।
  • अगर वही डिवाइस नेटवर्क पर भी दिखाई देता है, तो उसके अनुसार USB / network एंट्री चुनें।

2. तीन तरीकों में से कैसे चुनें

Section titled “2. तीन तरीकों में से कैसे चुनें”
आपकी ज़रूरत कौन-सा इस्तेमाल करें आप क्या देख सकते हैं Certificate install / re-sign ज़रूरी है?
जल्दी देखें कि सिस्टम ने कौन-से HTTPS requests भेजे (address / status / headers) System-level capture सामान्य ऐप्स के लिए भी काम करता है (सामान्य ऐप्स में body नहीं दिखती) कोई नहीं; केवल एक diagnostic profile
पूरे डिवाइस का सारा traffic (non-HTTP, handshake / SNI सहित) NIC capture पूरा डेटा (डिफ़ॉल्ट रूप से ciphertext, माँगने पर डिक्रिप्ट किया जा सकता है) ciphertext देखने के लिए ज़रूरी नहीं; किसी खास ऐप को डिक्रिप्ट करने के लिए ही re-sign की ज़रूरत
किसी खास ऐप का पूरा plaintext आदान-प्रदान (body सहित) App-layer capture एक अकेले ऐप का पूरा plaintext टारगेट ऐप को development certificate से re-sign करना ज़रूरी है

तीनों में से किसी में भी jailbreak की ज़रूरत नहीं। System-level capture खासतौर पर सबसे आसान है: सामान्य ऐप्स और App Store ऐप्स के लिए भी आप देख सकते हैं कि वे कौन-से HTTPS addresses request करते हैं, जो सामान्य टूल्स बिना jailbreak वाले iPhone पर नहीं कर पाते।


3. System-level capture: सबसे आसान, सामान्य ऐप्स के लिए भी काम करता है

Section titled “3. System-level capture: सबसे आसान, सामान्य ऐप्स के लिए भी काम करता है”

जल्दी से यह देखना चाहते हैं कि इस iPhone ने कौन-से HTTPS requests भेजे, बिना कोई certificate install किए, बिना प्रॉक्सी सेट किए, या certificate pinning से जूझे? यह सबसे आसान तरीका है।

  • सिस्टम द्वारा भेजे गए HTTP(S) transactions की सूची दिखाता है: request method, पूरा URL (HTTPS के लिए भी address plaintext होता है), status code, request headers और response headers।
  • कोई CA certificate install नहीं करना, कोई प्रॉक्सी सेट नहीं करनी, certificate pinning से जूझना नहीं पड़ता।
  • आप कितना देख सकते हैं यह खुद सिस्टम diagnostic logs द्वारा सीमित होता है:
    • सामान्य ऐप्स और App Store ऐप्स: आमतौर पर आप केवल request address और request headers देख सकते हैं।
    • development certificate से signed ऐप्स: आप पूरी request / response body देख सकते हैं।

पूर्व-शर्त: आपको संबंधित device diagnostic profile install करना होगा (एक बार करना काफ़ी है)।


4. NIC capture: इस डिवाइस पर सब कुछ देखें

Section titled “4. NIC capture: इस डिवाइस पर सब कुछ देखें”

डिवाइस का सारा network traffic कैप्चर करें, चाहे ऐप या प्रोटोकॉल कोई भी हो, non-HTTP QUIC और custom protocols सहित।

  • डिफ़ॉल्ट रूप से आप क्या देखते हैं: डिफ़ॉल्ट रूप से यह ciphertext packets + metadata होता है (target address, port, और TLS handshake से मिला SNI hostname), जो यह साफ़ देखने के लिए काफ़ी है कि “यह डिवाइस किन जगहों से और किस प्रोटोकॉल से जुड़ा।”
  • plaintext चाहिए: टारगेट ऐप पर “Decrypt this program” का इस्तेमाल करके उसका plaintext डिक्रिप्ट करें; इसके लिए ऐप को development certificate से re-sign किया होना ज़रूरी है।

5. App-layer capture: एक अकेले ऐप का पूरा plaintext

Section titled “5. App-layer capture: एक अकेले ऐप का पूरा plaintext”

एक अकेले ऐप को टारगेट करते हुए, यह तरीका उसके भेजे और प्राप्त किए गए पूरे plaintext (body सहित) को हासिल करता है। certificate pinning इसे नहीं रोक पाती, क्योंकि यह ऐप के अंदर से पढ़ता है।

  • टारगेट प्रोग्राम को restart करें: आप पहले ऐप को बंद करके फिर से लॉन्च कर सकते हैं ताकि उसका शुरुआती-स्टार्टअप traffic भी कैप्चर हो सके।
  • जब plaintext डिकोड न हो पाए तो fallback के रूप में “socket traffic” चालू करें: उन ऐप्स के लिए जो statically link करते हैं / custom library इस्तेमाल करते हैं, और जिनसे सामान्य तरीकों से plaintext नहीं मिल पाता, इस स्विच को चालू करके डेटा तक पहुँचने का निचले-स्तर का रास्ता अपनाएँ।
  • ऐप की सूची में केवल वे ऐप्स चुने जा सकते हैं जो development certificate से re-sign किए गए हों; बाकी grayed out रहते हैं।

पूर्व-शर्त: टारगेट ऐप को development certificate से re-sign किया होना ज़रूरी है; App Store ऐप्स और सिस्टम ऐप्स को टारगेट के रूप में इस्तेमाल करने से पहले पहले re-sign करना होगा।


6. आप प्रॉक्सी कैप्चर भी इस्तेमाल कर सकते हैं

Section titled “6. आप प्रॉक्सी कैप्चर भी इस्तेमाल कर सकते हैं”

ऊपर दिए गए तीन तरीकों के अलावा, एक iPhone / iPad प्रॉक्सी कैप्चर भी इस्तेमाल कर सकता है: डिवाइस के Wi-Fi प्रॉक्सी को इस मशीन की ओर पॉइंट करें, root certificate install करें, और फिर आप कंप्यूटर की तरह ही HTTPS plaintext कैप्चर कर सकते हैं और rewriting व replay की पूरी क्षमताओं का इस्तेमाल कर सकते हैं। यह उन ऐप्स को debug करने के लिए उपयुक्त है जो सिस्टम प्रॉक्सी से गुज़रते हैं, या mobile requests की नियम-आधारित rewriting / replay की ज़रूरत वाले परिदृश्यों के लिए।


7. iOS कैप्चर कब इस्तेमाल करें

Section titled “7. iOS कैप्चर कब इस्तेमाल करें”
  • यह जल्दी जानने के लिए कि “किसी ऐप ने कौन-से endpoints को request किया और उन्होंने क्या लौटाया,” system-level capture सबसे आसान है, और सामान्य ऐप्स के साथ भी काम करता है।
  • पूरे डिवाइस का सारा traffic देखने के लिए (non-HTTP सहित), NIC capture इस्तेमाल करें।
  • अगर आप टारगेट ऐप को re-sign कर सकते हैं और उसकी पूरी plaintext body चाहते हैं, तो app-layer capture इस्तेमाल करें।
  • एक साथ देखने और edit करने के लिए (mobile requests को rewrite / replay करना), proxy capture इस्तेमाल करें।

वापस Proxy Capture पर · संबंधित: Data Viewing and Decoding · Certificate Management and Installation