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
DLL“
disfrazado” 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.
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.
¿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
DLL“
vestida” 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.
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.
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.