当前位置: 首页 > news >正文

VMware VeloCloud 漏洞分析:未授权远程代码执行全链条攻破

SD-PWN 第4部分 — VMware VeloCloud — 终极接管

这是SD-PWN系列的最后一部分,我们在此披露四家主流SD-WAN供应商的严重漏洞。本次重点分析VMware的SD-WAN平台。

如果您尚未阅读前文,强烈建议先阅读:

  • 第1部分 — Silver Peak Unity Orchestrator
  • 第2部分 — Citrix SD-WAN Center
  • 第3部分 — Cisco Viptela vManage

如果您使用VMware VeloCloud Orchestrator,请立即更新系统。正如我们将要演示的,以下漏洞会导致未授权远程代码执行。与本系列涉及的其他产品一样,这些漏洞可能被用来破坏公司的整个国际网络。

VMware VeloCloud Orchestrator

VMware VeloCloud Orchestrator连接边缘路由器并集中控制网络拓扑。因此从安全角度看,它是关键的单点故障。

VeloCloud基础设施主要使用nginx作为node.js服务器的反向代理。

安全评估第一步:映射未授权接口

产品安全调查的首要步骤之一是映射其暴露的未授权接口。最明显的是登录和密码重置功能。

通用密码重置流程通常包含:

  1. 生成随机唯一密钥或签名令牌
  2. 通过预设侧信道发送(电子邮件或短信)
  3. 提示用户输入随机密钥

VeloCloud在第一步犯了两个严重错误:

  • 不使用随机字节作为重置密钥,而是直接使用用户的密码哈希值
  • 虽然实现了加密签名令牌,但支持使用{CLEAR}前缀的未签名明文令牌

这两个问题构成了"传递哈希攻击"(Pass The Hash Attack)的基础。

默认后门用户

VeloCloud采用了近年来较少见的做法:预设后门用户。虽然这些用户默认被禁用,且只有VeloCloud知道其密码(仅存哈希值),但PTH攻击允许我们在密码重置过程中直接使用哈希密码,同时重新激活用户。

这三个问题共同构成了第一个CVE。

认证绕过(PTH + 默认账户)— CVE-2020-4001

通过上述流程,我们成功重置了具有系统最高管理员权限的super@velocloud.net账户。攻击者需要预先知道:

  • super@velocloud.net的密码哈希值
  • 名为logicalId的参数

这两个值都是预设的,可以从安装文件中获取,且在系统不同实例间保持不变。

模数参数SQL注入 — CVE-2020-3984

这是标准的SQL注入漏洞,用户控制的数据在未转义的情况下直接拼接至SQL查询。其中一个存在漏洞的位置是softwareUpdate/getSoftwareUpdates方法的modulus参数。该注入漏洞允许从数据库提取任意数据(非盲注)。

Rest Meta目录遍历 + 未授权文件包含 — CVE-2020-4000

portal/rest/meta处理器使用req.originalUrl获取请求方法,该URL随后被用于require文件。虽然路径中的..会被Web服务器解析并忽略,但originalUrl包含完整的GET查询字符串。在问号后使用包含..的URL可实现目录遍历:

/portal/rest/meta/none?test/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/somefile.js

此原语允许我们执行本地磁盘上的几乎所有JavaScript文件。

RCE攻击链

我们未发现直接的命令注入漏洞,主要思路是利用文件包含漏洞上传可控内容的JavaScript文件。虽然所有文件上传点都有内容限制,但我们发现未通过内容验证的上传文件不会被删除。

文件名随机生成且不返回给用户,唯一知晓文件名的部分是日志模块。通过设置设备的syslog服务器,我们构建了完整的RCE链:

  1. 重置super@velocloud.net密码(同时激活账户)
  2. 使用新启用账户登录
  3. 将自有服务器设置为系统syslog服务器
  4. 上传JavaScript文件
  5. 通过传入的syslog消息接收随机文件名
  6. 使用Rest Meta文件包含执行JavaScript文件

最终实现node.js环境中的代码执行。

总结思考

观察市场上的SD-WAN产品,我们发现一个值得注意的共同点:许多产品最初由初创公司开发,后期被大公司收购。初创公司通常较少关注产品安全,他们需要从零构建系统,开发周期紧张,代码审查不足,有时会走捷径。

事实上,部分漏洞很简单,部分较复杂,但都是标准安全审计能够发现和修复的问题。这说明需要安全专家检查代码的关键部分,避免在产品被实际利用后才发现漏洞。

这不是告别。我们的下一篇文章将聚焦于日常使用的某个设备(欢迎猜测),以及我们发现的有趣但令人不安的安全问题。敬请期待。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码

http://www.hskmm.com/?act=detail&tid=15392

相关文章:

  • 【GitHub每日速递 250924】18 个 AI 投资大师齐上阵!这个开源对冲基金让你看透市场底牌
  • HJ9 提取不重复的整数
  • 2025年国家科技奖初评公布(科技进步奖)
  • 2025年国家科技奖初评公布(科技发明奖)
  • 12
  • 2025年国家科技奖初评公布(自然科学奖)
  • 近端策略优化算法PPO的核心概念和PyTorch实现详解
  • JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程
  • Memento:基于记忆无需微调即可让大语言模型智能体持续学习的框架
  • 记录一次附加属性失效全过程
  • Java 与物联网(IoT):边缘计算与智能终端应用
  • 为你的数据选择合适的分布:8个实用的概率分布应用场景和选择指南
  • AI 落地应用最新工具集
  • 台风呢
  • Day07-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\David\method-Demo041比较难
  • Markdown基本与阿法
  • 对称二叉树
  • 一例电动车充电器防反接电路分析
  • isEmpty/isNotEmpty/isNotBlank/isBlank-isAnyEmpty/isNoneEmpty/isAnyBlank/isNoneBlank
  • NetCore+Web客户端实现gRPC实时推送
  • 个人项目-论文查重
  • 个人项目作业
  • 软工第二次作业--王腾
  • 牛客周赛 Round 110 E,F题解
  • 第5章:路由(Routing)与直连交换机(Direct Exchange)
  • 搜索百科(4):OpenSearch — 开源搜索的新选择
  • JAVA的计算方式
  • 安装 elasticsearch-9.1.4 - 集群 和 kibana-9.1.4
  • 反码 原码 补码
  • 线性结构常见应用之栈[基于郝斌课程]