HTTP / HTTPS ट्रैफ़िक को सूँघने के लिए मैं किस टूल का उपयोग कर सकता हूँ?


23

मैं एक कमांड लाइन टूल की तलाश कर रहा हूं जो HTTP / HTTPS अनुरोधों को रोक सकता है, जैसे कि जानकारी निकाल सकता है: (सामग्री, गंतव्य, आदि), विभिन्न विश्लेषण कार्य करें, और अंत में यह निर्धारित करें कि अनुरोध को छोड़ा जाना चाहिए या नहीं। आवेदन के लिए कानूनी अनुरोधों को अग्रेषित किया जाना चाहिए।

एक उपकरण जो प्रकृति के समान है tcpdump, विंडसर , या स्नॉर्ट , लेकिन HTTP स्तर पर काम करता है।

संदर्भ

जवाबों:


20

मितप्रोक्सी की कोशिश करें ।

  • मिटम्पॉक्सी HTTP के लिए एसएसएल-सक्षम मैन-इन-द-बीच प्रॉक्सी है। यह एक कंसोल इंटरफ़ेस प्रदान करता है जो ट्रैफ़िक प्रवाह का निरीक्षण करने और मक्खी पर संपादित करने की अनुमति देता है।

  • mitmdump एक ही कार्यक्षमता के साथ लेकिन उपयोगकर्ता इंटरफ़ेस के बिना, mitmproxy का कमांड-लाइन संस्करण है। HTTP के लिए tcpdump पर विचार करें।

विशेषताएं

  • HTTP अनुरोधों और प्रतिक्रियाओं को इंटरसेप्ट करें और उन्हें मक्खी पर संशोधित करें।
  • बाद में फिर से खेलना और विश्लेषण के लिए पूर्ण HTTP वार्तालाप सहेजें।
  • HTTP वार्तालाप के क्लाइंट-साइड को फिर से चलाएँ।
  • पहले से रिकॉर्ड किए गए सर्वर की HTTP प्रतिक्रियाओं को फिर से खेलना।
  • किसी निर्दिष्ट सर्वर पर ट्रैफ़िक अग्रेषित करने के लिए प्रॉक्सी मोड रिवर्स करें।
  • पायथन का उपयोग करके HTTP ट्रैफ़िक में स्क्रिप्टेड परिवर्तन करें।
  • अवरोधन के लिए SSL प्रमाणपत्र मक्खी पर उत्पन्न होते हैं।

स्क्रीनशॉट

   नमूना एस.एस.

उदाहरण

मैंने एक उदाहरण Jekyll बूटस्ट्रैप ऐप को सेटअप किया है जो मेरे लोकलहोस्ट पर पोर्ट 4000 पर सुन रहा है। इंटरसेप्ट करने के लिए यह ट्रैफ़िक है मैं निम्नलिखित कार्य करूँगा:

% mitmproxy --mode reverse:http://localhost:4000 -p 4001

फिर मेरे वेब ब्राउज़र ( http://localhost:4001) से पोर्ट 4001 पर मेरे माइटोप्रॉक्सी से कनेक्ट करें , जिसके परिणामस्वरूप माइटप्रॉक्सी है:

   mitmproxy w / JB # 1 का ss

फिर आप GETशीर्ष लेख से संबंधित जानकारी देखने के लिए किसी भी परिणाम का चयन कर सकते हैं GET:

   mitmproxy w / JB # 2 के ss

संदर्भ


3

कुछ स्थितियों के लिए, आप एक प्रॉक्सी का उपयोग कर सकते हैं जो आने वाले HTTP अनुरोधों को स्वीकार करता है और आउटगोइंग HTTPS अनुरोध करता है। एक उदाहरण के रूप में, मैं gitऔर github.com के बीच यातायात पर कब्जा करना चाहता था । मैंने मितप्रोक्सी का उपयोग किया :

mitmproxy -s httpser.py

कहाँ httpser.pyहै:

def request(context, flow):
  flow.request.scheme = 'https'
  flow.request.port = 443

मैं तो gitजैसे भाग गया :

export http_proxy="http://127.0.0.1:8080/"
git clone http://github.com/oxplot/difftr

अब wiresharkसुनने का उपयोग करके localhost, कोई सादा ट्रैफ़िक कैप्चर कर सकता है। प्रॉक्सी के बिना, लिथब gitHTTPS का उपयोग करने के लिए पुनर्निर्देशित करेगा ।


2

mitmproxy/mitmdump

करने के लिए Equalivant tcpdumpHTTPS है के लिए mitmdump। यहाँ कदम हैं:

  1. mitmproxyपैकेज स्थापित करें (macOS:) brew install mitmproxy
  2. निम्न आदेशों द्वारा mitmproxy CA प्रमाणपत्र स्थापित करें :

    $ mitmdump --mode reverse:http://mitm.it/ -p 8080
    $ wget --content-disposition http://localhost:8080/cert/pem
    $ open mitmproxy-ca-cert.pem
    # Open, install and mark the certificate as trusted.
    

अब, रिवर्स प्रॉक्सी का परीक्षण कैसे करें, इस पर सरल परीक्षा है:

  1. चलाएँ: mitmdump --mode reverse:https://example.com/ -p 4433
  2. किसी अन्य शेल में, चलाएँ curl https://localhost:4433:।

    अब, आपको पृष्ठ स्रोत देखना चाहिए और mitmdumpकमांड को आउटपुट का उत्पादन करना चाहिए:

    Proxy server listening at http://*:4433
    [::1]:49446: clientconnect
    [::1]:49446: GET https://example.com/ HTTP/2.0
              << 200  1.24k
    [::1]:49446: clientdisconnect
    

सभी ट्रैफ़िक के लिए, बस चलाएं: mitmdumpया mitmproxy

देखें: अधिक विवरण के लिए mitmproxyडॉक्स पृष्ठ


चार्ल्स प्रॉक्सी

यदि आप macOS पर हैं, तो चार्ल्स प्रॉक्सी ऐप (GUI) भी है जो सभी HTTP और SSL / HTTPS ट्रैफ़िक को मेजबानों के बीच देखने की अनुमति देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.