
विंडोज इवेंट लॉगिंग द्वारा रिपोर्ट किए जा रहे इवेंट पर एक फ़िल्टर लागू करें
यह एक उपकरण है जो आपको YARA का आक्रामक रूप से उपयोग करके विंडोज इवेंट लॉगिंग द्वारा रिपोर्ट किए जा रहे इवेंट पर एक फ़िल्टर लागू करने की अनुमति देता है।
नवीनतम संस्करण यहाँ से प्राप्त करें। EvtMuteHook.dll में मुख्य कार्यक्षमता है, एक बार इसे इंजेक्ट करने के बाद यह एक अस्थायी फ़िल्टर लागू करेगा जो सभी इवेंट को रिपोर्ट करने की अनुमति देगा, इस फ़िल्टर को बिना पुनः इंजेक्ट किए गतिशील रूप से अपडेट किया जा सकता है। मैंने SharpEvtMute.exe लिखा है जो एक C# असेंबली है जिसे shad0w में execute या cobalt strike में execute-assembly के माध्यम से आसानी से चलाया जा सकता है। मैं बेहतर shad0w एकीकरण के लिए C में एक मूल संस्करण लिखूंगा।
एक मामूली उपयोग केस पूरे सिस्टम में इवेंट लॉगिंग को अक्षम करना होगा। ऐसा करने के लिए हम निम्नलिखित yara नियम का उपयोग कर सकते हैं।
rule disable { condition: true }
हमें इवेंट सेवा में हुक इंजेक्ट करके शुरू करना होगा।
.\SharpEvtMute.exe --Inject

अब जब हुक लगा दिया गया है तो हम फ़िल्टर जोड़ सकते हैं।
.\SharpEvtMute.exe --Filter "rule disable { condition: true }"

अब सभी इवेंट इवेंट सेवा द्वारा हटा दिए जाएंगे।
फ़िल्टर को बिना हुक पुनः इंजेक्ट किए गतिशील रूप से बदला जा सकता है। इससे सक्रिय फ़िल्टर को अपडेट करना त्वरित और आसान हो जाता है।
एक अधिक जटिल फ़िल्टर का उदाहरण यह है। यह lsass मेमोरी डंप से संबंधित इवेंट को sysmon द्वारा रिपोर्ट होने से रोकने में सक्षम है।
rule block_lsass_dump {
meta:
author = "@_batsec_"
description = "Prevent lsass dumping being reported by sysmon"
strings:
$provider = "Microsoft-Windows-Sysmon"
$image = "lsass.exe" nocase
$access = "GrantedAccess"
$type = "0x1fffff"
condition:
all of them
}
इस तरह के जटिल नियम के साथ इसे एक पंक्ति में समेटना बहुत कठिन है। इसीलिए मैंने बेस64 एन्कोडेड नियम देने की क्षमता जोड़ी।
नियम को linux कमांड लाइन से आसानी से बेस64 में बदला जा सकता है।
base64 -w 0 YaraFilters/lsassdump.yar | echo $(</dev/stdin)
फिर --Encoded फ्लैग का उपयोग करके हम इसे फ़िल्टर के रूप में पास कर सकते हैं।

हुक इंजेक्ट करते समय SharpEvtMute.exe CreateRemoteThread को कॉल करेगा और यह कॉल हुक लगाने से पहले किया जाता है, इसलिए इसे Sysmon द्वारा रिपोर्ट किया जाएगा। ऐसा इसलिए है क्योंकि SharpEvtMute.exe की इंजेक्शन सुविधा का उपयोग केवल PoC के रूप में किया जाना चाहिए। जब छिपाव महत्वपूर्ण हो तो मैं मैन्युअल रूप से EvtMuteHook.dll को इवेंट लॉगिंग सेवा में इंजेक्ट करने की सलाह देता हूं।
इसका pid SharpEvtMute.exe --Pid चलाकर पाया जा सकता है। हुक को अपने C2 फ्रेमवर्क के माध्यम से मैन्युअल रूप से शेलकोड (EvtMuteBin में make चलाएं) इंजेक्ट करके लगाया जा सकता है, उदाहरण के लिए shad0w में shinject।
यह भी उल्लेखनीय है कि हुक फ़िल्टर अपडेट करने के लिए एक नामित पाइप का उपयोग करेगा। नामित पाइप को EvtMuteHook_Rule_Pipe कहा जाता है (इस नाम को आसानी से बदला जा सकता है)। हुक में यह सुनिश्चित करने के लिए एक हार्ड बेक्ड नियम है कि इस नाम वाले किसी भी इवेंट को स्वचालित रूप से हटा दिया जाएगा, लेकिन फिर भी इसका सुनना एक IOC होगा, इसलिए मैं इसे बदलने की सलाह देता हूं।
यदि आप कुछ उपयोगी फ़िल्टर बनाते हैं तो बेझिझक YaraFilters निर्देशिका में पुल अनुरोध करें। सामान्य क्रियाओं को छिपाने के लिए फ़िल्टर का एक अच्छा संग्रह होना अच्छा होगा जिससे सभी लाभान्वित हो सकें।