Explotando Vulnerabilidades: CVE-2017-11882

Buenos días a tod@s!!

Antes de comenzar, me gustaría dar las gracias a Miguel Tuñón (@Mituga93), compañero de trabajo en Wise Security (https://www.linkedin.com/company/5378467/), ya que juntos hemos estado trasteando estos últimos días con esta nueva vulnerabilidad y ha colaborado en gran medida en la elaboración de esta entrada. Por supuesto, gracias también a Wise, por permitirnos investigar y jugar con este tipo de cosas, que tanto nos apasionan.

 

Introducción

Esta vulnerabilidad de Microsoft Office permite a un atacante ejecutar código arbitrario de manera remota (RCE) en el contexto del usuario actual, dado que no se gestionan adecuadamente los objetos en memoria («Microsoft Office Memory Corruption Vulnerability»).

Esta vulnerabilidad ha sido descubierta por el equipo de investigación de Embedi y reside en el antiguo “editor de ecuaciones” de Microsoft Office (EQNEDT32.EXE). Esta herramienta permite a los usuarios embeber ecuaciones matemáticas dentro de documentos de Office como objetos OLE dinámicos.

 

¿Cómo fue descubierta la vulnerabilidad?

Para localizar dicha vulnerabilidad, la empresa Embedi hizo uso de una herramienta llamada BinScope, un analizador de binarios de Microsoft que permite detectar debilidades en los mismos.

Fuente original: https://embedi.com/files/white-papers/skeleton-in-the-closet.pdf

 

Tras el análisis, se detectó que el ejecutable EQNEDT32.EXE había sido compilado el 11/9/2000, por lo que, con toda probabilidad, podría contener alguna vulnerabilidad potencial.

Se analizaron las protecciones con la herramienta ProcessMitigations, descubriendo que no utilizaba ninguna de las funciones de seguridad agregadas en los paquetes de Office.

Fuente original: https://embedi.com/files/white-papers/skeleton-in-the-closet.pdf

Esta falta de seguridad permitiría a un atacante explotar cualquier vulnerabilidad presente.

 

Explotando la vulnerabilidad

La vulnerabilidad encontrada es un Buffer Overflow que permite ejecutar comandos cualesquiera.

Para llevar a cabo la explotación, y como prueba de concepto, se ha hecho uso de el siguiente exploit:

https://github.com/embedi/CVE-2017-11882

 

A modo de resumen, este exploit crea un archivo RTF con un objeto ecuación:

 

El contenido del fichero que se crea, explota el Buffer Overflow, el cual permite ejecutar comandos con una limitación de 43 bytes. No obstante, existen formas de ejecutar payloads complejos aún teniendo en cuenta dicha limitación, por ejemplo, mediante el uso de unidades de red mapeadas y la ejecución de archivos mediante un path UNC (WebDav).

El contenido exacto del objeto dañino, será el contenido en la variable OBJDATA_TEMPLATE:

 

Es a partir del OFFSET 0x949*2, donde sustituye por la codificación hexadecimal del comando que se desea ejecutar.

 

Para generar el documento, deberemos realizar lo siguiente:

webdav_exec_CVE-2017-11882.py -u trigger_unc_path -e executable_unc_path -o output_file_name

Siendo:

  • trigger_unc_path -> Ruta UNC (WebDav)
  • executable_unc_path -> binario que se desea embeber, localizado en ruta UNC (WebDav)
  • output_file_name -> nombre del fichero generado (ej: Nomina.rtf)

Una vez generado el documento, ya solo queda esperar a que la víctima lo ejecute.

 

En el siguiente vídeo, podéis observar la prueba de concepto elaborada por mi compañero Miguel Tuñón, y que hemos estado testeando en Wise Security, donde se muestra todo el proceso de infección.

 

Cabe destacar que el atacante necesitará hacer uso de técnicas de ingeniería social para llevar a cabo este ataque, invitando a la víctima a que abra este archivo de Microsoft Word infectado.

En el momento en que la víctima abra este documento, el atacante obtendrá acceso al sistema afectado. Será en este momento en el que se aplicarán otras técnicas para elevar privilegios, si procede.
A diferencia de otros vectores de ataque similares, en este caso no se requiere la interacción o validación por parte del usuario, por lo que la víctima, a simple vista, no se dará cuenta de que ha sido infectada.

 

Características

  • Afecta a todas las versiones de Microsoft Office liberadas en los últimos 17 años (incluyendo Microsoft Office 365).
  • Válido para cualquier arquitectura.
  • Una vez abierto el documento, no requiere ningún tipo de validación o interacción por parte del usuario.

 

Recomendaciones:

Dado que este componente tiene numerosos problemas de seguridad, y las vulnerabilidades que contienen pueden explotarse de una manera sencilla e intuitiva, se recomienda a los usuarios deshabilitar el registro del componente en el registro de Windows.

Para ello se deberá introducir el siguiente comando en la consola de Windows:

reg add «HKLM\SOFTWARE\Microsoft\Office\XX.X\Common\COM Compatibility\{0002CE02-0000- 0000-C000-000000000046}» /v «Compatibility Flags» /t REG_DWORD /d 0x400

En el caso del paquete de Microsoft Office de 32 bits en el sistema operativo x64:

reg add «HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\XX.X\Common\COM Compatibility\{0002CE02-0000-0000-C000-000000000046}» /v «Compatibility Flags» /t REG_DWORD /d 0x400

Nota: se debe cambiar XX.X por la versión de Office utilizada.

Una vez ejecutados estos comandos, será imposible iniciar el componente vulnerable, evitando la explotación de la vulnerabilidad.

 

Otras recomendaciones:

Se recomienda también aplicar los parches de seguridad publicados por parte de Microsoft que podremos encontrar en el siguiente enlace:

https://portal.msrc.microsoft.com/en-US/eula

De manera adicional, también se recomienda revisar la reciente publicación de una regla de YARA, que detecta el dropper de MS Office utilizado. Esta regla la podéis encontrar en el siguiente enlace:

https://www.reversinglabs.com/sites/files/downloads/potential_CVE_2017_11882_v2.yara

 

Referencias:

https://embedi.com/files/white-papers/skeleton-in-the-closet.pdf
https://embedi.com/blog/skeleton-closet-ms-office-vulnerability-you-didnt-know-about
https://github.com/embedi/CVE-2017-11882
https://www.exploit-db.com/exploits/43163/

 

Y con esto concluimos la entrada de hoy, espero que os haya gustado y os haya parecido interesante, pese a no haber entrado a analizar el código y el funcionamiento en profundidad.

Un saludo,

Diego Jurado

Un comentario en «Explotando Vulnerabilidades: CVE-2017-11882»

Los comentarios están cerrados.