
ETW को इंस्ट्रूमेंट करने के लिए एक Wireshark प्लगइन
Wireshark प्लगइन जो विंडोज के लिए इवेंट ट्रेसिंग (Event Tracing for Windows) के साथ काम करता है
Microsoft Message Analyzer को सेवानिवृत्त किया जा रहा है और इसके डाउनलोड पैकेज 25 नवंबर 2019 को microsoft.com साइटों से हटा दिए गए थे।
Wireshark ने नेटवर्क प्रोटोकॉल विघटनकर्ताओं (dissectors) की एक विशाल लाइब्रेरी बनाई है।
विंडोज के लिए सबसे अच्छा उपकरण वह होगा जो सभी प्रकार के लॉग को इकट्ठा और मिश्रित कर सके...
आपका स्वागत है Winshark!!!
Winshark ETW (Event tracing for Windows) को कैप्चर करने के लिए libpcap बैकएंड पर आधारित है, और एक जनरेटर जो आपकी मशीन पर ज्ञात ETW प्रदाताओं के लिए सभी विघटनकर्ता उत्पन्न करेगा।
हमने विंडोज ऑपरेटिंग सिस्टम पर लगभग सभी लॉग तकनीकों को कवर करने के लिए Tracelogging समर्थन जोड़ा है।
Winshark और विंडोज की शक्ति के साथ, अब हम एक ही उपकरण में नेटवर्क और इवेंट लॉग कैप्चर कर सकते हैं। विंडोज बहुत सारे ETW प्रदाताओं को उजागर करता है, विशेष रूप से नेटवर्क कैप्चर के लिए एक ;-) अब बाहरी NDIS ड्राइवर की आवश्यकता नहीं है।
उपयोग के संदर्भ में यह एक बहुत बड़ा सुधार है:
यदि आप चाहते हैं:
कृपया पहले Wireshark स्थापित करें। फिर बस Winshark स्थापित करें।
वर्तमान में, आपको Wireshark को DLT_USER 147 को ETW के रूप में व्याख्या करने के लिए कहना होगा। ऐसा इसलिए है क्योंकि आपके पास अभी तक हमारे नए डेटा लिंक के लिए libpcap से कोई वास्तविक मान नहीं है।
हमने समर्पित DLT मान के लिए एक पुल अनुरोध जारी किया है; यह अभी भी लंबित है।
ऐसा करने के लिए आपको Edit पैनल के अंतर्गत Preferences टैब खोलना होगा। Protocols के अंतर्गत DLT_USER चुनें और एनकैप्सुलेशन तालिका को Edit करें:

और DLT = 147 के लिए winshark सेट करें:

आनंद लें!
Winshark cmake द्वारा संचालित है:
git clone https://github.com/airbus-cert/winshark --recursive
mkdir build_winshark
cd build_winshark
cmake ..\Winshark
cmake --build . --target package --config release
यह बेहतर ढंग से समझने के लिए कि Winshark कैसे काम करता है, हमें पहले यह समझना होगा कि ETW कैसे काम करता है।
ETW तीन भागों में विभाजित है:
विभिन्न प्रकार के प्रदाता होते हैं। सबसे सामान्य और उपयोग योग्य, पंजीकृत प्रदाता (registred providers) हैं। एक पंजीकृत प्रदाता, या मैनिफेस्ट-आधारित प्रदाता, रजिस्ट्री कुंजी HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers के अंतर्गत दर्ज किया जाता है।
यह एक प्रदाता आईडी और एक dll के बीच संबंध बनाता है। मैनिफेस्ट संबद्ध dll में एक संसाधन नाम WEVT_TEMPLATE में समाहित होता है।
आप logman का उपयोग करके अपनी मशीन पर पंजीकृत सभी प्रदाताओं को सूचीबद्ध कर सकते हैं:
logman query providers
आप किसी विशेष प्रक्रिया से बंधे सभी प्रदाताओं को भी सूचीबद्ध कर सकते हैं:
logman query providers -pid 1234
उनमें से कुछ बिना नाम के दिखाई दे सकते हैं; इस प्रकार के प्रदाता WPP या TraceLogging लॉग उत्पन्न कर सकते हैं।
एक से अधिक प्रदाताओं से लॉग एकत्र करने के लिए सत्र बनाए जाते हैं।
आप logman का उपयोग करके अपना स्वयं का सत्र बना सकते हैं:
logman start Mysession -p "Microsoft-Windows-RemoteDesktopServices-RdpCoreTS" -ets -rt
logman update MySession -p "Microsoft-Windows-NDIS-PacketCapture" -ets -rt
आप एक प्रशासनिक कमांड लाइन से सभी सक्रिय सत्रों को सूचीबद्ध कर सकते हैं:
logman query -ets
Data Collector Set Type Status
-------------------------------------------------------------------------------
...
EventLog-Application Trace Running
EventLog-Microsoft-Windows-Sysmon-Operational Trace Running
EventLog-System Trace Running
...
The command completed successfully.
यहां आप इवेंट लॉगर द्वारा एप्लिकेशन और सिस्टम सत्रों से और Sysmon से लॉग कैप्चर करने के लिए उपयोग किए जाने वाले कुछ दिलचस्प सत्र देख सकते हैं।
एक उपभोक्ता एक सरल प्रोग्राम है जो सत्र से लॉग पढ़ेगा। प्रसिद्ध उपभोक्ता हैं:
logmannetshtracertऔर अब Winshark!!! Winshark एक सरल ETW उपभोक्ता है। वास्तविक अंतर्निहित उपभोक्ता libpcap (wpcap.dll for Windows) है, जिसका उपयोग dumpcap.exe द्वारा किया जाता है जो पैकेट कैप्चर के लिए जिम्मेदार प्रक्रिया है।
Wireshark तीन भागों में विभाजित है (हाँ, वह भी):
Wireshark.exe जो प्रोटोकॉल को पार्स और विघटित करने के लिए जिम्मेदार हैdumpcap.exe जो पैकेट कैप्चर करने के लिए जिम्मेदार हैlibpcap (wpcap.dll) जो dumpcap.exe और ऑपरेटिंग सिस्टम के बीच इंटरफेस करने के लिए जिम्मेदार हैWinshark पहले और अंतिम भागों में स्थान लेता है। यह ETW इवेंट कैप्चर करने के लिए libpcap के लिए एक बैकएंड लागू करता है।
Winshark ETW सत्रों पर काम करता है, यही कारण है कि आप कैप्चर शुरू करते समय नेटवर्क इंटरफ़ेस के स्थान पर एक ETW सत्र चुन सकते हैं।
फिर Winshark स्थापना चरण के दौरान, आपके कंप्यूटर पर पंजीकृत प्रत्येक मैनिफेस्ट-आधारित प्रदाता के लिए lua विघटनकर्ता उत्पन्न करता है।
Winshark ट्रेसलॉगिंग-आधारित प्रदाताओं को पार्स करने में भी सक्षम है।
Winshark का उपयोग करके नेटवर्क ट्रैफ़िक कैप्चर करने के लिए, आप दो सरल तरीकों का उपयोग कर सकते हैं:
pktmon विंडोज के लिए एक इन-बॉक्स, क्रॉस-कम्पोनेंट नेटवर्क डायग्नोस्टिक टूल है। इसका उपयोग पैकेट कैप्चर, पैकेट ड्रॉप डिटेक्शन, पैकेट फ़िल्टरिंग और काउंटिंग के लिए किया जा सकता है (RS5 से समर्थित)
(https://docs.microsoft.com/en-us/windows-server/networking/technologies/pktmon/pktmon)
pktmon start -c -m real-mode
आप अधिक विकल्पों के लिए pktmon -h चला सकते हैं (एडमिन के रूप में)
उदाहरण के लिए: पैकेट के लिए एक फ़िल्टर जोड़ें:
pktmon filter add -t icmp
pktmon filter add -t tcp -p 80
फिर व्यवस्थापक विशेषाधिकारों के साथ Wireshark लॉन्च करें और Pktmon इंटरफ़ेस चुनें:

इससे पैकेट कैप्चर शुरू हो जाएगा:

netsh.exe trace start capture=yes report=no correlation=no
और फिर Microsoft-Windows-NDIS-PacketCapture प्रदाता से संबद्ध एक ETW सत्र बनाएं:
logman start Winshark-PacketCapture -p "Microsoft-Windows-NDIS-PacketCapture" -rt -ets
फिर व्यवस्थापक विशेषाधिकारों के साथ Wireshark लॉन्च करें और Winshark-PacketCapture इंटरफ़ेस चुनें:

इससे पैकेट कैप्चर शुरू हो जाएगा:

ETW प्रत्येक पैकेट को एक हेडर के साथ चिह्नित करता है जो प्रेषक के बारे में कुछ मेटाडेटा सेट करता है।
उनमें से एक उत्सर्जक की प्रोसेस आईडी (Process ID) है। यह NDIS ड्राइवर से क्लासिक पैकेट कैप्चर की तुलना में एक बहुत बड़ा सुधार है।
बस Wireshark के फ़िल्टर फ़ील्ड को निम्नलिखित अभिव्यक्ति से भरें:
winshark.header.ProcessId == 1234

@kobykahane एक फ़ाइल सिस्टम फ़िल्टर ड्राइवर प्रदान करता है जो NamedPipe पर किए गए प्रत्येक कार्रवाई के लिए एक ETW उत्सर्जित करता है।
bcdedit /set testsigning on
Admin अधिकारों के साथ C:\Program Files\Wireshark\WinsharkUpdate.bat पर डबल क्लिक करके Winshark विघटनकर्ता को अपडेट करेंAdmin मोड में cmd.exe खोलेंsc start NpEtw
logman start namedpipe -p NpEtw -ets -rt
Wireshark शुरू करें और namedpipe सत्र चुनें। आनंद लें!
यह परियोजना SSTIC के लिए बनाई गई एक प्रस्तुति का हिस्सा है।