Cisco vManage 漏洞分析:未授权 RCE 与权限提升完整攻击链
SD-PWN — 第 3 部分 — Cisco vManage — 又一日,又一次网络接管
这是四部分系列中的第三篇文章,前两部分请参阅:
第 1 部分 — Silver Peak Unity Orchestrator
第 2 部分 — Citrix SD-WAN Center
本文继续我们的 SD-WAN 之旅。如果您尚未阅读第 1 和第 2 部分,强烈建议您查看。简而言之,我们在 SD-WAN 市场的四个主要产品中发现了关键的无认证 RCE 漏洞,这次我们将讨论 Cisco Viptela vManage。
Cisco Viptela vManage
Cisco Viptela vManage 是 Cisco SD-WAN 基础设施的核心,管理网络中的所有不同端点。由于 SD-WAN 设计的集中化特性,从安全角度来看,vManage 是单点故障。
通过串联 4 个不同的漏洞,我们能够在 vManage 机器上获得无认证的 root 权限 RCE,这些机器通常托管在公司的云环境中。攻击者无需任何配置的先验知识即可利用这些缺陷。
如果您的组织使用 Cisco 的 Viptela SD-WAN 解决方案,请紧急更新设备。最新固件已修复以下所有问题。
技术细节
系统的初始攻击向量是运行在 vManage 机器 443 端口上的 Web 管理服务器。该 Web 服务器使用 JBoss 框架运行 Java 小程序。Web 管理接口的无认证攻击面在 web.xml 文件中列出,明确定义了所有可访问的 URL 路径。
SSRF + 任意文件写入 — CVE-2020–27128
在查看可能的入口点时,我们注意到了/dataservice
入口点。我们不确定代码的确切意图,但我们的假设是不同的端点使用 dataservice URL 共享数据和统计信息。
/dataservice/statistics/download/dr/filelist
处理程序负责下载系统中两台机器之间的统计信息。它接收相邻机器的 IP 地址和统计文件名并下载以供后续使用。
完全没有进行用户输入验证,导致了多个漏洞。首先,任何 IP 都可以通过sourcevManageIp
参数传递给处理程序,允许进行 SSRF 攻击。其次,token
和fileType
参数中的目录遍历允许攻击者将上述数据下载到任何目标路径,甚至可以覆盖现有文件。
服务器以 vmanage 用户身份运行,允许覆盖一些有趣的文件。
此外,该处理程序没有受到任何 CSRF 机制的保护。
将导致服务器 GET 以下路径:
并将文件内容写入:
尽管这是一个可能被利用来实现 RCE 的关键漏洞,但它不是最终攻击链的一部分。
未授权文件读取 + 目录遍历 — CVE-2020–26073
在上面的处理程序旁边,我们注意到了另一个有趣的处理程序 — /dataservice/disasterrecovery/download/token/
。
它接收一个参数 — 要读取的文件...再次,没有执行用户输入验证,允许轻松利用目录遍历。攻击者能够读取 vManage 用户可访问的任何文件。
将读取/etc/viptela/.ssh/id_dsa
的内容。
SSH 密钥
/etc/viptela/.ssh/id_dsa
是用于 SSH 连接的秘密私钥,具有 vmanage 用户的读取权限。它允许攻击者以 vmanage-admin 身份通过 SSH 连接。
vmanage-admin 的登录二进制文件是viptela_cli
,与 admin 相同,但 vmanage-admin 无法访问常规 CLI 控制台。这是在viptela_cli
的主函数中决定的,该函数验证用户名。否则,用户可以通过 SSH 连接发送单个命令,这提供了一些攻击面。
viptela_cli 中的命令注入 — CVE-2020–27129
使用上述 SSH 密钥登录后,viptela_cli
解析用户提供的命令。通过 SSH 连接发送的任何命令在执行前都会经过验证。
通常只允许以scp -f
开头的命令。不幸的是,对命令的其余部分没有执行任何清理,允许攻击者使用分号注入另一个命令。
上面的命令将以 vmanage-admin 用户身份运行。
使用 busybox.suid 进行权限提升 — CVE-2020–26074
在寻找系统中提升权限的不同选项时,我们注意到了一个特殊的 suid 文件 — busybox.suid
。文件系统中的 SUID 位将在每次执行时将二进制文件的权限提升为 root。busybox.suid
允许以 root 身份运行多个 busybox 小程序。
一个有趣的小程序是tftp
,它允许使用 tftp 协议向系统上传和下载文件。没有对目标路径进行验证,使恶意用户能够以 root 身份用任何给定数据覆盖任何文件。这使得可以完全控制系统。
一个基本示例是用新的 root 密码覆盖/etc/shadow
文件,然后简单地运行su
来获得 root 访问权限。
完整 RCE 攻击链
使用目录遍历漏洞读取 vmanage-admin 的私有 SSH 密钥
通过 SSH 登录并注入将运行权限提升的命令
使用
busybox.suid
的 tftp 小程序覆盖/etc/shadow
运行
su
命令获得 root 命令执行
请注意,这只是利用这些漏洞的一种方式。可能会找到其他可能更简单的攻击链。
时间线
Realmode Labs 要感谢 Cisco 及其 PSIRT 在报告和修复这些缺陷过程中的出色沟通。
2020-07-31 — Realmode Labs 向 Cisco PSIRT 发送初始报告
2020-07-31 — Cisco PSIRT 确认报告,分配经理
2020-11-02 — Cisco PSIRT 分配 CVE 编号,发布修复软件
2020-11-04 — 发布公告和 CVE
2020-11-23 — 本报告发布
请确保在 LinkedIn 上关注我们或通过 contact@realmodelabs.com 联系我们,以获取下一个 SD-PWN 漏洞帖子。
如果您有兴趣对您的某个产品进行安全审计,请联系我们。我们的团队由最高水平的研究人员组成,在发现最难以捉摸的漏洞方面有着良好的记录。
参考资料
漏洞 1 — SSRF + 任意文件写入 — CVE-2020–27128
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-vmanage-file-Y2JSRNRb
漏洞 2 — 未授权文件读取 + 目录遍历 — CVE-2020–26073
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-vman-traversal-hQh24tmk
漏洞 3 — viptela_cli 中的命令注入 — CVE-2020–27129
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-vmanage-privilege-zPmMf73k
漏洞 4 — 使用 busybox.suid 进行权限提升 — CVE-2020–26074
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-vmanage-escalation-Jhqs5Skf 更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
公众号二维码

公众号二维码

评论