
Solución rápida y sucia para que OLE2 ejecute código a través de .hta
Eliminar la capacidad de CVE-2017-0199 de ejecutar código cambiando el controlador predeterminado para archivos .hta. El controlador predeterminado para archivos invocados a través de OLE2 (Objetos COM) se almacena por separado de la aplicación predeterminada del sistema local y solo se puede cambiar a través del registro.
Este es un ejemplo práctico de este exploit, y se explica según mi comprensión. No todas las ocurrencias pueden seguir este patrón y mi evaluación puede ser incorrecta. Sin embargo, la corrección presentada en la siguiente sección sí funciona en las situaciones en las que la he probado.
Los controladores COM se almacenan por separado de los controladores del sistema en el registro para evitar errores en el proceso de validación del tipo de archivo.
Esto elimina la capacidad de CVE-2017-0199 de ejecutar código cambiando el controlador predeterminado para objetos .hta invocados a través de OLE2 a notepad. Esto se aplicará a todas las instancias de OLE2 que invoquen archivos .hta. Esto hará que se abra el notepad y se generarán errores, pero el código no se ejecutará.
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
No me hago responsable de ningún daño o problema causado por esta mitigación o por la confusión del usuario resultante del notepad y un montón de errores. Esta es una solución sucia y no sé si esto causará problemas mayores en un entorno de producción. Como siempre, evalúe las mitigaciones teniendo en cuenta su entorno y necesidades específicas.
Agregaré capturas de pantalla más adelante para mostrar los efectos antes y después de esta mitigación. También esto se puede hacer como un script, pero estoy teniendo dificultades para cambiar los permisos de la clave de registro, así que lo manejaré más tarde.