Zoom 0day漏洞导致代码执行 超四百万摄像头受影响

2019年7月12日14:12:07 发表评论

前言

近期,我们发现Zoom客户端存在两个安全漏洞。其中的一个漏洞允许任何网站在未经用户允许的情况下,强行将用户加入到Zoom呼叫中,并激活其摄像头。另外一个漏洞可以通过多次将用户加入到无效的呼叫中,从而导致拒绝服务(DoS)。

除此之外,如果用户曾经安装过Zoom客户端,即使将客户端卸载,计算机上也会保留一个localhost的Web服务器,只需访问特定网页,无需其他任何交互,就可以重新安装Zoom客户端。这种重新安装的“功能”在目前最新版本中仍然存在。

该漏洞利用了Zoom中非常简单的功能,用户可以向任何人发送会议链接(例如:https://zoom.us/j/492468757),当收到链接的用户在浏览器中打开该链接时,他们的Zoom客户端会在本地神奇地打开。我非常好奇这一功能的具体实现方式,以及如何能保证其安全性。最终我发现,该机制确实没有被安全地实施,存在一定的风险。与此同时,我也发现了一个解决方案,在不需要进行额外用户交互的前提下,可以保证该机制安全地实现。

总而言之,Zoom很快确认了报告的漏洞确实存在,但他们没能及时修复这些漏洞。由于这一系列产品具有庞大的用户群体,我认为有必要采取更加主动的方式,保护其用户免受袭击。

漏洞编号

CVE-2019-13449:Zoom客户端拒绝服务漏洞(已在4.4.2版本客户端中修复)

CVE-2019-13450:网络摄像头信息泄露漏洞(目前暂未发布补丁,计划在7月10日发布)

漏洞1:视频通话漏洞

我使用不同帐户创建了一个私人会议,并且破解了打开的Postman,并开始删除参数,以确认能启动Zoom会议所需的最小GET请求。

有很多随机参数会发送到localhost Web服务器,但唯一值得关注的,似乎是以下内容:

action=join
confno=[whatever the conference number is]

使用Postman的以下GET请求,我成功让我的计算机加入到另一个帐户创建的Zoom调用中。

http://localhost:19421/launch?action=join&confno=[some confrence number]

在掌握上述信息之后,我开始尝试其他可以通过的“action”参数,从而在客户端上能做其他事情。即使在搜索各种公开的文档和公开的ProtoBuff模式之后,我也无法找到任何关于可能存在哪些隐藏功能的提示。同样,这个网络服务器的API完全没有配套的文档说明,我花了几个小时在官方和非官方文档中搜索关于这个桌面Web服务器的相关信息。

所以,现在我就有了一个可以用来恶意让任何用户接听电话的最小化PoC,但是,“New Meeting”的默认设置是允许用户选择是否加入他们的语音或视频中。我会认为这是一个安全漏洞。

上述存在问题的实现方式到目前仍然存在,我们仍然可以使用此漏洞利用方法,在未经许可的情况下,向某人发起呼叫。

除此之外,我发现了Zoom安全漏洞中的Tenable远程代码执行漏洞,该漏洞仅仅在6个月之前才修复过。如果将Tenable漏洞与此漏洞结合使用,那么将会允许对任何已经安装Zoom Mac客户端的计算机实现远程代码执行。如果在此后能够找到一个类似的漏洞,可以允许互联网上的任何网站,在用户的计算机上实现远程代码执行。

因此,建议仍然在使用Zoom 4.1.33259.0925或更低版本的用户及时升级版本,否则攻击者可以执行非常有效的攻击。

到目前为止,我只能在未经用户许可的情况下让用户加入通话。尽管这具有一定程度的安全隐患,但是我还没有做到真正的利用。

发表评论

后发表评论