Explotamos la vulnerabilidad CVE-2017-11882 de Microsoft Office
Durante los últimos días, nuestros compañeros Diego Jurado y Miguel Tuñón han explotado la vulnerabilidad CVE-2017-11882 de Microsoft Office, descubierta por el equipo de investigación de Embedi, y que 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 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 permiteejecutar 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, se puede observar la prueba de concepto elaborada por 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:
En el caso del paquete de Microsoft Office de 32 bits en el sistema operativo x64:
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/
Leave a Reply
Want to join the discussion?Feel free to contribute!