Cisco Webex Meetings桌面应用特权提升漏洞分析(CVE-2018-15442)
前一段时间,Ron Bowes在Cisco WebEx Meetings桌面版应用程序中发现了一个漏洞,该漏洞可能允许本地权限提升,或者在攻击者拥有一个用户权限的情况下,可以使用psexec以SYSTEM身份获取远程代码。该研究人员将该漏洞命名为WebExec,并且还为该漏洞设计了一个网站。
通过重新分析和尝试利用CVE-2018-15442漏洞,我们发现了原始漏洞的绕过方法。由于原始漏洞和这一绕过方法非常类似,因此Cisco决定不再发布新的CVE,我们同意这一选择。从技术上看,它是一个远程代码执行漏洞,分析触发这一漏洞的方式比介绍如何在本地进行漏洞利用要更有意义。
在WebEx的官网上,解释了WebEx的功能,可以快速总结为:
……通过WebEx Meetings,可以轻松加入会议,提供清晰的音频和视频,并具有更加简便的屏幕共享方式。我们帮助您忘记技术,只专注于重要的事情……
但是,Cisco还应该注意所使用技术的安全性。
在阅读了Ron的博客文章后,我们了解到,底层问题是WebExService使用了由用户控制的二进制文件,并将其以SYSTEM权限执行。我认为,没有比这更能简单利用的漏洞了。
重新分析漏洞
根据Ron的分享,在漏洞修复后,WebEx将会检查可执行文件是否经过WebEx的签名。
修复后的WebEx仍然允许远程用户连接到进程,并且启动进程。但是,如果进程检测到它运行了未经WebEx签名的可执行文件,那么执行将会停止。但是,他们并没有给出主机是否易受攻击的信息。
我们首先检查补丁状态,在从Cisco的CDN安装最新版本后,确认已经没有可用的更新:
接下来,我们对存储在C:\Program Files\Webex\Webex\Applications\WebExService.exe的二进制文件进行分析,可以找到一些值得关注的地方。我注意到的第一件事,就是代码只会查找一个参数类型,就是软件更新。
.text:00402DC4 loc_402DC4: ; CODE XREF: sub_402D80+1C
.text:00402DC4 push offset aSoftwareUpdate ; "software-update"
.text:00402DC9 push dword ptr [esi+8] ; lpString1
.text:00402DCC call ds:lstrcmpiW
.text:00402DD2 test eax, eax
.text:00402DD4 jnz loc_402E66
.text:00402DDA push 208h ; Size
.text:00402DDF push eax ; Val
.text:00402DE0 lea eax, [ebp+Dst]
.text:00402DE6 push eax ; Dst
.text:00402DE7 call memset
.text:00402DEC add esp, 0Ch
.text:00402DEF lea eax, [ebp+Dst]
.text:00402DF5 push offset pszFile ; "ptupdate.exe"
.text:00402DFA push dword ptr [esi+10h] ; pszDir
.text:00402DFD push eax ; pszDest
前一段时间,Ron Bowes在Cisco WebEx Meetings桌面版应用程序中发现了一个漏洞,该漏洞可能允许本地权限提升,或者在攻击者拥有一个用户权限的情况下,可以使用psexec以SYSTEM身份获取远程代码。该研究人员将该漏洞命名为WebExec,并且还为该漏洞设计了一个网站。
通过重新分析和尝试利用CVE-2018-15442漏洞,我们发现了原始漏洞的绕过方法。由于原始漏洞和这一绕过方法非常类似,因此Cisco决定不再发布新的CVE,我们同意这一选择。从技术上看,它是一个远程代码执行漏洞,分析触发这一漏洞的方式比介绍如何在本地进行漏洞利用要更有意义。
在WebEx的官网上,解释了WebEx的功能,可以快速总结为:
……通过WebEx Meetings,可以轻松加入会议,提供清晰的音频和视频,并具有更加简便的屏幕共享方式。我们帮助您忘记技术,只专注于重要的事情……
但是,Cisco还应该注意所使用技术的安全性。
在阅读了Ron的博客文章后,我们了解到,底层问题是WebExService使用了由用户控制的二进制文件,并将其以SYSTEM权限执行。我认为,没有比这更能简单利用的漏洞了。
重新分析漏洞
根据Ron的分享,在漏洞修复后,WebEx将会检查可执行文件是否经过WebEx的签名。
修复后的WebEx仍然允许远程用户连接到进程,并且启动进程。但是,如果进程检测到它运行了未经WebEx签名的可执行文件,那么执行将会停止。但是,他们并没有给出主机是否易受攻击的信息。
我们首先检查补丁状态,在从Cisco的CDN安装最新版本后,确认已经没有可用的更新:
接下来,我们对存储在C:\Program Files\Webex\Webex\Applications\WebExService.exe的二进制文件进行分析,可以找到一些值得关注的地方。我注意到的第一件事,就是代码只会查找一个参数类型,就是软件更新。
.text:00402DC4 loc_402DC4: ; CODE XREF: sub_402D80+1C
.text:00402DC4 push offset aSoftwareUpdate ; "software-update"
copyright 无奈人生
.text:00402DC9 push dword ptr [esi+8] ; lpString1
.text:00402DCC call ds:lstrcmpiW
.text:00402DD2 test eax, eax
.text:00402DD4 jnz loc_402E66
.text:00402DDA push 208h ; Size
.text:00402DDF push eax ; Val 无奈人生安全网
.text:00402DE0 lea eax, [ebp+Dst]
.text:00402DE6 push eax ; Dst
.text:00402DE7 call memset
.text:00402DEC add esp, 0Ch
.text:00402DEF lea eax, [ebp+Dst]
.text:00402DF5 push offset pszFile ; "ptupdate.exe" www.wnhack.com
.text:00402DFA push dword ptr [esi+10h] ; pszDir
.text:00402DFD push eax ; pszDest
内容来自无奈安全网