2009-08-27 13 views
74

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

+2

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

उत्तर

39

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

+6

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

+8

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

+0

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

12

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

+8

अच्छी तरह से, यह काम नहीं कर सकता .. कार्यक्रम खुलता है और कई स्थानीय और दूरस्थ बंदरगाहों को बंद करता है –

75

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

+10

माइक्रोसॉफ्ट नेटवर्क मॉनीटर 3.4 http://www.microsoft.com/en-us/download/details.aspx?id पर है = 4865 –

+23

[माइक्रोसॉफ्ट मैसेज विश्लेषक] भी है (http://www.microsoft.com/en-ca/download/details.aspx?id=44226) जो मूल रूप से माइक्रोसॉफ्ट का वायरसहार्क का संस्करण है (और नेटवर्क मॉनिटर के लिए सहायक मैं समझता हूं), लेकिन थोड़ा बेहतर एकीकृत। कॉलम चयनकर्ता में, 'Etw' -> 'EtwProviderMsg' के तहत 'पीआईडी' के लिए एक कॉलम है। यह अच्छा काम करता है! – Cameron

+0

सटीक पथ EtwProviderMsg है -> EventRecord -> शीर्षलेख -> ProcessId – r590

3

विंडोज़ पर एक प्रयोगात्मक निर्माण है जो मेलिंग सूची, पर वर्णित है Filter by local process name

+0

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

-12

आप wireshark पर इन कमांड उदाहरण के साथ पोर्ट संख्या के लिए जाँच कर सकते हैं: -

tcp.port == 80

tcp.port == 14220

3

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

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

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

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

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

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

0

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

6

माइक्रोसॉफ्ट संदेश विश्लेषक v1 का उपयोग करें।4

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

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

राइट क्लिक करें और netstat का उपयोग कर पोर्ट संख्या हो जाओ कॉलम

+1

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

1

रूप में जोड़ें:

netstat -b 

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

tcp.port == portnumber 
+0

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

0

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

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

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

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