विंडसरक में प्रक्रिया / पीआईडी ​​द्वारा फ़िल्टर करें


117

क्या Wireshark का उपयोग करके एक विशेष प्रक्रिया आईडी के आधार पर एक टीसीपी / एसएसएल स्ट्रीम को फ़िल्टर / अनुसरण करने का एक तरीका है ?


7
इस लेखन के रूप में, Wireshark अभी भी इस सुविधा का समर्थन नहीं करता है; हालाँकि, आप इसकी प्रगति (यदि हो तो) को [बग ११ [४] [१] में ट्रैक कर सकते हैं। [१]: Bugs.wireshark.org/bugzilla/show_bug.cgi?id=1184
क्रिस्टोफर मेनार्ड

जवाबों:


58

मैं नहीं देखता कि कैसे। पीआईडी ​​इसे तार (आम तौर पर बोलना) पर नहीं बनाता है, साथ ही वाइरसार्क आपको तार पर क्या देखने की अनुमति देता है - संभवतः सभी मशीनें जो तार पर संचार कर रही हैं। प्रक्रिया आईडी विभिन्न मशीनों में अद्वितीय नहीं हैं, वैसे भी।


7
अच्छा बिंदु..क्या मैंने भी सोचा था .. मुझे इसे बंद करने से पहले एक दिन का इंतजार करने दें, बस वहाँ पर एक वायरशार्क निंजा है जो ऐसा करने का प्रबंधन करता है ..
रयान फर्नांडीस

30
Wireshark को पता है कि किस पोर्ट का उपयोग किया जा रहा है और OS पोर्ट के उपयोग की प्रक्रिया का PID जानता है। कोड परिवर्तन के साथ, विंडसर्क के लिए पोर्ट से लेकर पीआईडी ​​तक मैप करना संभव है। कुछ ऐसे मामले हैं जहां यह तब विफल होगा जब OS पोर्ट के लिए PID के लिए OS से पूछताछ करने से ठीक पहले OS को एक अलग ऐप में पोर्ट करता है। तो यह मूर्खतापूर्ण सबूत और गड़बड़ सबूत नहीं होगा लेकिन अगर उपयोगकर्ता को इन सीमाओं से अवगत कराया जाता है तो भी यह एक उपयोगी विशेषता होगी।
दूजो

मैं कहता हूं कि पोर्ट के लिए मॉड्यूल जोड़ते हैं जो पोर्ट के लिए सुनता है / बंद करता है और पोर्ट के लिए पीआईडी ​​को मैप करता है। मुख्य प्रक्रिया के साथ सिंक करें और आपको एक सही पोर्ट-टू-प्रोसेस मैपर मिल गया है। हालाँकि, प्रश्न टिप्पणी से बग को पढ़ना, मॉड्यूल बनाना सरल नहीं है।
वेस्पर

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

90

बस अगर आप एक वैकल्पिक रास्ता तलाश रहे हैं और आपके द्वारा उपयोग किया जाने वाला वातावरण Windows है, तो Microsoft का नेटवर्क मॉनिटर 3.3 एक अच्छा विकल्प है। इसमें प्रक्रिया का नाम कॉलम है। आप आसानी से इसे संदर्भ मेनू का उपयोग करके फ़िल्टर में जोड़ते हैं और फ़िल्टर लागू करते हैं .. हमेशा की तरह GUI बहुत सहज है ...


10
Microsoft नेटवर्क मॉनिटर 3.4 microsoft.com/en-us/download/details.aspx?id=4865
gt

39
माइक्रोसॉफ्ट मैसेज एनालाइजर भी है जो मूल रूप से माइक्रोसॉफ्ट के वर्शार्क का संस्करण है (और जैसा कि मैं समझता हूं कि नेटवर्क मॉनिटर का सक्सेसर है), लेकिन थोड़ा बेहतर एकीकृत है। 'Etw' -> 'EtwProviderMsg' के तहत कॉलम चयनकर्ता में, 'PID' के लिए एक कॉलम है। यह अच्छा काम करता है!
कैमरन

3
सटीक पथ EtwProviderMsg है -> EventRecord -> हैडर ->
ProcessId

मैंने अभी इसकी कोशिश की और यह कि Microsoft मैसेज एनालाइजर इस तरह का एक सुस्त सॉफ्टवेयर है! लगभग मेरे सिस्टम को क्रॉल में लाया गया। बहुत ही काउंटर यूआई भी। क्या किसी को एकत्रित डेटा के साथ सूची को साफ़ करने का कोई तरीका मिला? मैंने कचरे के उस टुकड़े को छोड़ दिया और उसकी स्थापना रद्द कर दी। (PS। बहुत बुरा है कि Wireshark देवों ने PID / Process नाम को फ़िल्टर में पोर्ट से जोड़ने के लिए एक सुविधा नहीं जोड़ी। यह करना बहुत आसान है। यह देखने के लिए महत्वपूर्ण हो सकता है कि इसके स्टार्टअप के दौरान प्रक्रिया में क्या हो रहा है। वर्कअराउंड मैं SysInternals से ProcMon का उपयोग करके सामान्य विचार प्राप्त कर सकता था।)
c00000fd

1
मैंने हाल ही में Microsoft संदेश विश्लेषक की खोज की और यह एक ऐसा उपयोगी उपकरण है! यह कैसे संभव है कि मैंने इसके बारे में कभी नहीं सुना। इसलिए कम आंका गया। विंडसरक की तुलना में विंडोज के साथ बेहतर एकीकरण के कारण इसमें बेहतरीन फ़िल्टरिंग क्षमताएं हैं। मैंने अपनी कंपनी के सभी मेजबानों पर इसे दैनिक आधार पर काम करने के ~ 3 महीनों में बदल दिया है। उस उत्तर के तहत उसकी टिप्पणी के लिए @Cameron को बहुत सराहना! :-)
स्किपर

16

आप तारों की संख्या से पोर्ट संख्या से पोर्ट संख्या से मेल कर सकते हैं, कहते हैं, netstat जो आपको उस पोर्ट पर सुनने वाली प्रक्रिया की पीआईडी ​​बताएगा।


12
ठीक है, यह काम नहीं कर सकता..यह कार्यक्रम बहुत सारे स्थानीय और दूरदराज के बंदरगाहों को खोलता है और बंद करता है
रयान फर्नांडिस

11

Microsoft संदेश विश्लेषक v1.4 का उपयोग करें

क्षेत्र चयनकर्ता से ProcessId पर नेविगेट करें।

Etw
-> EtwProviderMsg
--> EventRecord
---> Header
----> ProcessId

कॉलम के रूप में राइट क्लिक करें और जोड़ें


1
मुझे इस दिशा में इंगित करने के लिए धन्यवाद, यह वही है जिसकी मुझे आवश्यकता थी। एफडब्ल्यूआईडब्ल्यू, "प्रोकॉन" शीर्ष-स्तरीय समूह में एक ही प्रोसेसआईड, साथ ही अन्य जानकारी जैसे कि प्रक्रिया का नाम, पेरेंटआईड, आदि शामिल है
टोबीस जे

3

विंडोज पर एक प्रायोगिक बिल्ड है जो ऐसा करता है, जैसा कि मेलिंग सूची में वर्णित है, स्थानीय प्रक्रिया नाम से फ़िल्टर


Wireshark के भीतर, "आप वायर नंबर से पोर्ट संख्या तक के पोर्ट नंबर से मिलान कर सकते हैं, कहते हैं, netstat जो आपको पोर्ट पर सुनने वाली प्रक्रिया का PID बताएगा।" टॉम वुल्फ्रे की टिप्पणी से सामान, इसलिए यह (संदेश नोट्स के रूप में) उस तंत्र की सीमाओं के अधीन है।

3

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

एक कार्यक्रम है जिसे नॉनट कहा जाता है जो बिना इंटरनेट के उपयोग के एक प्रोग्राम चलाने की अनुमति देता है (मेरे पास इसके सिस्टम के साथ सबसे अधिक प्रोग्राम लॉन्चर्स हैं )। यह समूह nonet में एक प्रक्रिया को चलाने के लिए setguid का उपयोग करता है और इस समूह से सभी कनेक्शनों को अस्वीकार करने के लिए एक iptables नियम सेट करता है ।

अद्यतन: अब तक मैं एक और भी सरल प्रणाली का उपयोग करता हूं, आप आसानी से फ़र्म के साथ एक पठनीय iptables कॉन्फ़िगरेशन कर सकते हैं, और केवल sgएक विशिष्ट समूह के साथ प्रोग्राम चलाने के लिए प्रोग्राम का उपयोग कर सकते हैं । Iptables आपको ट्रैफ़िक को फिर से चलाने के लिए बदल देता है ताकि आप एक अलग इंटरफ़ेस या पोर्ट व्हिथ पर एक स्थानीय प्रॉक्सी को भी रूट कर सकें जो आपको वायरशर्क में फ़िल्टर करने की अनुमति देता है या यदि आप अपने सभी समय को अक्षम नहीं करना चाहते हैं तो पैकेट को सीधे iptables से लॉग इन करें। यातायात की जाँच कर रहे हैं।

समूह में एक कार्यक्रम चलाने और निष्पादन जीवनकाल के लिए iptables के साथ अन्य सभी ट्रैफ़िक को काटने के लिए इसे अनुकूलित करना बहुत जटिल नहीं है और फिर आप केवल इस प्रक्रिया से ट्रैफ़िक पर कब्जा कर सकते हैं।

अगर मैं कभी इसे लिखने के लिए चक्कर लगाता हूं, तो मैं यहां एक लिंक पोस्ट करूंगा।

एक अन्य नोट पर, आप हमेशा एक वर्चुअल मशीन में एक प्रक्रिया चला सकते हैं और इसके द्वारा किए गए कनेक्शन को अलग करने के लिए सही इंटरफ़ेस को सूँघ सकते हैं, लेकिन यह काफी घटिया समाधान होगा ...


3

यदि आप किसी ऐसे एप्लिकेशन का पालन करना चाहते हैं जिसे अभी भी शुरू करना है तो यह निश्चित रूप से संभव है:

  1. डॉकटर स्थापित करें (देखें https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/ )
  2. एक टर्मिनल खोलें और एक छोटा कंटेनर चलाएं: docker run -t -i ubuntu /bin/bash (अपने पसंदीदा डिस्ट्रो को "ubuntu" बदलें, यह आपके वास्तविक सिस्टम के समान नहीं है)
  3. उसी तरह का उपयोग करके कंटेनर में अपना एप्लिकेशन इंस्टॉल करें, जिसे आप वास्तविक सिस्टम में इंस्टॉल करेंगे।
  4. अपने वास्तविक सिस्टम में वायरशर्क शुरू करें, कैप्चर> विकल्पों पर जाएं। खुलने वाली विंडो में आपको अपने सभी इंटरफेस दिखाई देंगे। चुनने के बजाय any, wlan0, eth0, ... चुनें नया आभासी इंटरफेसdocker0 बजाय।
  5. कब्जा करना शुरू करो
  6. कंटेनर में अपना आवेदन शुरू करें

आपको कंटेनर में अपना सॉफ़्टवेयर चलाने के बारे में कुछ संदेह हो सकते हैं, इसलिए यहां उन प्रश्नों के उत्तर दिए गए हैं जो आप शायद पूछना चाहते हैं:

  • क्या मेरा एप्लिकेशन कंटेनर के अंदर काम करेगा? लगभग निश्चित रूप से हाँ, लेकिन आपको इसे काम करने के लिए डॉकटर के बारे में थोड़ा सीखना होगा
  • क्या मेरा आवेदन धीमा नहीं चलेगा? नगण्य। यदि आपका प्रोग्राम कुछ ऐसा है जो एक सप्ताह के लिए भारी गणना चलाता है, तो अब एक सप्ताह और 3 सेकंड लग सकते हैं
  • क्या होगा अगर मेरा सॉफ्टवेयर या कुछ और कंटेनर में टूट जाए? यह कंटेनर के बारे में अच्छी बात है। जो कुछ भी अंदर चल रहा है वह केवल वर्तमान कंटेनर को तोड़ सकता है और बाकी सिस्टम को चोट नहीं पहुंचा सकता है।

0

कुछ मामलों में आप प्रक्रिया आईडी द्वारा फ़िल्टर नहीं कर सकते हैं। उदाहरण के लिए, मेरे मामले में मुझे एक प्रक्रिया से ट्रैफ़िक सूँघने की ज़रूरत थी। लेकिन मुझे इसकी कॉन्फिग टार्गेट मशीन आईपी-एड्रेस, ip.dst==someipऐड फिल्टर और वॉयला मिला। यह किसी भी मामले में काम नहीं करेगा, लेकिन कुछ के लिए यह उपयोगी है।


0

पोर्ट नंबर का उपयोग कर प्राप्त करें netstat:

netstat -b

और फिर Wireshark फ़िल्टर का उपयोग करें:

tcp.port == portnumber

मुझे यकीन नहीं है कि यह एक मूर्खतापूर्ण तरीका है। यदि आपके पास पोर्ट पर सुनने वाला टीसीपी सर्वर है, लेकिन कर्नेल की टीसीपी हैंडलिंग को ब्लॉक नहीं किया है, तो या तो कर्नेल या आपका एप्लिकेशन पोर्ट पर प्रतिक्रिया दे सकता है।
अनेब

0

straceइस स्थिति के लिए उपयोग अधिक उपयुक्त है।

strace -f -e trace=network -s 10000 -p <PID>;

केवल नेटवर्क नेटवर्क-कॉल को फ़िल्टर करने और 10000 char तक की स्ट्रिंग लंबाई प्रदर्शित करने के लिए -fसभी फ़ॉर्क्ड प्रक्रियाओं को ट्रेस करने के विकल्प ।-e trace=netwrok-s

आप केवल कुछ कॉल जैसे ट्रेस, रिकर्व, रीड ऑपरेशन भी ट्रेस कर सकते हैं।

strace -f -e trace=send,recv,read -s 10000 -p <PID>;

-16

आप वायरशर्क पर इन कमांड उदाहरणों के साथ पोर्ट संख्या की जांच कर सकते हैं: -

tcp.port == 80

tcp.port == 14220

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