原创 | CVE-2021-35052:WinRAR远程代码执行漏洞分析

原创 | CVE-2021-35052:WinRAR远程代码执行漏洞分析

时间:2021-11-30 作者:安帝科技

 1.漏洞概述

WinRAR是一款功能强大的压缩包管理工具,广泛应用于Windows系统的RAR、ZIP等类型的压缩文件的创建与解压中。2021年10月20日,Positive Technologies公司的Psych0tr1a(https://twitter.com/Psych0tr1a)公开披露WinRAR 5.70试用版及以前版本存在远程代码执行漏洞,此漏洞允许攻击者拦截和修改发送给用户的请求,以达到执行远程代码的目的。该漏洞被分配编号为CVE-2021-35052,WinRAR 6.02及以后版本已经修补了此漏洞。

Positive Technologies已经要求WinRAR对此漏洞发表评论,WinRAR表示:“只有当入侵者设法欺骗或以其他方式控制用户的DNS记录时,才有可能进行此类攻击。”

 2. 复现环境

Windows 10虚拟机
WinRAR 5.70试用版
BurpSuite抓包工具

 3. 分析过程

WinRAR允许用户在设定的天数内体验程序的全部功能,之后用户可以在禁用某些功能的情况下继续使用。一旦试用期结束,WinRAR.exe程序的三次启动中大约会有一次会显示如下图所示的JavaScript错误的通知窗口:

使用ProcessMonitor查看可以发现,此通知窗口由MSHTML.dll实现。

将BurpSuite设置为默认的Windows代理,并尝试拦截流量,以了解发生这种情况的原因。查看请求本身,可以看到WinRAR应用程序的版本(5.7.0)和体系结构(x64):

接下来试图修改从WinRAR截获的对用户的响应。可以发现,如果把响应代码更改为“301 Moved Permanently”,所有请求都将转到恶意域“attacker.com”,并且恶意域“attacker.com”会被缓存下来。缓存下来以后,所有到默认域“notifier.rarlab.com”的流量会重定向到恶意域“attacker.com”。

这种中间人攻击需要ARP欺骗,因此我们可以假定潜在攻击者已经可以访问同一局域网。可以尝试几种不同的攻击向量,以了解这种访问的可行性。

我们尝试了几种不同的攻击向量,如运行应用程序、检索本地主机信息和运行计算器应用程序等。弹出的链接可以运行各种应用程序或打开系统文件。

如下图所示,可以在Windows系统中成功运行计算器程序。

大多数攻击向量都是成功的,但值得注意的是,许多攻击向量会导致额外的Windows安全警告。要使这些命令能够成功执行,用户需要点击“运行”。

有些文件类型可以在不显示安全警告的情况下运行,如以.docx、.pdf、.py、.rar为后缀的文件。rar文件可以利用CVE-2018-20250漏洞在WinRAR中执行远程代码,这两个漏洞可以联合起来,可以达到在不弹窗的情况下执行远程代码的目的。

 4. 影响及缓解建议

几年前,在WinRAR中发现了一个近两年前的错误,影响了1990年代首次开发的古老文件压缩格式。至于Positive Technologies,这家俄罗斯公司今年早些时候受到了美国政府的制裁,美国声称该公司已将漏洞传递给俄罗斯国家黑客,而不是披露它们。该公司极力否认这一点,并继续发布安全研究。应用安全专家肖恩·赖特(Sean Wright)评论该漏洞时说:“远程代码执行漏洞应始终得到认真对待并及时处理,因为它们带来的风险非常大。即便如此,在WinRAR的易受攻击的试验中,攻击者成功利用该漏洞的可能性似乎相当有限,因为在攻击者可以利用之前,受害者需要满足许多条件和阶段,才可能实现RCE。另一个需要关注的是,该漏洞突出了开发人员在传统桌面应用程序中结合 Web应用程序功能时面临的一些挑战。这使应用程序暴露了桌面应用程序中web应用程序所面临的许多漏洞。最终的结果是安全威胁程度的增加。该漏洞的有效缓解措施就是使用正式版本,或将WinRAR软件更新到6.02版本以后。