
برنامج تشغيل مراقب وحدة التحكم هو برنامج تشغيل تصفية بوضع النواة يعتمد على إطار عمل KMDF، ويلتقط عمليات الإدخال/الإخراج السريعة (Fast I/O) المحددة التي يتم إرسالها إلى أو من ConDrv. ConDrv هو جهاز يتم إنشاؤه بواسطة condrv.sys، ويتعامل مع حركة المرور بين تطبيق وحدة التحكم (cmd/powershell/etc) ووحدة التحكم الفعلية (conhost.exe).
يعتمد هذا المشروع على البحث الذي تم إجراؤه لتقنية كشف mimikatz في المرحلة الثانية. يحتوي الحل على عدة مشاريع:
برنامج التشغيل Console Monitor Driver هو عامل تصفية في وضع kernel من نوع KMDF يلتقط عمليات إدخال/إخراج سريعة معينة (Fast I/O) يتم إرسالها إلى ConDrv أو منه. ConDrv هو جهاز تم إنشاؤه بواسطة condrv.sys، ويتعامل مع حركة المرور بين تطبيق وحدة التحكم (cmd/powershell/etc) ووحدة التحكم الفعلية (conhost.exe). تطبيق Console Monitor هو تطبيق واجهة رسومية (GUI) بلغة C# يعرض للمستخدم النهائي كل ضغطة مفتاح أو سطر تم إرساله إلى وحدة التحكم أو منه. إن استخدام هذا التطبيق لا يكاد يُذكر، لكنه ممتاز للعروض التقديمية وتصحيح الأخطاء.
يقوم تطبيق Console Monitor الرسومي بإنشاء قناة مسماة (named pipe) وينتظر الاتصالات الواردة. يتم عرض جميع البيانات المرسلة إلى القناة المسماة على الواجهة الرسومية. يتحقق برنامج التشغيل من وجود القناة المسماة؛ إذا لم تكن موجودة، فسيُرجع خطأً ولن يتم تثبيته. في حال وجود القناة المسماة (أي أن الواجهة الرسومية تعمل)، فإنه يُثبَّت ويرسل كل ما يتم التقاطه إلى القناة.
يجب اتباع الخطوات التالية لتشغيله:
التقنية الأساسية هي نفسها السابقة مع ConsoleMonitorDriver، لكن هنا بدلاً من التقاط جميع البيانات، يحاول برنامج تشغيل عامل التصفية KMDF مطابقة عدة سلاسل نصية مع البيانات التي تمر عبر برنامج التشغيل. في هذه الحالة بالذات، يتم فحص عنوان تطبيق وحدة التحكم مقابل سلسلة نصية ثابتة، كما يتم فحص محتوى مخرجات وحدة التحكم مقابل عدة سلاسل نصية ثابتة. في حال حدوث أي تطابق، يتم إرسال حدث إلى سجل الأحداث عبر Event Tracing for Windows (ETW). حاليًا، تم تعريف 4 أحداث مختلفة في برنامج التشغيل:
لإعداد النظام ليكون قادرًا على قراءة هذه الرسائل بشكل صحيح، يجب تثبيت ملف event.xml باستخدام (wevtutil.exe)، وهذا مغطى في سكربت install.ps1.
خطوات جعل برنامج التشغيل يعمل:
من الواضح أن السلاسل النصية التي تتم مطابقتها مع العنوان والمخرجات يمكن تغييرها بحيث يمكن اكتشاف برمجيات خبيثة/أدوات أخرى باستخدام هذه الأداة إذا تم تغيير السلاسل.
ما عليك سوى استخدام دالة Uninstall-Driver من install.ps1.
لن يتم اكتشاف عمليات إعادة التوجيه إلى الملفات، لأن المخرجات لن تُرسل إلى جهاز ConDrv.