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

सिस्टम-स्तरीय कैप्चर

कुछ टारगेट्स तो अपने अंदर से plaintext पढ़ने की इजाज़त भी नहीं देते। macOS के बिल्ट-इन ऐप्स, साथ ही खासतौर पर ज़िद्दी, गहराई से छुपे हुए एप्लिकेशन्स, शुरू होने से पहले ही हर तरह के बाहरी हस्तक्षेप को रोक देते हैं। System-level capture प्रोग्राम के अंदर नहीं चलता; यह सिस्टम की निचली परतों से ऑब्ज़र्व करता है। यहां तक कि ये टारगेट्स भी, जिनके पास सामान्य टूल्स कहीं नज़दीक तक नहीं पहुंच पाते, इनका plaintext पूरी तरह सामने आ जाता है। यह लोकल कैप्चर तरीकों का आखिरी पत्ता है।

यह आर्टिकल macOS को कवर करता है। Windows पर, जो सिस्टम प्रोग्राम्स सिस्टम network stack (.NET / PowerShell, आदि) से गुज़रते हैं उनके लिए एक समकक्ष क्षमता मौजूद है; देखें इस मशीन पर App-Layer Capture


1. यह वह देखता है जहां “अन्य टूल्स नहीं पहुंच पाते”

Section titled “1. यह वह देखता है जहां “अन्य टूल्स नहीं पहुंच पाते””

macOS के बिल्ट-इन ऐप्स, सिस्टम सर्विसेज़, या उन ज़िद्दी, गहराई से छुपे हुए एप्लिकेशन्स को देखना चाहते हैं कि वे अपने सर्वर्स से क्या कह रहे हैं? आमतौर पर हर मोड़ पर दीवार मिलती है: प्रॉक्सी कैप्चर को बाहर कर दिया जाता है (वे सर्टिफिकेट को रिजेक्ट कर देते हैं और सीधे एरर दिखाते हैं), प्रोग्राम के अंदर से plaintext पढ़ना सिस्टम की सुरक्षा द्वारा रोका जाता है, और NIC पर जो कैप्चर होता है वह बस ciphertext होता है। System-level capture उनके आदान-प्रदान का plaintext पढ़ने के कुछ गिने-चुने तरीकों में से एक है।

लोकल कैप्चर तरीके एक-दूसरे से आगे जाते हैं, और यह सबसे आखिर में खड़ा है:

टारगेट NIC / per-process App-layer capture इस मशीन पर System-level capture
सामान्य प्रोग्राम्स ✅ (ज़रूरत से ज़्यादा)
Certificate pinning / कस्टम encryption 🔒 ciphertext ✅ plaintext ✅ plaintext
ज़िद्दी / अत्यधिक छुपे हुए एप्लिकेशन्स 🔒 / ❌ ❌ हस्तक्षेप से इनकार plaintext
बिल्ट-इन ऐप्स / सिस्टम सर्विसेज़ 🔒 / ❌ ❌ हस्तक्षेप से इनकार plaintext

जब पहले के तरीकों में से कोई भी टारगेट को हैंडल नहीं कर पाता, तो इसे इसी को सौंप दें।


2. यह सिस्टम ऐप्स तक कैसे पहुंच पाता है

Section titled “2. यह सिस्टम ऐप्स तक कैसे पहुंच पाता है”
  • प्रोग्राम के अंदर नहीं चलता: बिल्ट-इन ऐप्स और ज़िद्दी एप्लिकेशन्स प्रोग्राम के अंदर चलने वाले हर तरह के हस्तक्षेप को रोक देते हैं, इसलिए app-layer capture इन पर काम नहीं करता। System-level capture एक अलग नज़रिया अपनाता है: कोई injection नहीं, प्रोग्राम में कोई बदलाव नहीं, कोई सर्टिफिकेट नहीं। यह सिस्टम की निचली परतों पर out-of-band पढ़ता है, इसलिए यह सुरक्षा इसे रोक नहीं पाती।
  • सर्टिफिकेट्स को नहीं छूता: यह man-in-the-middle की तरह काम नहीं करता और सर्टिफिकेट्स को नहीं छूता, इसलिए certificate pinning का यहां कोई असर ही नहीं होता। इन एप्लिकेशन्स की सर्टिफिकेट जांच चाहे जितनी सख्त हो, वे इसे प्रभावित नहीं कर सकतीं।
  • वहां तक पहुंचता है जहां बाकी नहीं पहुंच पाते: macOS के बिल्ट-इन ऐप्स, App Store, और विभिन्न सिस्टम सर्विसेज़ सिस्टम की निचली-स्तरीय network चैनल्स से गुज़रते हैं, जो कि पहले के सभी कैप्चर तरीकों का साझा ब्लाइंड स्पॉट है। System-level capture ठीक इसी परत को कवर करता है, जिससे इनका सारा plaintext पूरी तरह सामने आ जाता है।

3. यह किन टारगेट्स को हैंडल कर सकता है

Section titled “3. यह किन टारगेट्स को हैंडल कर सकता है”
  • बिल्ट-इन ऐप्स और सिस्टम सर्विसेज़: macOS के अपने प्रोग्राम्स के network आदान-प्रदान, जैसे App Store, सिस्टम कंपोनेंट्स, और बैकग्राउंड सर्विसेज़।
  • ज़िद्दी, गहराई से छुपे हुए एप्लिकेशन्स: थर्ड-पार्टी प्रोग्राम्स जो अपने ट्रैफ़िक को गहराई में छुपाते हैं और हर तरह के बाहरी हस्तक्षेप को अस्वीकार करते हैं।
  • सामान्य प्रोग्राम्स: यह इन्हें भी संभाल सकता है, लेकिन यह ज़रूरत से ज़्यादा है; नियमित प्रोग्राम्स के लिए पहले के तरीके ज़्यादा सरल हैं।

4. इसका उपयोग कैसे करें

Section titled “4. इसका उपयोग कैसे करें”
  1. टारगेट चुनें: dropdown से कोई चल रहा प्रोग्राम चुनें, या किसी प्रोग्राम का path / नाम भरें।
  2. वैकल्पिक रूप से “लॉन्च के क्षण” को कैप्चर करें: टूल को पहले प्रोग्राम बंद करने दें और फिर उसे फिर से लॉन्च करने दें, ताकि early-startup ट्रैफ़िक भी कैप्चर हो जाए (उसी क्षण में काफ़ी authentication / handshakes होते हैं)।
  3. कैप्चर शुरू करें और प्रोग्राम द्वारा भेजे और प्राप्त किए गए plaintext को देखें।

नया session · इस मशीन पर System-level capture: कोई चल रहा प्रोग्राम चुनें (या path / नाम भरें) और सिस्टम की निचली परतों से out-of-band उसके plaintext आदान-प्रदान को ऑब्ज़र्व करें; early startup कवर करने के लिए “restart target” चेक कर सकते हैं

लाइव परिणाम: टारगेट प्रोग्राम को सिस्टम की निचली परतों से out-of-band ऑब्ज़र्व करते हुए, इसके HTTPS आदान-प्रदान पूरी तरह plaintext में बहाल हो जाते हैं, detail view में “decrypted” दिखता है, और requests व responses एक के बाद एक क्रम में दिखते हैं


5. कैप्चर के बाद: पढ़ने और डिकोड करने योग्य

Section titled “5. कैप्चर के बाद: पढ़ने और डिकोड करने योग्य”

निचली परतों से पढ़ा गया plaintext बाकी सभी कैप्चर तरीकों जैसी ही समान प्रोसेसिंग से गुज़रता है:

  • कई व्यूइंग मोड्स: structured, text beautify, hex, और auto-detect, भेजने और प्राप्त करने वाले पक्ष के लिए स्वतंत्र रूप से स्विच किए जा सकते हैं। देखें डेटा व्यूइंग और डिकोडिंग
  • स्वचालित decompression और detection: gzip / brotli / deflate / zstd को स्वचालित रूप से decompress करता है (कई परतें एक साथ हों तब भी), और JSON, XML, protobuf / gRPC, और अधिक को स्वचालित रूप से detect और beautify करता है।

6. चार लोकल कैप्चर तरीकों में से कैसे चुनें

Section titled “6. चार लोकल कैप्चर तरीकों में से कैसे चुनें”
आपकी स्थिति कौन-सा उपयोग करें
macOS के बिल्ट-इन ऐप्स, ज़िद्दी एप्लिकेशन्स (अन्य तरीकों से न पहुंच पाने वाले) इस मशीन पर System-level capture (यह आर्टिकल)
पहले से चल रहा प्रोग्राम / certificate pinning / प्रॉक्सी स्वीकार नहीं करता / कस्टम encryption इस मशीन पर App-Layer Capture
नियमित प्रोग्राम्स जिन्हें आप कमांड से शुरू कर सकते हैं (ब्राउज़र्स / स्क्रिप्ट्स / CLI) इस मशीन पर Per-Process Capture
मशीन पर सारा ट्रैफ़िक, या non-HTTP ट्रैफ़िक देखना चाहते हैं इस मशीन पर NIC Capture

संबंधित: प्रॉक्सी कैप्चर · इस मशीन पर App-Layer Capture · डेटा व्यूइंग और डिकोडिंग