
विंडोज़ सिस्टम पर नेटवर्क ट्रैफ़िक के अवरोधन, विश्लेषण और संशोधन के लिए डिज़ाइन की गई एक हेडलेस, स्क्रिप्टेबल, कमांड-लाइन आधारित MITM प्रॉक्सी।

एक हेडलेस, स्क्रिप्टेबल, कमांड-लाइन आधारित MITM प्रॉक्सी जो Windows सिस्टम पर नेटवर्क ट्रैफ़िक इंटरसेप्शन, विश्लेषण और संशोधन के लिए डिज़ाइन की गई है। यह उद्योग-मानक GUI प्रॉक्सी के समान काम करती है, लेकिन स्वचालन वातावरण, हेडलेस संचालन और डेवलपमेंट वर्कफ़्लो के साथ एकीकरण के लिए अनुकूलित है।
नोट: यह Node.js में लागू एक स्टैंडअलोन, डिपेंडेंसी-मुक्त टूल है।
PacketPirate एक सिस्टम-व्यापी नेटवर्क इंटरसेप्शन टूल है। Windows HTTP प्रॉक्सी सेटिंग्स का लाभ उठाकर, यह आपकी मशीन पर चलने वाले किसी भी एप्लिकेशन से ट्रैफ़िक कैप्चर कर सकता है—जिसमें वेब ब्राउज़र (Chrome, Edge), CLI टूल (curl, git), और डेस्कटॉप एप्लिकेशन (Spotify, VS Code, Discord) शामिल हैं।
ग्लोबल सिस्टम इंटरसेप्शन: सिस्टम प्रॉक्सी का सम्मान करने वाली किसी भी प्रक्रिया से HTTP/HTTPS ट्रैफ़िक कैप्चर करता है।
प्रोसेस-अवेयर: पहचानें कि वास्तव में कौन सा एप्लिकेशन ट्रैफ़िक उत्पन्न कर रहा है।
डायनेमिक रूल इंजन: मैचिंग ट्रैफ़िक पर विशिष्ट क्रियाएँ करने के लिए JSON के माध्यम से कॉन्फ़िगर करने योग्य (जैसे, टोकन निष्कर्षण, अनुरोध लॉगिंग)।
पूर्ण ट्रैफ़िक लॉगिंग: विश्लेषण के लिए पूर्ण अनुरोध और प्रतिक्रिया बॉडी (HTML, JSON, Binary) डंप करने में सक्षम।
हेडलेस आर्किटेक्चर: पूरी तरह से CLI से चलता है, जो पृष्ठभूमि सेवाओं और स्वचालित परीक्षण पाइपलाइनों के लिए उपयुक्त है।
कस्टम प्रमाणपत्र प्रबंधन: HTTPS डिक्रिप्शन के लिए सेल्फ-साइन्ड रूट CA उत्पन्न करने और उन पर भरोसा करने के लिए उपयोगिताएँ शामिल हैं।
रिपॉजिटरी को क्लोन करें और वातावरण को प्रारंभ करें:
# 1. स्थानीय SSL प्रमाणपत्र उत्पन्न करें
npm run setup
# 2. उत्पन्न रूट CA पर भरोसा करें
npm run trust
# नोट: प्रमाणपत्र को ट्रस्टेड रूट स्टोर में जोड़ने के लिए व्यवस्थापकीय स्वीकृति आवश्यक है।
प्रॉक्सी सर्वर प्रारंभ करें:
npm start
यह मानक CLI इंटरफ़ेस लॉन्च करता है।
इंटरैक्टिव मेनू निम्नलिखित नियंत्रण प्रदान करता है:
code.exe की निगरानी करना)।Authorization हेडर में Bearer टोकन का ह्यूरिस्टिक पता लगाना।jsonl लॉग फ़ाइलों में कैप्चर करता है।इंटरसेप्शन लॉजिक config/rules.json में परिभाषित है। यह फ़ाइल ट्रैफ़िक हैंडलिंग के स्थायी कॉन्फ़िगरेशन की अनुमति देती है।
स्कीमा:
{
"rules": [
{
"name": "नियम का विवरण",
"host": "hostname.match",
"urlPattern": "regex_pattern",
"action": "log | save_token",
"outputFile": "path/to/output.txt",
"tokenFilter": "regex_filter"
}
]
}
उदाहरण:
{
"rules": [
{
"name": "Test API",
"host": "jsonplaceholder.typicode.com",
"action": "save_token",
"outputFile": "test_tokens.txt"
}
]
}
यह टूल द्वि-सर्वर आर्किटेक्चर का उपयोग करता है:
CONNECT टनलिंग अनुरोध को संभालता है और होस्ट फ़िल्टरिंग करता है।EADDRINUSE त्रुटियों का पता लगाता है और मुक्त पोर्ट मिलने तक पोर्ट नंबर बढ़ाता है।SIGINT/SIGTERM हैंडलर लागू करता है।टूल HTTPS इंटरसेप्शन के लिए द्वि-प्रमाणपत्र मॉडल पर निर्भर करता है:
npm run setup एक सेल्फ-साइन्ड रूट CA (PacketPirateRoot) बनाता है।
New-SelfSignedCertificate का उपयोग करता है।src/certs/server.pfx (PKCS#12 प्रारूप) में निर्यात किया जाता है।npm run trust इस रूट CA को Windows CurrentUser\Root स्टोर में इंजेक्ट करता है।
LocalMachine के बजाय CurrentUser को लक्षित करके, हम विश्वास त्रिज्या को आपकी विशिष्ट उपयोगकर्ता प्रोफ़ाइल तक सीमित करते हैं, जिससे सिस्टम-व्यापी जोखिम कम होता है।security.enterprise_roots.enabled) की आवश्यकता होती है।npm run untrust एक स्वच्छ teardown प्रदान करता है।
यह प्रोजेक्ट Node.js का उपयोग करके सिस्टम प्रोग्रामिंग का एक व्यावहारिक उदाहरण है। यह विशिष्ट वेब सर्वरों से आगे बढ़कर ऑपरेटिंग सिस्टम और नेटवर्क स्टैक के साथ निचले स्तर पर इंटरैक्ट करता है।
participant App as एप्लिकेशन (VS Code)
participant OS as Windows OS
participant Proxy as प्रॉक्सी सर्वर
participant MITM as MITM सर्वर
participant Web as इंटरनेट
Note over App,Proxy: 1. सादा HTTP टनलिंग
App->>Proxy: CONNECT google.com:443
Proxy-->>App: 200 कनेक्शन स्थापित
Note over Proxy,MITM: 2. "हैंड-ऑफ" ट्रिक
Proxy->>MITM: सॉकेट डेटा पाइप करें (कच्चे एन्क्रिप्टेड बाइट्स)
Note over App,MITM: 3. TLS हैंडशेक और डिक्रिप्शन
MITM-->>App: ServerHello (स्थानीय रूट CA द्वारा हस्ताक्षरित)
App->>MITM: एन्क्रिप्टेड अनुरोध (GET /)
Note over MITM: 4. इंटरसेप्शन लॉजिक
MITM->>MITM: डिक्रिप्ट करें → हेडर का निरीक्षण करें → लॉग करें
Note over MITM,Web: 5. अपस्ट्रीम अग्रेषण
MITM->>Web: नया HTTPS अनुरोध (GET /)
Web-->>MITM: प्रतिक्रिया
MITM-->>App: प्रतिक्रिया

Node.js का मानक http मॉड्यूल एक ही सर्वर इंस्टेंस पर CONNECT विधि (HTTPS टनल के लिए उपयोग की जाने वाली) और सामान्य HTTPS ट्रैफ़िक को आसानी से संभाल नहीं सकता है।
CONNECT अनुरोध को संभालता है। यह एक डंब TCP पाइप के रूप में कार्य करता है।हम कैसे जानते हैं कि ट्रैफ़िक कौन सा ऐप भेज रहा है? TCP पैकेटों पर स्वयं "प्रोसेस आईडी" का स्टिकर नहीं होता है।
netstat -ano को शेल आउट करते हैं कि पोर्ट 54321 का स्वामी कौन सा PID है।हम डेटा को कुशलतापूर्वक संभालने के लिए Node.js स्ट्रीम का उपयोग करते हैं। पूर्ण 10MB प्रतिक्रिया डाउनलोड होने की प्रतीक्षा करने के बजाय, हम स्ट्रीम को "फोर्क" करते हैं:
PassThrough स्ट्रीम का उपयोग करके किया जाता है, जो न्यूनतम अतिरिक्त विलंबता के साथ वास्तविक समय की निगरानी की अनुमति देता है।GNU GPL v3.0
FriendlyName ("PacketPirateRoot") द्वारा प्रमाणपत्र का पता लगाती हैं, यह सुनिश्चित करते हुए कि हम अन्य उपयोगकर्ता प्रमाणपत्रों को कभी नहीं छूते हैं।