mIRC是英国mIRC公司出品的IRC(Internet Relay Chat) 类客户端软件,目前风靡于全世界。界面优美,彩色文本行,全DCC、XDCC 文件发送和接收能力,aliases,远程命令和事件操作,与位置相关的下拉菜单,WWW和声音支持,还可以为你建立自己的组群,满足你和朋友们单独沟通的需求。
研究人员在mIRC应用中发现一个漏洞,攻击者利用该漏洞可以远程执行命令,下载和安装恶意软件。
mIRC安装后会创建3个定制的URL URI scheme,分别是irc:, ircs: 和mircurl。可以用作启动mIRC的链接,会自动连接到一个特定的服务器。比如,点击url irc://irc.undernet.org/,会使mIRC自动连接到irc.undernet.org服务器。
安全研究人员Benjamin Chetioui和Baptiste Devigne发现一个新的漏洞允许攻击者在这些URI scheme中注入命令,受影响的mIRC版本是7.55及之前版本。
在Windows中,URI scheme是映射到URL点击后要带命令行参数启动的特定应用的。研究人员解释说为了预防命令注入,Windows中定制的URI scheme应当使用sigil,以预防其他注入的命令行参数的语法分析。
在研究人员给出的例子中,说明了URI scheme中使用 – sigil来预防其他注入的命令行参数被分析。
Discord.exe" --url -- "%1"
mIRC虽然没有使用sigil,当mIRC启动时运行使用定制的配置文件。从下面的图中可以看出当irc: link被点击后Windows中执行的命令:
mIRC创建的IRC URI Scheme
为了利用该漏洞,研究人员搭建了一个含有定制的MIRC.ini文件的SAMBA服务器,MIRC.ini是mIRC的配置文件。Ini文件含有执行另一个脚本的命令,会在计算机上执行命令。
这些命令可以在登陆用户的安全环境下做任何事情,比如下载和安装恶意软件,创建新用户,删除文件等。
攻击者需要做的就是发送一个链接到含有iframe的web页面,iframe如下图所示,可以打开定制的irc: URL:
恶意web网址
当用户打开web站点后,iframe会触发定制的URI并执行远程脚本的命令,定制的URL会启动使用远程配置文件的mIRC。
远程mIRC配置执行的脚本示例
PoC如下所示:
PoC示例
该漏洞的利用非常简单,用户打开一个web页面就可以触发漏洞利用,这样的web链接可以通过钓鱼邮件、论坛发帖或其他允许用户提交内容的位置。
该漏洞在Mirc 7.55中修复了,修复时间为2019年2月8日。研究人员建议用户尽快更新到mIRC 7.55机之后的新版本。
完整writeup参见https://proofofcalc.com/cve-2019-6453-mIRC/。