Cisco的WebEx extension(
jlhmfgmfgeifomenelglieieghnjghma)拥有约2,000万活跃用户,并且它也是思科Webex视频会议系统重要的组成部分。
该扩展适用于包含magic模式“
cwcsf-nativemsg-iframe-43c85c0d-d633-af5e-c056-32dc7efc570b.html”的任何URL,可以从扩展清单中提取。 请注意,该模式内嵌在iframe中,因此不需要用户有更多的交互,只需要访问网站就可以了。
该扩展使用nativeMessaging,所以这个magic字符串可以让任何网站执行任意代码!
这个扩展使用的协议很复杂,使用CustomEvent()对象,在Web页面中和本机代码之间传递JSON消息。
在初始化的过程中,网站使用该扩展发起请求打开一个端口进行通信,如下所示:
然后消息可以通过 "message" 事件传递到native code。 注意,这里不能是MessageEvent()对象,并且不能使用postMessage API,它们必须是CustomEvent()对象。
有几种不同的消息类型,例如“hello”,“disconnect”等。最有趣的是“launch_meeting”类型:
使用该扩展进行视频会议的过程中,我dump了初始化消息:
有大量的属性,很多属性都有可能存在代码执行的问题,下面这些是我挑出来的一些:
将这些字符串解码,如下所示:
这看起来像某种奇怪的脚本语言。 'HWND'的存在表明这是与native code交互,如果我dump atmccli.DLL的导出:
看起来像在该脚本语言中调用的函数。 是否可以在这里找一些突破口?
我注意到,他们提供一个CRT(微软的C Runtime,包含像printf,malloc等标准例程)的副本,所以我试图调用标准_wsystem()routime(像system(),除了WCHAR字符串),像这样 :
难以置信,居然执行成功了!
完整EXP
作者上传了一个测试页面到如下地址,这个地址是安全的,没有其他非法本科证代码执行,仅会弹出一个计算器。
lock.cmpxchg8b/ieXohz9t/
如果需要测试,你仅需提供姓名、email,不需要注册即可在下面中测试:
webex/test-meeting.html
该漏洞超过90天漏洞公开原则期限,官方尚未提供补丁,故细节得以公开。
安全客建议
更新官方1.0.3版本:
chrome.google/webstore/detail/cisco-webex-extension/jlhmfgmfgeifomenelglieieghnjghma?hl=zh-CN
但由于安全社区对该补丁的有效性尚存一定的疑虑,我们建议安装了Webex的用户,(hao)暂(hao)时(guo)禁(nian)用(bie)其(wan)浏(dian)览(nao)器(jiu)插(xing)件。