আমি এটি চেষ্টা করেছি:
tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'
আমার এটির কেবল আসকি অংশ দরকার। কীভাবে বাকিটা সরিয়ে ফেলব?
আমি এটি চেষ্টা করেছি:
tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'
আমার এটির কেবল আসকি অংশ দরকার। কীভাবে বাকিটা সরিয়ে ফেলব?
উত্তর:
জোশের পরামর্শ অনুসারে, টিসিপিফ্লো কেবল একটি টিসিপি প্যাকেট ডেটা কোনও ফাইল বা এসডিডিআউটে মুদ্রণ করতে পারে। আপনি tcpdump টিসিপিফ্লো এর মতো পাইপ করতে পারেন:
tcpdump -i lo -l -w - port 23 | tcpflow -C -r -
কথোপকথনের কেবল এক পক্ষ দেখতে, আপনি tcpdump এর জন্য ফিল্টার ব্যবহার করতে পারেন, যেমন dst port 23
।
tcpflow
রুট হিসাবে শুরু করার প্রয়োজন হবে কেন ?
আমি সঠিক সিনট্যাক্স সম্পর্কে নিশ্চিত নই tcpdump
... আসলে, আমি এই প্রশ্নটিকে প্রিয় হিসাবে চিহ্নিত করেছি কারণ আমি জানতে চাই! তবে বিকল্প সমাধান হিসাবে আপনি এর tcpflow
পরিবর্তে ব্যবহার করার চেষ্টা করতে পারেন । এটি মূলত একইভাবে কাজ করে তবে এটি ASCII আউটপুট আরও ভালভাবে প্রিন্ট করে; এটি ধারাবাহিকভাবে একটি প্রবাহ হিসাবে শিরোনাম এবং মুদ্রণ প্যাকেটগুলি বাদ দেয়, তাই এর চেয়ে অনেক সময় পড়া এবং অনুসরণ করা সহজ tcpdump
।
আমি মনে করি সবচেয়ে মার্জিত সমাধান হ'ল tcpdump খনন। কোনও ধরণের পাইপ নেই:
tcpflow -c port 6667
এবং এটাই.
এটি করার একটি দ্রুত এবং নোংরা উপায় হ'ল স্ট্রিংগুলির মাধ্যমে আউটপুট ফিল্টার করা:
tcpdump -nli eth0 '(port 6667) and (length > 74)' -s 0 -w - | strings
কখনও কখনও আপনার কাছে অন্য সরঞ্জাম নেই এবং পেডলোডে দ্রুত উঁকি দেওয়ার জন্য এটি যথেষ্ট। অবশ্যই যদি আপনার ইঞ্জেকশন বা সঠিক বিশ্লেষণের জন্য সঠিক পেডলোডের প্রয়োজন হয় তবে এটি ভাল নয়।
আপনার যদি কেবলমাত্র 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'
গত সপ্তাহে আমারও একই সমস্যা হয়েছিল - আমি তার পরিবর্তে ওয়্যারশার্ক গুই ব্যবহার করেছি এবং আকর্ষণীয় প্যাকেটের জন্য একটি "অনুলিপি পাঠযোগ্যযোগ্য আসকি" করেছি।
আমি কোনও ওয়েব-পরিষেবাতে এবং এর এক্সএমএল-উত্তরটির জন্য একটি http অনুরোধের সাথে (সাফল্যের সাথে) কোনও সমস্যা সমাধান করার চেষ্টা করছিলাম।