नेटवर्क इंटरफ़ेस पर HTTP अनुरोधों पर मक्खी की निगरानी?


79

डीबगिंग उद्देश्यों के लिए मैं नेटवर्क इंटरफ़ेस पर http अनुरोधों की निगरानी करना चाहता हूं।

एक भोली tcpdumpकमांड लाइन का उपयोग करके मुझे बहुत कम-स्तरीय जानकारी मिलती है और मुझे जो जानकारी चाहिए वह बहुत स्पष्ट रूप से प्रस्तुत नहीं की जाती है।

ट्रैफ़िक tcpdumpको किसी फ़ाइल के माध्यम से डंप करना और फिर उपयोग wiresharkकरने का नुकसान यह है कि यह ऑन-द-फ्लाई नहीं है।

मैं इस तरह एक उपकरण के उपयोग की कल्पना करता हूं:

$ monitorhttp -ieth0 --only-get --just-urls
2011-01-23 20:00:01 GET http://foo.example.org/blah.js
2011-01-23 20:03:01 GET http://foo.example.org/bar.html
...

मैं लिनक्स का उपयोग कर रहा हूं।


वहाँ एक ही सवाल पर जवाब है superuser.com/questions/67428/possible-to-catch-urls-in-linux
AlexD

जवाबों:


100

कोशिश करें tcpflow:

tcpflow -p -c -i eth0 port 80 | grep -oE '(GET|POST|HEAD) .* HTTP/1.[01]|Host: .*'

आउटपुट इस प्रकार है:

GET /search?q=stack+exchange&btnI=I%27m+Feeling+Lucky HTTP/1.1
Host: www.google.com

आप स्पष्ट रूप से grep स्टेटमेंट में अतिरिक्त HTTP तरीके जोड़ सकते हैं, और sedदो पंक्तियों को एक पूर्ण URL में संयोजित करने के लिए उपयोग कर सकते हैं।


इसका एक फायदा tcpflowयह है कि यह Ubuntu 10.04 (justsniffer, httpry are not) में डिफ़ॉल्ट रिपॉजिटरी में पहले से उपलब्ध है। पैकेज जानकारी में कहा गया है कि आईपी टुकड़े ठीक से दर्ज नहीं किए गए हैं - पता नहीं, अगर यह इस मामले के मामले के लिए मायने रखता है - शायद जस्टिसनिफर उन्हें बेहतर तरीके से संभाल सकता है।
मैक्सक्लेपज़िग

चूंकि आप सिर्फ URL को हथियाने वाले हैं, ऐसा नहीं लगता कि यह मामला होगा। Tcpflow इंटरफ़ेस में प्राप्त किए गए क्रम में पैकेट प्रदर्शित करेगा। इस प्रकार, यदि आप फ़ाइल सामग्री पर कब्जा करने की कोशिश कर रहे थे, तो आप पैकेट प्राप्त कर सकते हैं जो ऑर्डर से बाहर निकलते हैं और एक भ्रष्ट फ़ाइल का उत्पादन करेंगे। लेकिन सवाल में सूचीबद्ध आपका उपयोग मामला मुझे लगता है कि यह आपके लिए काम करेगा। बाद में छंटनी या व्हाट्सएप के लिए पैकेट डेटा के अधिक देखने के लिए आप अपने grep (या -o को हटा सकते हैं) को चौड़ा कर सकते हैं।
बहमट

@bahamat https URL के साथ "tcpflow" काम कर सकता है?
मौलिक पटेल

तेजी से, जवाब नहीं है। अतीत में एसएसएल इतना कमजोर था कि यदि आपके पास प्रवाह के लिए उपयोग की जाने वाली कुंजी तक पहुंच होती है तो आप उस कुंजी के साथ उपयोग किए गए किसी भी ट्रैफ़िक को डिक्रिप्ट कर सकते हैं। आज, अधिकांश साइटें सही-फॉरवर्ड-सीक्रेसी का उपयोग करेंगी और अल्पकालिक कुंजियों की बातचीत करेंगी। सबसे अच्छा विकल्प आज एक तथाकथित "वायर में टक्कर" पारदर्शी प्रॉक्सी है।
बहमट

1
ब्राउज़ करते समय, वाईफ़ाई का उपयोग करके कुछ भी नहीं मिला: sudo tcpflow -p -c -i wlo2 port 80 | grep -oE '(GET | POST | HEAD)। * HTTP / 1। [01]। Host: *।'
ses

23

ऐसा करने के लिए आप httpry या Justniffer का उपयोग कर सकते हैं ।

httpry फेडोरा पैकेज रिपॉजिटरी के माध्यम से उपलब्ध है।

उदाहरण कॉल:

# httpry -i em1

(जहां em1एक नेटवर्क इंटरफ़ेस नाम दर्शाता है)

उदाहरण आउटपुट:

2013-09-30 21:35:20    192.168.0.1     198.252.206.16    >    POST    unix.stackexchange.com    /posts/6281/editor-heartbeat/edit    HTTP/1.1
2013-09-30 21:35:20    198.252.206.16  192.168.0.1       < HTTP/1.1   200    OK
2013-09-30 21:35:49    192.168.0.1     198.252.206.16    >    POST    unix.stackexchange.com    /posts/validate-body                 HTTP/1.1
2013-09-30 21:35:49    198.252.206.16  192.168.0.1       < HTTP/1.1   200    OK
2013-09-30 21:33:33    192.168.0.1      92.197.129.26    >    GET     cdn4.spiegel.de    /images/image-551203-breitwandaufmacher-fgoe.jpg    HTTP/1.1

(आउटपुट थोड़ा छोटा है)


मैं शीर्ष लेख या अनुरोध या प्रतिक्रिया का मुख्य भाग कैसे दिखा सकता हूं?
मोहम्मद नौरेलिन

कुछ भी नहीं मिला सुंदरी http -i wlo2 (जहां wlo2 वाईफाई डिवाइस के नाम से है)
ses

7

मैं कुछ इसी तरह की तलाश में था, अतिरिक्त आवश्यकता के साथ कि यह https के लिए भी काम करना चाहिए ।

pcap आधारित टूल जैसे tcpflow httpry urlsnarfऔर अन्य tcpdump कुंग फू http के लिए अच्छी तरह से काम करते हैं, लेकिन सुरक्षित अनुरोधों के लिए आप भाग्य से बाहर हैं।

मैं urldump के साथ आया , जो माइटप्रॉक्सी के आसपास एक छोटा आवरण है ।
iptablesप्रॉक्सी को ट्रैफ़िक पुनर्निर्देशित करने के लिए उपयोग किया जाता है, इसलिए यह पारदर्शी रूप से काम करता है।

$ sudo urldump   
http://docs.mitmproxy.org/en/stable/certinstall.html
http://docs.mitmproxy.org/en/stable/_static/js/modernizr.min.js
https://media.readthedocs.org/css/sphinx_rtd_theme.css
https://media.readthedocs.org/css/readthedocs-doc-embed.css
https://media.readthedocs.org/javascript/readthedocs-doc-embed.js
...

अधिक जानकारी के लिए README देखें ।


1

मुझे लगता है कि विंडसर आप जो चाहते हैं वह करने में सक्षम है

प्लस साइड पर, यह बहुत शक्तिशाली है, आप इसे एप्ट-गेट के माध्यम से स्थापित कर सकते हैं, और यह जीयूआई के साथ आता है।

हालाँकि, फ़िल्टर सिस्टम जटिल है - लेकिन इसमें अच्छे ट्यूटोरियल बनाए गए हैं, और यह आपको ट्रैफ़िक का लाइव या स्टार्ट / स्टॉप अवलोकन देगा।

'Http' शब्द को फ़िल्टर में टाइप करने से आपको वह मिलेगा जो आप खोज रहे हैं (यानी उपयोगकर्ताओं द्वारा उत्पन्न मुख्य ट्रैफ़िक)।


जानना चाहेंगे कि इसे क्यों डाउन किया गया। Wireshark सिर्फ http ट्रैफ़िक के लिए फ़्लाई और फ़िल्टर पर इंटरफ़ेस पढ़ सकता है।
केविन एम

@ केविन एम, खैर, मैंने आपके जवाब को गलत नहीं ठहराया। लेकिन निष्पक्ष होने के लिए आपका उत्तर थोड़ा अधूरा और बंद विषय है। 1) यह विवरण याद करता है कि वास्तव में वायरशर्क का उपयोग कैसे किया जाना चाहिए, यानी कि एक फिल्टर का उपयोग किया जाना चाहिए, सटीक फ़िल्टर अभिव्यक्ति, आदि 2) यह कमांड लाइन के उपयोग की अनुमति नहीं देता है जैसे प्रश्न में स्केच किया गया है - भले ही मैं ठीक हूं जीयूआई दृष्टिकोण, डिफ़ॉल्ट दृश्य जीईटी अनुरोधों को प्रदर्शित करता है, जहां डोमेन नाम को साइड में प्रदर्शित नहीं किया जाता है - स्केच किए गए उपयोग के मामले के लिए यह सुविधाजनक नहीं है।
मैक्सक्लेपज़िग

मेरा मतलब है: एस / आपका जवाब / फोबिया का जवाब /
मैक्सक्लेपजिग

1

एक और अच्छा विकल्प nethogs हो सकता है

फ़ेडोरा कोर पैकेज के बीच उपलब्ध है, और सेंटो पर आप इसे एपेल रेपो के माध्यम से प्राप्त कर सकते हैं।


1

कमांड लाइन प्रोग्राम भी है urlsnarfजो dsniff पैकेज का हिस्सा है (जो कि उदाहरण के लिए फेडोरा 19 के साथ भी पैक किया गया है)।

उदाहरण:

# urlsnarf -i em1
urlsnarf: listening on em1 [tcp port 80 or port 8080 or port 3128]
jhost - - [29/May/2014:10:25:09 +0200] "GET http://unix.stackexchange.com/questions HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/ HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/layout/css/style-V5-2-2.css HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/layout/jscfg/http/global-V5-2-2.js HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/layout/js/http/javascript-V5-2-2.js HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/layout/js/http/interface-V5-2-2.js HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/layout/js/http/netmind-V5-2-2.js HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "GET http://www.spiegel.de/favicon.ico HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "POST http://ocsp.thawte.com/ HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
jhost - - [29/May/2014:10:25:36 +0200] "POST http://ocsp.thawte.com/ HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0
[..]

(जब एसई के लिए पहले ब्राउज़ करें और फिर spiegel.de पर जाएं)

सीमाएं: dsnarf IPv6 का समर्थन नहीं करता है । मैं फेडोरा 19 पर 0.17 के साथ इस बग रिपोर्ट को पुन: पेश कर सकता हूं। यह भी उबंटू भरोसेमंद एटीएम (आकर्षक लुक के तहत ठीक काम करता है) के तहत टूट गया लगता है।

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