
HTTP/HTTPS MITM प्रॉक्सी और रिकॉर्डर।
Hyperfox एक सुरक्षा ऑडिटिंग टूल है जो HTTP और HTTPS ट्रैफ़िक को दो बिंदुओं के बीच प्रॉक्सी और रिकॉर्ड करता है।
आप निम्नलिखित कमांड के साथ hyperfox के नवीनतम संस्करण को /usr/local/bin में स्थापित कर सकते हैं (एडमिन विशेषाधिकार आवश्यक हैं):
curl -sL 'https://raw.githubusercontent.com/malfunkt/hyperfox/master/install.sh' | sh
यदि आप इस वैन से मुफ्त कैंडी स्वीकार नहीं करना चाहते हैं, तो आप हमारे रिलीज़ पेज से एक रिलीज़ ले सकते हैं और इसे मैन्युअल रूप से स्थापित कर सकते हैं।
hyperfox बनानास्रोत से hyperfox बनाने के लिए आपको Go और एक C कंपाइलर की आवश्यकता होगी:
go install का उपयोग करके hyperfox बनाएं और स्थापित करें:
go install github.com/malfunkt/hyperfox
Hyperfox एक पारदर्शी HTTP प्रॉक्सी सर्वर बनाता है और इसे लोकलहोस्ट पर पोर्ट 1080/TCP से बांधता है (-addr 127.0.0.1 -http 1080). प्रॉक्सी सर्वर सादे टेक्स्ट HTTP अनुरोधों को पढ़ता है और उन्हें लक्ष्य गंतव्य पर रीडायरेक्ट करता है (गंतव्य की पहचान करने के लिए Host हेडर का उपयोग किया जाता है), जब लक्ष्य गंतव्य जवाब देता है, तो Hyperfox प्रतिक्रिया को इंटरसेप्ट करता है और मूल क्लाइंट को अग्रेषित करता है।
मूल और गंतव्य के बीच सभी HTTP संचार Hyperfox द्वारा इंटरसेप्ट किए जाते हैं और एक SQLite डेटाबेस पर रिकॉर्ड किए जाते हैं जो स्वचालित रूप से बनाया जाता है। हर बार Hyperfox शुरू होने पर, एक नया डेटाबेस बनाया जाता है (उदा.: hyperfox-00123.db). आप स्पष्ट रूप से एक डेटाबेस नाम प्रदान करके इस व्यवहार को बदल सकते हैं (उदा.: -db traffic-log.db).
डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ Hyperfox लॉन्च करें:
hyperfox
किसी भी HTTP पेज का अनुरोध करने के लिए cURL का उपयोग करें, -x पैरामीटर cURL को hyperfox को प्रॉक्सी के रूप में उपयोग करने के लिए कहता है:
curl -x http://127.0.0.1:1080 example.com
आपको Hyperfox के आउटपुट में अनुरोधित पेज का एक लॉग देखने में सक्षम होना चाहिए:
...
127.0.0.1:44254 - - [11/Apr/2020:19:19:48 -0500] "GET http://example.com/ HTTP/1.1" 200 -1
-ui)
Hyperfox UI को सक्षम करने के लिए -ui पैरामीटर का उपयोग करें जो एक नई ब्राउज़र विंडो में खुलेगा:
hyperfox -db records.db -ui
उपरोक्त कमांड एक वेब सर्वर बनाता है जो 127.0.0.1:1984 से बंधता है। यदि आप बाइंड एड्रेस या पोर्ट बदलना चाहते हैं तो -ui-addr स्विच का उपयोग करें:
hyperfox -db records.db -ui -ui-addr 127.0.0.1:3000
UI सर्वर पता बदलना विशेष रूप से उपयोगी होता है जब Hyperfox किसी दूरस्थ या हेडलेस होस्ट पर चल रहा हो और आप किसी अन्य होस्ट से UI देखना चाहते हैं।
UI सक्षम करने से एक न्यूनतम REST API भी सक्षम होता है (127.0.0.1:4891 पर) जो फ्रंट-एंड एप्लिकेशन द्वारा उपभोग किया जाता है।
कृपया ध्यान दें कि Hyperfox का REST API केवल एक यादृच्छिक रूप से उत्पन्न कुंजी द्वारा संरक्षित है जो हर बार Hyperfox शुरू होने पर बदलती है, आपके उपयोग के मामले के आधार पर यह उपयुक्त नहीं हो सकता है।
जब -ui-addr पैरामीटर 127.0.0.1 से भिन्न होता है, तो Hyperfox एक QR कोड आउटपुट करेगा ताकि मोबाइल उपकरणों से कनेक्ट करना आसान हो:
hyperfox -db records.db -ui -ui-addr 192.168.1.23:1984
-ca-cert और -ca-key)SSL/TLS कनेक्शन एंड-टू-एंड सुरक्षित होते हैं और चुपके से सुनने से सुरक्षित होते हैं। Hyperfox किसी क्लाइंट और एक सुरक्षित गंतव्य के बीच होने वाली किसी भी चीज़ को नहीं देख पाएगा। यह तभी मान्य है जब तक विश्वास की श्रृंखला अछूती रहती है।
मान लीजिए कि क्लाइंट एक रूट CA प्रमाणपत्र पर भरोसा करता है जो Hyperfox को ज्ञात है, यदि ऐसा होता है तो Hyperfox उन प्रमाणपत्रों को जारी करने में सक्षम होगा जो क्लाइंट द्वारा भरोसेमंद होंगे।
ऐसे नकली रूट CA फ़ाइलों के उदाहरण यहां पाए जा सकते हैं:
आप अपना स्वयं का रूट CA प्रमाणपत्र और कुंजी भी उत्पन्न कर सकते हैं।
आपके ऑपरेटिंग सिस्टम के आधार पर, रूट CA प्रमाणपत्र स्थापित करने के कई तरीके हैं।
यह QR कोड मोबाइल डिवाइस पर Hyperfox का रूट CA स्थापित करते समय काम आ सकता है:
Hyperfox root CA certificate
Hyperfox को वह रूट CA प्रमाणपत्र और कुंजी प्रदान करने के लिए -ca-cert और -ca-key फ़्लैग का उपयोग करें जिसे आप उपयोग करना चाहते हैं:
hyperfox -ca-cert rootCA.crt -ca-key rootCA.key
उपरोक्त कमांड एक विशेष सर्वर बनाता है और इसे 127.0.0.1:10443 से बांधता है, यह सर्वर एक SSL/TLS कनेक्शन आने की प्रतीक्षा करता है। जब कोई नया SSL/TLS कनेक्शन आता है, Hyperfox गंतव्य नेमसर्वर की पहचान करने और उसके लिए SSL/TLS प्रमाणपत्र बनाने के लिए SNI एक्सटेंशन का उपयोग करता है, यह प्रमाणपत्र प्रदान की गई रूट CA कुंजी से हस्ताक्षरित होता है।
उपयुक्त TLS पैरामीटर और -http 443 के साथ Hyperfox लॉन्च करें (पोर्ट 443 के लिए एडमिन विशेषाधिकार आवश्यक हैं)।
sudo hyperfox -ca-cert ./ca/rootCA.crt -ca-key ./ca/rootCA.key -https 443
cURL का उपयोग करके example.com पर HTTPs अनुरोध बनाएं: -resolve विकल्प cURL को DNS सत्यापन छोड़ने और 127.0.0.1 का उपयोग करने का निर्देश देता है जैसे कि यह example.com का वैध पता हो, जबकि -k पैरामीटर cURL को किसी भी TLS प्रमाणपत्र को स्वीकार करने का निर्देश देता है।
curl -k -resolve example.com:443:127.0.0.1 https://example.com
आपको Hyperfox के आउटपुट में अनुरोधित पेज का एक लॉग देखने में सक्षम होना चाहिए:
127.0.0.1:36398 - - [11/Apr/2020:19:36:56 -0500] "GET https://example.com/ HTTP/2.0" 200 -1
/etc/hosts के माध्यम सेआप जिस होस्ट का निरीक्षण करना चाहते हैं उसे अपनी /etc/hosts फ़ाइल में जोड़ें:
example.com 127.0.0.1
अपनी पसंद के विकल्पों के साथ Hyperfox चलाएं, बस याद रखें कि आपको HTTP के लिए पोर्ट 80 और HTTPS के लिए पोर्ट 443 का उपयोग करना चाहिए, और इसके लिए एडमिन विशेषाधिकार आवश्यक हैं। -http और -https के अतिरिक्त एक वैध DNS रिज़ॉल्वर के साथ -dns पैरामीटर का उपयोग करें:
sudo hyperfox -ui -http 80 -dns 8.8.8.8
यह Hyperfox को OS DNS रिज़ॉल्वर को छोड़ने और एक वैकल्पिक का उपयोग करने के लिए प्रेरित करेगा (याद रखें कि example.com 127.0.1 की ओर इशारा करता है)।
अब cURL का उपयोग करें और गंतव्य पर जाने का प्रयास करें:
curl http://example.com
Hyperfox अनुरोध को कैप्चर करेगा और इसे अपने आउटपुट में प्रिंट करेगा:
127.0.0.1:41766 - - [11/Apr/2020:19:43:30 -0500] "GET http://example.com/ HTTP/1.1" 200 -1
देखें Hyperfox और arpfox के साथ MITM हमला.
एक मुद्दा चुनें, उसे ठीक करें और एक पुल रिक्वेस्ट भेजें।
कॉपीराइट (c) 2012-आज José Nieto, https://xiam.io
इसके द्वारा, किसी भी व्यक्ति को इस सॉफ़्टवेयर और संबंधित दस्तावेज़ फ़ाइलों ("सॉफ़्टवेयर") की एक प्रति प्राप्त करने के लिए, बिना किसी शुल्क के, सॉफ़्टवेयर में बिना किसी प्रतिबंध के व्यवहार करने की अनुमति प्रदान की जाती है, जिसमें बिना किसी सीमा के, सॉफ़्टवेयर का उपयोग, प्रतिलिपि, संशोधन, विलय, प्रकाशन, वितरण, उप-लाइसेंसिंग और/या प्रतियां बेचने के अधिकार शामिल हैं, और जिन व्यक्तियों को सॉफ़्टवेयर प्रदान किया जाता है, उन्हें निम्नलिखित शर्तों के अधीन ऐसा करने की अनुमति दी जाती है:
उपरोक्त कॉपीराइट नोटिस और यह अनुमति नोटिस सॉफ़्टवेयर की सभी प्रतियों या महत्वपूर्ण भागों में शामिल किया जाएगा।
सॉफ़्टवेयर "जैसा है" प्रदान किया जाता है, किसी भी प्रकार की वारंटी के बिना, स्पष्ट या निहित, जिसमें बिना किसी सीमा के व्यापारिकता, किसी विशेष उद्देश्य के लिए उपयुक्तता और उल्लंघन न होने की वारंटी शामिल है। किसी भी स्थिति में लेखक या कॉपीराइट धारक किसी भी दावे, क्षति या अन्य देयता के लिए उत्तरदायी नहीं होंगे, चाहे वह किसी अनुबंध, अपकृत्य या अन्यथा की कार्रवाई में हो, जो सॉफ़्टवेयर से या सॉफ़्टवेयर के उपयोग या अन्य लेन-देन से उत्पन्न होता है।