
إصلاح سريع وبسيط لتنفيذ OLE2 للكود عبر .hta
قم بإزالة قدرة CVE-2017-0199 على تنفيذ التعليمات البرمجية عن طريق تغيير المعالج الافتراضي لملفات .hta. يتم تخزين المعالج الافتراضي للملفات التي يتم استدعاؤها عبر OLE2 (كائنات COM) بشكل منفصل عن التطبيق الافتراضي للنظام المحلي ولا يمكن تغييره إلا من خلال السجل.
هذا مثال عملي واحد لهذا الاستغلال، وقد تم شرحه وفقًا لفهمي له. قد لا تتبع جميع الحالات هذا النمط وقد يكون تقييمي غير صحيح. ومع ذلك، فإن الإصلاح المقدم في القسم التالي يعمل في الحالات التي اختبرته فيها.
يتم تخزين معالجات COM بشكل منفصل عن معالجات النظام في السجل لمنع حدوث أخطاء في عملية التحقق من نوع الملف.
يعمل هذا على إزالة قدرة CVE-2017-0199 على تنفيذ التعليمات البرمجية عن طريق تغيير المعالج الافتراضي لكائنات .hta التي يتم استدعاؤها عبر OLE2 إلى notepad. سيتم تطبيق هذا على جميع حالات استدعاء OLE2 لملفات .hta. سيتسبب هذا في فتح notepad وإظهار أخطاء، لكن لن يتم تنفيذ أي تعليمات برمجية.
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon\(Default)
C:\Windows\SysWOW64\mshta.exe,1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32\(Default)
C:\Windows\SysWOW64\mshta.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon\(Default)
C:\Windows\System32\notepad.exe,1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32\(Default)
C:\Windows\System32\notepad.exe
لا أتحمل أي مسؤولية عن أي أضرار أو مشاكل ناتجة عن هذا الإجراء التخفيفي أو عن ارتباك المستخدم الناتج عن notepad ومجموعة من الأخطاء. هذا إصلاح غير تقليدي (dirty fix) ولا أعلم ما إذا كان سيسبب مشاكل أوسع في بيئة الإنتاج. وكالعادة، قيّم الإجراءات التخفيفية مع مراعاة بيئتك واحتياجاتك الخاصة.
سأضيف لقطات شاشة لاحقًا لإظهار تأثيرات هذا الإجراء قبل وبعد. كما يمكن تنفيذ هذا كسكربت (script)، لكني أواجه صعوبات في تغيير صلاحيات مفتاح السجل وسأتعامل مع ذلك لاحقًا.