मैं tcpdump को tcp हेडर कैसे प्रिंट नहीं कर सकता हूँ?


28

मैंने यह कोशिश की:

tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'

मुझे इसके केवल एसेसी हिस्से की जरूरत है। मैं बाकी को कैसे हटाऊं?


1
tshark के साथ आप इसे कर सकते हैं: tshark -l -i eth0 -f 'पोर्ट 6667 और अधिक से अधिक 74' -T फ़ील्ड -e डेटा
Marcin

यह कहता है कि 28 पैकेट पकड़े गए लेकिन STDOUT में कुछ भी नहीं छपा।
कोडर

क्या आपका मतलब है ASCII7?
मिरेका वुटकोविसी

जवाबों:


15

जैसा कि जोश का सुझाव है, tcpflow किसी फ़ाइल या STDOUT में सिर्फ TCP पैकेट डेटा प्रिंट कर सकता है। आप tcpdump को इस तरह tcpflow कर सकते हैं:

tcpdump -i lo -l -w - port 23 | tcpflow -C -r -

वार्तालाप के केवल एक पक्ष को देखने के लिए, आप tcpdump के लिए फ़िल्टर का उपयोग कर सकते हैं, उदा dst port 23


4
आपको tcpflowरूट के रूप में शुरुआत करने की आवश्यकता क्यों होगी ?
रुसलान

5

मुझे सटीक सिंटैक्स के बारे में यकीन नहीं है tcpdump... वास्तव में, मैंने इस प्रश्न को पसंदीदा के रूप में चिह्नित किया है क्योंकि मैं जानना चाहूंगा! लेकिन एक वैकल्पिक समाधान के रूप में, आप tcpflowइसके बजाय उपयोग करने का प्रयास कर सकते हैं । यह अनिवार्य रूप से उसी तरह काम करता है, लेकिन यह ASCII आउटपुट को बेहतर तरीके से प्रिंट करता है; यह हेडर और प्रिंट के पैकेट को क्रमिक रूप से एक प्रवाह के रूप में बाहर कर देता है, इसलिए यह पढ़ने में आसान है और समय की तुलना में अनुसरण करता है tcpdump


5

मुझे लगता है कि सबसे सुंदर समाधान सिर्फ tcpdump को खोदना है। किसी भी प्रकार का कोई पाइप नहीं:

tcpflow -c port 6667

और बस।


तुम मेरी जान बचाई, मैं तुम्हें एक कुकी खरीदना चाहते हैं
gdaras

4

ऐसा करने का एक त्वरित और गंदा तरीका स्ट्रिंग्स के माध्यम से आउटपुट को फ़िल्टर करना है:

tcpdump -nli eth0 '(port 6667) and (length > 74)' -s 0 -w - | strings

कभी-कभी आपके पास अन्य उपकरण नहीं होते हैं और पेलोड में एक त्वरित झांकने के लिए यह पर्याप्त है। यह अच्छा नहीं है अगर आपको इंजेक्शन या सटीक विश्लेषण के लिए सटीक पेलोड की आवश्यकता है, तो निश्चित रूप से।


1

यदि आपको केवल ASCII भाग की आवश्यकता हो तो आप इसका उपयोग कर सकते हैं: tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'|sed 's/\.//g'या एनक्रेप के साथ:ngrep -d eth0 -lq . '(port 6667) and (length > 74)' |sed -rn '/^ /s/\.//gp'


1

पिछले हफ्ते मुझे भी यही समस्या थी - मैंने इसके बजाय वॉशर्सक गुई का इस्तेमाल किया और दिलचस्प पैकेट के लिए "कॉपी पठनीय अस्सी" किया।

मैं (सफलतापूर्वक) एक वेब-सेवा और उसके एक्सएमएल-उत्तर के लिए http अनुरोध के साथ एक समस्या को कम करने की कोशिश कर रहा था।

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