导语:Windows的Cisco AnyConnect Secure Mobility客户端的更新功能受到路径遍历漏洞的影响,该漏洞使本地攻击者可以在任意位置创建或者覆盖文件。
摘要
Windows的Cisco AnyConnect Secure Mobility客户端的更新功能受到路径遍历漏洞的影响,该漏洞使本地攻击者可以在任意位置创建或者覆盖文件。成功利用此漏洞可以使攻击者获得SYSTEM特权。
测试版
该问题已经在微软4.8.01090版本的思科AnyConnect Secure Mobility客户端得到成功验证。
解决
此漏洞在Windows版本4.8.02042的Cisco AnyConnect Secure Mobility客户端中已修复。拥有有效合同的思科客户可以通过软件中心(https://software.cisco.com/download/navigator.html)获得更新。
思科已向注册用户公布了ID为CSCvs46327的漏洞,其中包含一些详细信息以及受影响产品版本的最新列表。
介绍
Cisco AnyConnect Secure Mobility客户端包含自动自我更新的功能。自动更新还适用于低特权用户,能够做到这一点是因为,更新是从以SYSTEM特权运行的服务(Cisco AnyConnect Secure Mobility代理)中启动的。此服务在回送设备上公开TCP端口62522,客户端可以连接到该端口并发送该服务要处理的命令。这些要处理的命令中包含一个命令,该命令可启动vpndownloader应用程序并更新AnyConnect。
Windows 的vpndownloader应用程序中存在一个路径遍历漏洞,该漏洞使本地用户可以在临时安装程序文件夹之外创建和运行文件。成功利用此漏洞的话,本地攻击者便可以获得系统特权。
漏洞详情
该AnyConnect的自动更新功能已受到了许多过去的漏洞的影响,诸如可以滥用该功能来使得本地用户获取SYSTEM权限(例如,Kostya Kortchinsky,Securify,Zero项目,SerializingMe)。思科进行了许多努力以尽量减少这些攻击发生的可能,其中包括:
· 可执行文件需要具有Cisco Systems, Inc . 的有效Authenticode签名。
· vpndownloader.exe的(新)版本已复制到 %ProgramData%\ Cisco \ Cisco AnyConnect Secure Mobility客户端\ Temp \ Downloader。
· 正确的NTFS权限(当前)已在 %ProgramData%\ Cisco \ Cisco AnyConnect Secure Mobility Client \ 文件夹中设置。
· 该vpndownloader.exe可执行文件必须配置vpndownloader.exe作为其版本信息的原始文件名。
· 当vpndownloader.exe启动其他安装文件时,这些文件仍然需要具有来自思科系统公司的有效Authenticode签名。
· 在执行安装文件之前,需要将它们复制到 %ProgramData%\ Cisco \ Cisco AnyConnect Secure Mobility客户端\ Temp \ Installer下的单独临时文件夹中。
简而言之,自动更新机制的工作原理是将消息发送到AnyConnect代理以启动vpndownloader.exe并指示其执行某些操作(作为命令行参数)。此操作是将配置文件格式(XML)的文件移动或者复制到配置文件格式的文件夹或启动Cisco签名的安装程序文件中。
从技术上讲,这里并不一定需要一个安装程序文件,任何经过Cisco签名的可执行文件都可以。当vpndownloader.exe指示运行安装程序文件,该文件是先被复制到一个临时文件夹 %ProgramData%\思科\思科AnyConnect Secure Mobility客户端的\ Temp \安装。复制文件后,将对其检查数字签名,包括文件的签名者。如果全部签出,则从临时文件夹启动文件,并在执行完成后删除该文件夹。
由于可执行文件已复制到新的临时文件夹,并且该文件夹具有适当的NTFS权限,因此无法执行文件/ DLL植入攻击来运行任意代码。此外,该文件必须由Cisco签名,并且签名必须有效,以防止执行任意可执行文件。
(用户提供的)可执行文件被复制到临时文件夹的步骤中存在一个路径遍历漏洞。vpndownloader.exe将从源文件名中提取目标文件名。本质上,它是通过在源路径中搜索最后出现的反斜杠(\)字符来实现的,反斜杠之后的右部被视为文件名,并被用作目标文件名。AnyConnect没有考虑到Windows API也接受正斜杠(/)作为目录分隔符。因此,有可能导致vpndownloader.exe在其临时文件夹之外创建文件。
由于签名验证是在文件复制后完成的,因此攻击者有可能将任何文件复制到与 %ProgramData%(通常为C:\)位于同一卷上的任何位置。通过AnyConnect代理启动vpndownloader.exe时,可以使用SYSTEM特权完成文件的复制。如果目标文件存在并且SYSTEM对此文件具有写访问权,它将被攻击者提供的文件覆盖。仅此一项就足以使本地用户获得提升的特权。
另一个攻击情形是劫持Cisco签名的可执行文件加载的DLL。许多Cisco的可执行文件都会受到DLL劫持的影响,其中,dbghelp.dll文件就是Cisco应用程序使用的一个常见DLL 。攻击包括两个步骤:
· 在临时文件夹之外创建一个由攻击者控制的dbghelp.dll文件以防止删除,向上遍历一个文件夹就足够了。
· 再次使用路径遍历漏洞,启动一个Cisco签名的可执行文件,使其容易受到来自同一文件夹的DLL劫持的攻击。
通过AnyConnect代理启动Cisco签名的可执行文件时,它还将以SYSTEM特权运行。攻击者控制的DLL中的代码也将以这些特权运行。该应用程序本身在会话0中打开。Windows 10 1803已删除了“ 交互式服务检测服务”,该服务使用户无法与会话0中显示的任何GUI进行交互。当然,这并不能阻止攻击者获得SYSTEM特权,但确实使得攻击者需要采取额外的步骤才能做到以更高的特权启动GUI应用程序。
本文翻译自:https://www.securify.nl/advisory/SFY20200419/cisco-anyconnect-elevation-of-privileges-due-to-insecure-handling-of-path-names.html如若转载,请注明原文地址: