
Go-आधारित MITM HTTP/HTTPS प्रॉक्सी, जिसमें HTTP/2 और HTTP/1.1 इंटरसेप्शन, लोकल CA/प्रति-होस्ट प्रमाणपत्र जनरेशन, CONNECT/WebSocket टनलिंग, डिस्क कैशिंग, एडमिन डैशबोर्ड, ट्रैफ़िक कैप्चर, ब्लॉक नीतियाँ, और रिडक्शन, क्वारंटीन तथा ऑडिट लॉगिंग के साथ वैकल्पिक AI-समर्थित थ्रेट स्कैनिंग शामिल है।
A lightweight, developer‑friendly Man‑in‑the‑Middle (MITM) HTTP/HTTPS proxy written in Go. It supports HTTP/1.1 and HTTP/2, CONNECT tunneling, WebSocket tunneling (ws/wss), on‑disk response caching with flexible filters, and live config reloading.

Go MITM Proxy एक इंटरसेप्टिंग प्रॉक्सी है जो HTTP(S) ट्रैफ़िक के डिबगिंग, परीक्षण, सीखने और नियंत्रित इंटरसेप्शन के लिए है। जब MITM सक्षम होता है, तो यह स्थानीय CA द्वारा हस्ताक्षरित प्रति-होस्ट लीफ सर्टिफिकेट गतिशील रूप से उत्पन्न करता है, जिससे प्रॉक्सी HTTPS ट्रैफ़िक को डिक्रिप्ट और निरीक्षण कर सकता है। यह MITM अक्षम होने पर या बाहर किए गए डोमेन/पोर्ट के लिए एक पारदर्शी TCP टनल के रूप में भी काम कर सकता है।
महत्वपूर्ण: यह एप्लिकेशन सक्रिय Man-in-the-Middle (MITM) इंटरसेप्शन करता है, जिसमें HTTPS ट्रैफ़िक को डिक्रिप्ट करने के लिए TLS सर्टिफिकेट का निर्माण और उपयोग शामिल है। आपके क्षेत्राधिकार और नेटवर्क वातावरण के आधार पर, सभी प्रभावित उपयोगकर्ताओं की स्पष्ट, पूर्व सहमति के बिना ट्रैफ़िक इंटरसेप्ट करना अवैध हो सकता है और यह गोपनीयता, कार्यस्थल नीति या नियामक आवश्यकताओं का उल्लंघन कर सकता है।
इस सॉफ़्टवेयर को अपनी स्थानीय मशीन के अलावा किसी अन्य वातावरण में उपयोग करने से पहले:
इस प्रॉक्सी द्वारा ट्रैफ़िक इंटरसेप्ट किए जाने वाले किसी भी नेटवर्क के सभी उपयोगकर्ताओं को स्पष्ट रूप से सूचित किया जाना चाहिए कि HTTP(S) इंटरसेप्शन और निरीक्षण होगा। सहमति स्पष्ट होनी चाहिए और आदर्श रूप से प्रलेखित होनी चाहिए।
इस सॉफ़्टवेयर को उन नेटवर्कों पर न चलाएं जिनके आप स्वामी नहीं हैं, जिन्हें आप व्यवस्थित नहीं करते, या जिनके परीक्षण या निगरानी के लिए आपके पास स्पष्ट प्राधिकरण नहीं है।
कई क्षेत्रों में उपयोगकर्ता डेटा के इंटरसेप्शन, लॉगिंग और भंडारण को विनियमित करने वाले सख्त कानून हैं (जैसे, GDPR, CCPA, वायरटैप कानून)। आप जिम्मेदार हैं कि आपका उपयोग सभी लागू विनियमों का अनुपालन करता है।
उत्पन्न CA निजी कुंजी (आमतौर पर ca-key.pem) धारक को संबंधित सर्टिफिकेट पर भरोसा करने वाले उपयोगकर्ताओं के लिए किसी भी डोमेन की नकल करने की अनुमति देती है।
यह प्रॉक्सी विकास, डिबगिंग, नियंत्रित परीक्षण या शैक्षिक उद्देश्यों के लिए डिज़ाइन की गई है — न कि गुप्त निगरानी या अनधिकृत निगरानी के लिए।
इस सॉफ़्टवेयर का उपयोग करके, आप स्वीकार करते हैं और पूर्ण जिम्मेदारी लेते हैं कि आपका उपयोग कानूनी, नैतिक है, और सभी प्रभावित उपयोगकर्ताओं को इसकी उचित जानकारी दी गई है।
Prerequisites:
Clone and build: ```bash git clone https://github.com/Welfordian/mitm-proxy.git cd mitm-proxy go build ./
यह प्रोजेक्ट रूट में एक mitm-proxy (या Windows पर mitm-proxy.exe) बाइनरी उत्पन्न करता है।
## त्वरित प्रारंभ
1) प्रॉक्सी को डिफ़ॉल्ट सेटिंग्स के साथ चलाएँ (:8080 पर सुनता है): ```bash
./mitm-proxy
पहली बार प्रारंभ करने पर, एक स्थानीय CA बनाया जाएगा और ca-cert.pem और ca-key.pem में सहेजा जाएगा।
अपने ब्राउज़र या curl को http://localhost:8080 पर प्रॉक्सी का उपयोग करने के लिए कॉन्फ़िगर करें।
HTTPS इंटरसेप्शन की अनुमति देने के लिए अपने OS/ब्राउज़र में जनरेट किए गए CA प्रमाणपत्र (ca-cert.pem) पर भरोसा करें। स्थानीय CA पर भरोसा करना देखें।
प्रॉक्सी के माध्यम से किसी HTTPS साइट पर जाएँ और लॉग देखें। अधिक विवरण के लिए verbose मोड का उपयोग करें: ```bash ./mitm-proxy --verbose
## उपयोग
### कमांड-लाइन फ़्लैग
- --config string: config.json फ़ाइल का पथ
- --listen string: लिसन पता (config को ओवरराइड करता है)
- --ca-cert string: मौजूदा CA प्रमाणपत्र का पथ (config को ओवरराइड करता है)
- --ca-key string: मौजूदा CA कुंजी का पथ (config को ओवरराइड करता है)
- --mitm bool: MITM इंटरसेप्शन सक्षम करें (डिफ़ॉल्ट true; false करने पर टनलिंग अनिवार्य हो जाती है)
- --verbose bool: वर्बोज़ लॉगिंग सक्षम करें
- --watch-config bool: परिवर्तनों के लिए config.json देखें और स्वतः लागू करें (डिफ़ॉल्ट true)
- --admin-enabled bool: स्थानीय एडमिन API/डैशबोर्ड सक्षम करें (डिफ़ॉल्ट true)
- --admin-addr string: एडमिन API/डैशबोर्ड लिसन पता (डिफ़ॉल्ट 127.0.0.1:9090)
- --admin-token string: एडमिन बियरर टोकन (छोड़े जाने पर स्टार्टअप पर जनरेट होता है)
- --admin-read-token string: GET/HEAD/OPTIONS एडमिन एक्सेस के लिए केवल-पठनीय बियरर टोकन
- --admin-ui bool: एम्बेडेड एडमिन UI सर्व करें (डिफ़ॉल्ट true)
- --admin-store string: एडमिन SQLite स्टोर पथ (डिफ़ॉल्ट dashboard.db)
CLI फ़्लैग, कॉन्फ़िगरेशन फ़ाइल मानों को ओवरराइड करते हैं जहाँ उल्लेख किया गया है।
### कॉन्फ़िगरेशन (config.json)