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.
Explotación de Lógica Básica
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.
Un documento RTF alojado en un servidor web tiene una carga útil de aplicación de hipertexto (HTA) maliciosa concatenada al final del mismo.
El servidor de alojamiento responde a las solicitudes GET del archivo con un encabezado que indica que el contenido es un archivo HTA.
Microsoft Word ejecuta un objeto OLE2 para obtener el documento RTF del servidor web.
Microsoft Word se ve forzado a validar el tipo de archivo, ya que la extensión .rtf no coincide con el tipo de contenido HTA.
Microsoft Word verifica desde el final del archivo en busca de estructuras de datos reconocibles y empareja las estructuras de datos HTA con el tipo de contenido HTA.
Microsoft Word autocorrige el tipo de archivo y lo pasa al controlador COM para archivos HTA (mshta.exe).
Mshta.exe ejecuta el código malicioso de la aplicación de hipertexto desde el final del archivo.
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.
Agregue su cuenta de usuario actual a la lista de entidades de seguridad, asígnele "Full Control"
Edite la clave (Default) para que sea C:\Windows\System32\notepad.exe,1
En los Permisos Avanzados de DefaultIcon elimine su usuario y reasigne SYSTEM como propietario
Repita los Pasos 1 al 6 para HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32, cambiando el valor de la clave (Default) a C:\Windows\System32\notepad.exe
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á.
No edite HKCR directamente. Edite las claves asociadas en HKCU o HKLM.
Puede devolver la propiedad de una clave de registro a SYSTEM o a otros después de tomarla.
No toquetee el registro. Déjelo como lo encontró una vez que haya hecho sus cambios.
Process Monitor tiene un potente filtro con clic derecho para reducir el ruido.
La función de búsqueda de Process Monitor busca una cadena en todos los campos.
pscp.exe (Putty) es una herramienta de transferencia de archivos SSH por línea de comandos.
Linux sigue siendo un gran dolor de cabeza.
Comentario Final
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.