欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

0 day:详细分析macOS平台Shimo VPN多个权限提升漏洞

来源:本站整理 作者:佚名 时间:2019-04-19 TAG: 我要投稿

一、概述
Cisco Talos团队近日披露了Shimo VPN帮助工具(Helper Tool)的一系列漏洞。Shimo VPN是macOS平台上一个非常流行的VPN客户端,可以在一个应用程序中连接多个VPN帐户。这些特定的漏洞都存在于帮助工具之中,这是Shimo VPN中用来完成某些特权工作的一个功能。
根据我们的披露政策,在反复尝试与厂商进行沟通未果后,最终决定在官方未发布补丁的情况下披露漏洞详情。
二、Shimo VPN帮助程序服务特权提升漏洞(CVE-2018-4004)
CVE-2018-4004(TALOS-2018-0673)是一个特权提升漏洞,该漏洞位于Shimo VPN帮助程序服务中,具体而言是在其中的disconnectService函数。要成功利用该漏洞,需要对计算机进行本地访问,可能允许非root用户终止系统上的特权进程。
2.1 CVSSv3评分
7.1 – CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H
2.2 CWE
CWE-19:输入验证不正确
2.3 漏洞详情
首次安装该应用程序时,帮助工具将以root身份安装,并且作为LaunchD守护程序。这就意味着,如果该程序被终止,将会立即重新启动。该服务的监听使用:
v3 = objc_msgSend(&OBJC_CLASS___NSXPCListener, "alloc");
v4 = objc_msgSend(v3, "initWithMachServiceName:", CFSTR("com.feingeist.shimo.helper"));
第二个参数注册作为服务传入的字符串,并提示它开始监听。这一过程,将会打开服务,以连接到使用Objective-C的XPC调用。该过程会执行类似于下列的代码段,从而将客户端连接到该服务a。
v8 = objc_msgSend(v7, "initWithMachServiceName:options:", CFSTR("com.feingeist.shimo.helper"), 4096LL); [1]
  v11 = objc_msgSend(
          &OBJC_CLASS___NSXPCInterface,
          "interfaceWithProtocol:",
          &OBJC_PROTOCOL___ShimoHelperToolProtocol);                                                      [2]
在[1]的位置,使用与上面相同的调用,options变量用于表示客户端正在连接,而不是正在监听中。在[2]中,传递了一个特殊的协议,它定义了客户端可用的所有功能。服务器必须定义相同的协议,才能使这些调用正常工作。我们查看协议时,发现了漏洞的存在。
该漏洞位于disconnectService:fromRemoteHost:withComPort:withPID:withReply:函数中,相关代码如下:
  pid = arg_6;                                                        [3]
  syslog(5, "Running disconnectService in helper.");
  if ( pid  6 )
    goto LABEL_17;
  v10 = 90LL;
  if ( !_bittest64(&v10, v8) )
  {
    if ( v8 )
    {
      if ( v8 == 2 )
      {
        if ( CSProcessRunning(pid) )                                   [4]
        {
          if ( !-[ShimoHelperTool killProcessWithID:withSignal:](self, "killProcessWithID:withSignal:", pid,    15LL) )                                                       [5]
在[3]的位置,传入的参数被分配给负责保存进程ID的变量。在[4]的位置,该检查用于验证应用程序是否正在运行,然后将该进程传递给kill函数,也就是[5]。这样一来,就允许非root用户传入任何所需的PID,并使得该进程终止。这样的操作会传递权限边界,从而产生权限提升漏洞。
2.4 漏洞利用概念证明
我们提供的可执行文件,将终止PID为101的应用程序,PID 101在正常启动时是一个root进程,理论上不应该被普通用户终止,由此说明该漏洞产生的影响。
2.5 时间线
2018年9月21日  向厂商披露
2018年9月22日  厂商确认漏洞,并给出主要开发人员的联系方式
2018年9月26日  将漏洞详情发送给主要开发人员
2018年10月8日  第一次跟进进展情况
2018年11月9日  第二次跟进进展情况
2018年12月4日  第三次跟进进展情况
2019年3月14日  公开披露前跟进进展情况
2019年3月15日  公开披露0day漏洞
三、Shimo VPN帮助程序服务特权提升漏洞(CVE-2018-4005)
CVE-2018-4005(TALOS-2018-0674)是一个可利用的权限提升漏洞,该漏洞位于Shimo VPN帮助程序服务中,具体而言是在其中的configureRoutingWithCommand函数。要成功利用该漏洞,需要对计算机进行本地访问,但可能允许攻击者将其权限升级为root。

[1] [2] [3] [4] [5] [6]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载