
नियम-आधारित MITM इंजन। HTTP(S) अनुरोधों और प्रतिक्रियाओं पर पुनर्लेखन, पुनर्निर्देशन और अस्वीकरण, JavaScript नियम का समर्थन करता है।
नियम-आधारित MITM इंजन। HTTP(S) अनुरोधों और प्रतिक्रियाओं पर पुनर्लेखन, पुनर्निर्देशन और अस्वीकरण, JavaScript का समर्थन करता है।
MITM तकनीक की आवश्यकता के कारण, आपको अपना स्वयं का रूट प्रमाणपत्र उत्पन्न करना और उस पर भरोसा करना होगा।
सुरक्षा कारणों से, कृपया अजनबियों द्वारा प्रदान किए गए किसी भी रूट प्रमाणपत्र पर आँख बंद करके भरोसा न करें। आपको अपना स्वयं का रूट प्रमाणपत्र और निजी कुंजी उत्पन्न करनी होगी।
अनुभवी उपयोगकर्ता आवश्यक कार्यों को करने के लिए OpenSSL का उपयोग कर सकते हैं। हालाँकि, इस क्षेत्र में अनुभव रहित उपयोगकर्ताओं के लिए, आप आवश्यक सामग्री उत्पन्न करने के लिए निम्नलिखित कमांड का उपयोग कर सकते हैं। उत्पन्न प्रमाणपत्र और निजी कुंजी ca निर्देशिका में संग्रहीत की जाएगी।
good-mitm.exe genca
अपने ब्राउज़र में Good-MITM द्वारा प्रदान किए गए प्रॉक्सी का उपयोग करने के बाद, आप http://cert.mitm.plus पर जाकर सीधे प्रमाणपत्र डाउनलोड कर सकते हैं। यह विशेष रूप से तब उपयोगी होता है जब आप अन्य डिवाइसों को सेवाएँ प्रदान कर रहे हों।
आप अपनी आवश्यकताओं के अनुसार रूट प्रमाणपत्र को अपने ऑपरेटिंग सिस्टम या ब्राउज़र के ट्रस्ट ज़ोन में जोड़ सकते हैं।
Good-MITM प्रारंभ करें और उपयोग करने के लिए नियम फ़ाइल या निर्देशिका निर्दिष्ट करें।
good-mitm.exe run -r rules
अपने ब्राउज़र या ऑपरेटिंग सिस्टम में Good-MITM द्वारा प्रदान किया गया HTTP प्रॉक्सी उपयोग करें: http://127.0.0.1:34567।
दस्तावेज़ के लिए https://docs.mitmproxy.org/stable/howto-transparent/ देखें।
sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1
sudo sysctl -w net.ipv4.conf.all.send_redirects=0
sudo useradd --create-home mitm
sudo -u mitm -H bash -c 'good-mitm run -r rules/log.yaml -b 0.0.0.0:34567'
sudo iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner mitm --dport 80 -j REDIRECT --to-port 34567
sudo iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner mitm --dport 443 -j REDIRECT --to-port 34567
sudo ip6tables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner mitm --dport 80 -j REDIRECT --to-port 34567
sudo ip6tables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner mitm --dport 443 -j REDIRECT --to-port 34567
Rule का उपयोग Good-MITM को संचालित करने के लिए किया जाता है।
एक वैध नियम में निम्नलिखित घटक शामिल होने चाहिए:
Name:आसान रखरखाव के लिए विभिन्न नियमों को अलग करने के लिए उपयोग किया जाता है।Filter:requests और responses के एक समूह से संसाधित की जाने वाली सामग्री का चयन करने के लिए उपयोग किया जाता है।Action:वांछित क्रियाएँ करने के लिए उपयोग किया जाता है, जिनमें redirect, reject, modification, आदि शामिल हैं।- name: "Block YouTube tracking"
mitm: "*.youtube.com"
filter:
url-regex: '^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking)'
action: reject
इसके अतिरिक्त, एक वैध नियम को निम्नलिखित आवश्यकताओं को पूरा करना चाहिए:
Filter का उपयोग उन अनुरोधों और प्रतिक्रियाओं का चयन करने के लिए किया जाता है जिन्हें संसाधित करने की आवश्यकता होती है।
वर्तमान में, Filter में निम्नलिखित प्रकार शामिल हैं:
नोट
वर्तमान संस्करण में,domainसे संबंधित प्रकारhostफ़ील्ड से मेल खाते हैं, जो सामान्यतः परिणामों को प्रभावित नहीं करता है। यदि कोई वेबसाइट गैर-मानक पोर्ट का उपयोग कर रही है, तो नियम को पोर्ट निर्दिष्ट करना होगा। इस व्यवहार को भविष्य के संस्करणों में अनुकूलित किया जाएगा।
जब फ़िल्टर को all के रूप में निर्दिष्ट किया जाता है, तो यह सभी अनुरोधों और प्रतिक्रियाओं से मेल खाएगा। इसका उपयोग सामान्यतः लॉगिंग क्रियाएँ करने के लिए किया जाता है।
- name: "log"
filter: all
action:
- log-req
- log-res
domain डोमेन नाम के विरुद्ध पूर्ण मिलान करता है।
- name: "redirect"
filter:
domain: 'none.zu1k.com'
action:
redirect: "https://zu1k.com/"
domain-keyword डोमेन नाम के विरुद्ध कीवर्ड मिलान करता है।
- name: "reject CSDN"
filter:
domain-keyword: 'csdn'
action: reject
domain-prefix डोमेन नाम के विरुद्ध एक प्रीफ़िक्स मिलान करता है।
- name: "ad prefix"
filter:
domain-prefix: 'ads' // example: "ads.xxxxx.com"
action: reject
domain-suffix डोमेन नाम के विरुद्ध एक प्रत्यय मिलान (suffix match) करता है।
- name: "redirect"
filter:
domain-suffix: 'google.com.cn'
action:
redirect: "https://google.com"
url-regex पूरे URL के विरुद्ध एक रेगुलर एक्सप्रेशन मैच करता है।
- name: "youtube tracking"
mitm: "*.youtube.com"
filter:
url-regex: '^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking)'
action: reject
filters फ़ील्ड एकल फ़िल्टर और एकाधिक फ़िल्टर दोनों का समर्थन करता है, जिसमें एकाधिक फ़िल्टर के बीच संबंध OR होता है।
- name: "youtube-2"
mitm:
- "*.youtube.com"
- "*.googlevideo.com"
filters:
- url-regex: '^https?:\/\/[\w-]+\.googlevideo\.com\/(?!(dclk_video_ads|videoplayback\?)).+(&oad|ctier)'
- url-regex: '^https?:\/\/(www|s)\.youtube\.com\/api\/stats\/ads'
- url-regex: '^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking)'
- url-regex: '^https?:\/\/\s.youtube.com/api/stats/qoe?.*adformat='
action: reject
एक ही क्रिया वाले कई नियमों को आसान रखरखाव के लिए एक ही नियम में समेकित किया जा सकता है।
Action का उपयोग अनुरोधों या प्रतिक्रियाओं पर संचालन करने के लिए किया जाता है।
वर्तमान में, Action में निम्नलिखित विकल्प शामिल हैं: