导语:研究人员在Cisco的WebEx在线和视频协作软件中发现一个不同寻常的远程代码执行漏洞。用户可以通过WebEx客户端的一个组件在WebEx没有监听远程连接的情况下远程执行代码。
其实远程代码执行漏洞非常普遍,研究人员在Cisco的WebEx在线和视频协作软件中发现一个不同寻常的远程代码执行漏洞。用户可以通过WebEx客户端的一个组件在WebEx没有监听远程连接的情况下远程执行代码。
远程代码执行漏洞是用户可以远程连接到有漏洞的应用并在远程计算机上执行命令的漏洞。因为许多这类漏洞都可以以提升的权限执行命令,因此都是比较严重的漏洞。
反黑客组织Counter Hack的研究人员Ron Bowes和Jeff McJunkin日前披露了该漏洞。研究人员是在最近的渗透测试过程中发现的该漏洞,最初的测试目标是提升本地标准用户账户的权限,但发现了该远程代码执行漏洞,研究人们将其命名为WebExec。
研究人员在进行渗透测试时发现Cisco WebEx使用了WebexService服务,该系统可以被任意有System权限的用户启动和停止。
WebexService
WebExService.exe使用的该服务可以被任何有完全权限的group中的任何人进行修改。
每个人都可以获取全部权限
因为任何人都可以访问该可执行文件,研究人员意识到他们可以替换该可执行文件来进行提权。研究人员在寻找提权的方法时发现Cisco 9月份已经发布了该漏洞的安全更新。
WebExService.exe
因此,研究人员决定深入分析WebexService.exe的工作原理。利用调试信息、不断尝试、逆向,最后发现该服务虽然是用来更新WebEx的,但也可以用来启动其他程序。
因为该服务是以System账号权限运行的,任何以System权限运行的可执行文件都可以被启动。
Windows启动时,WebexService服务并不会自动运行,只有在需要执行WebEx更新时或被其他程序调用时才启动。
为了使用WebexService服务来启动程序,可以启动该服务并将命令传递为参数执行。比如,为了让WebexService.exe启动calc.exe程序,可以使用命令:
sc start webexservice a software-update 1 calc c d e f
WebExService启动calc.exe程序
当calc.exe程序被以System权限运行的服务启动时,同时会以System权限运行。
以System权限运行的计算器
假设你是一个没有提升权限的标准用户,但是想要提升权限。就可以利用该bug来启动cmd.exe,以获取完全管理权限。
开启提升权限的cmd
上面的命令会以启动一个有管理权限的cmd,如下图所示:
提升权限的cmd
远程代码执行
前面提到用户可以通过WebEx客户端的一个组件在WebEx没有监听远程连接的情况下远程执行代码。用户如何在没有运行等待连接的情况下远程执行代码呢?因为Windows sc 命令可以用下面的命令在远程机器上开启服务:
c:\>sc \\10.0.0.0 start webexservice a software-update 1 net localgroup administrators testuser /add
为了远程使用sc,首先需要被远程机器认证,可以是本地账户也可以是域账户。成功与服务建立连接后,就可以远程的开启或关闭Windows服务了。比如,可以关闭或开启WebExService服务,但大多数服务都需要管理员权限。
因为sc命令需要远程机器开发445端口,因此该漏洞在Internet上并不是非常有用。这是因为大多数的ISP和公司都会在路由器或防火墙上拦截445端口。
因此如果攻击者已经获取了计算机的相关权限,就可以利用该漏洞来在相同网络上的其他机器上执行命令了。
Cisco也在v 33.0.5及之后版本修复了该漏洞。