martes, enero 22, 2019

Cómo explotar un 0day en las VCard en Windows 10 con Metasploit

La semana pasada comenzó fuerte con una vulnerabilidad que fue descubierta y publicada por el investigador John Page o @hyp3rlinx. La vulnerabilidad es considerada de tipo fileformat y requiere de la interacción por parte del usuario. La idea es sencilla, como se puede ver a continuación. El usuario recibe una VCard, la abre y cuando pincha sobre el campo de ‘website’ pero la URL no se estará accediendo a una URL de Internet, si no que se estará haciendo un acceso a disco duro, en concreto a un archivo.

Figura 1: Cómo explotar un 0day en las VCard en Windows 10 con Metasploit

El archivo habrá sido creado por el atacante y será una DLL con código “arbitrario”. El vector del ataque radica en el uso de un fichero comprimido que contenta la VCard y una carpeta con el fichero DLLdisfrazado” de fichero CPL. Un fichero CPL no es más que un fichero de extensión de panel de control. Una manera sencilla de hacer un Hacking a Windows con interacción del usuario.

Figura 2: Libro de Hacking Windows

La vulnerabilidad ha sido denominada como ‘Microsoft Windows vcf File Insufficient UI Warning Remote Code Execution Vulnerability’. El CVSS que tiene la vulnerabilidad es de 7.8, por lo que entra en el grupo de críticas. En resumen, es una incorrecta o insuficiente validación del campo URL, el cual permite ejecutar archivos locales cuando no se debería desde la propia VCard. Ahí es donde tenemos la ejecución de código.

Figura 3: Expediente de la vulnerabilidad con CVSS 7.8

¿Cómo podemos hacer para que el fichero esté en la máquina de la víctima? El investigador muestra un camino sencillo: enviar un fichero comprimido, el cual tiene la DLLvestida” de CPL y la propia VCard. Sea cual sea la vía, ambos ficheros deben estar en el equipo.

PoC: Jugando con la VCard

En Exploit-DB se dispone de una prueba de concepto sobre cómo crear la VCard, lo cual es sencillo, ya que el formato es normal. Además, se muestra cómo crear una DLL para realizar la prueba. En nuestro caso, vamos a utilizar msfvenom  - como si fuera un Ethical Hacking normal - para generar una DLL con un payload que nos interese.

Figura 4: PoC en Exploit-DB para explotar la vulnerabilidad

Si nos fijamos en el código de la VCard tenemos una serie de campos, aunque el que nos interesa es el de la URL. Si vemos la URL, no lo es. Empieza por HTTP, pero luego se indica un ‘.’, en vez de ‘:’. Además, el sentido de ‘\\’ nos indica que hablamos del disco y no de la URL. El fichero se denomina ‘www.pablo.go.cpl’.

Figura 5: VCard creada con la URL maliciosa

El fichero ‘www.pablo.go.cpl’ es realmente una DLL a la que se le ha cambiado la extensión. Si ejecutamos directamente el fichero, se ejecutará el código implementado en la DLL.

Figura 6: La URL apunta a un fichero cpl

La DLL se generó a través de la herramienta de Metasploit llamada msfvenom. Los parámetros utilizados son:
• -f para aplicar formato DLL 
• -p para indicar el payload que se quiere introducir en la DLL, en nuestro caso un Meterpreter de tipo inverso. 
• LHOST si fuera necesario.
Además, debemos tener en cuenta que necesitamos un handler para recibir la conexión del Meterpreter cuando el usuario ejecute la VCard y pinche sobre la URL. En la siguiente imagen se puede ver cómo el handler queda configurado introduciendo el payload y el parámetro LHOST.

Figura 7:  Handler en Metasploit sobre un Kali Linux

Cuando el usuario abre la VCard, como se puede ver en la siguiente imagen, se puede encontrar una serie de campos. Entre ellos, se puede ver el campo ‘website’ apuntando a una supuesta URL. Lo que ocurre es que el esquema no es el de una URL y sí el de la ruta de un fichero de disco.

Figura 8: VCard creada con URL maliciosa

Al hacer clic sobre el enlace se ejecutará el fichero ‘www.pablo.go.cpl’ que se encuentra en la carpeta http. Este fichero será nuestra DLL con el Meterpreter por lo que tendremos acceso al sistema de forma completa. Seguramente pronto tendremos un módulo de tipo fileformat en Metasploit que implemente la generación de la VCard.

Figura 9: Sesión de Meterpreter obtenida tras la interacción del usuario

Por último, podemos ver cómo se recibe la conexión del Meterpreter ejecutándose y dando el control al atacante. Sin duda es un método sencillo y funcional por una mala validación del campo URL de las VCard en Windows.

Figura 10: PoC de explotación de la vulnerabilidad

En la Figura 10, os dejamos un vídeo del proceso de creación de la VCard y de explotación de la vulnerabilidad paso a paso, con el que se puede aprender más sobre ello. Sin duda, una vulnerabilidad crítica y sencilla que puede afectar a muchos usuarios que utilizan diariamente el correo electrónico en su trabajo y manejan cientos de VCards.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advance Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDO de Telefónica.

No hay comentarios:

Entrada destacada

Seis recomendaciones personales de libros de @0xWord para disfrutar y aprender

Este verano pude disfrutar de la lectura de un libro que me encantó. El libro de Factfulness que me había regalado mi compañera Beatriz Ce...

Entradas populares