Устраняет возможность CVE-2017-0199 выполнять код путем изменения обработчика по умолчанию для файлов .hta. Обработчик по умолчанию для файлов, вызываемых через OLE2 (COM-объекты), хранится отдельно от приложения по умолчанию локальной системы и может быть изменен только через реестр.
Базовая логика эксплуатации
Это один из практических примеров данного эксплойта, изложенный так, как я его понимаю. Не все случаи могут следовать этому шаблону, и моя оценка может быть неверной. Однако исправление, представленное в следующем разделе, действительно работает в ситуациях, в которых я его тестировал.
RTF-документ, размещенный на веб-сервере, содержит полезную нагрузку в виде вредоносного гипертекстового приложения (HTA), дописанную в его конец.
Сервер размещения отвечает на GET-запросы к файлу заголовком, указывающим, что содержимое является HTA-файлом.
Microsoft Word запускает OLE2-объект для получения RTF-документа с веб-сервера.
Microsoft Word вынужден проверять тип файла, поскольку расширение .rtf не соответствует типу содержимого HTA.
Microsoft Word проверяет с конца файла наличие распознаваемых структур данных и сопоставляет структуры данных HTA с типом содержимого HTA.
Microsoft Word автоматически исправляет тип файла и передает его COM-обработчику для HTA-файлов (mshta.exe).
Mshta.exe выполняет вредоносный код гипертекстового приложения из конца файла.
COM-обработчики хранятся в реестре отдельно от системных обработчиков, чтобы предотвратить ошибки в процессе проверки типа файла.
Базовое исправление
В RegEdit.exe перейдите к HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon
Откройте дополнительные разрешения для
DefaultIcon
Смените владельца на Administrators (группа)
Добавьте вашу текущую учетную запись в список субъектов безопасности, назначьте ей «Полный доступ»
Измените значение ключа (Default) на C:\Windows\System32\notepad.exe,1
В дополнительных разрешениях для DefaultIcon удалите вашего пользователя и назначьте владельцем SYSTEM
Повторите шаги с 1 по 6 для HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32, изменив значение ключа (Default) на C:\Windows\System32\notepad.exe
Это устраняет возможность CVE-2017-0199 выполнять код, изменяя обработчик по умолчанию для .hta-объектов, вызываемых через OLE2, на Блокнот. Это применимо ко всем случаям вызова .hta-файлов через OLE2. В результате будет открываться Блокнот и появляться ошибки, но код выполняться не будет.
Не редактируйте HKCR напрямую. Изменяйте соответствующие ключи в HKCU или HKLM.
Вы можете вернуть владение ключом реестра обратно SYSTEM или другим пользователям после того, как забрали его.
Не связывайтесь с реестром. Оставьте его в том виде, в котором вы его нашли, после внесения изменений.
Process Monitor имеет мощную фильтрацию по правой кнопке мыши для отсечения лишнего.
Функция поиска Process Monitor ищет строку во всех полях.
pscp.exe (Putty) — это инструмент командной строки для передачи файлов по SSH.
Linux — это по-прежнему сплошная боль.
Заключительное замечание
Я не несу ответственности за любой ущерб или проблемы, вызванные этим смягчением, или за путаницу пользователей из-за Блокнота и множества ошибок. Это грубое исправление, и я не знаю, вызовет ли оно более широкие проблемы в производственной среде. Как всегда, оценивайте контрмеры с учетом вашего конкретного окружения и потребностей.
Позже я добавлю скриншоты, чтобы показать эффекты до и после применения этой меры. Кроме того, это можно сделать в виде скрипта, но у меня возникли трудности с изменением разрешений для ключа реестра, поэтому я займусь этим позже.