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服务器的反向代理。
安全评估第一步:映射未授权接口
产品安全调查的首要步骤之一是映射其暴露的未授权接口。最明显的是登录和密码重置功能。
通用密码重置流程通常包含:
- 生成随机唯一密钥或签名令牌
- 通过预设侧信道发送(电子邮件或短信)
- 提示用户输入随机密钥
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链:
- 重置super@velocloud.net密码(同时激活账户)
- 使用新启用账户登录
- 将自有服务器设置为系统syslog服务器
- 上传JavaScript文件
- 通过传入的syslog消息接收随机文件名
- 使用Rest Meta文件包含执行JavaScript文件
最终实现node.js环境中的代码执行。
总结思考
观察市场上的SD-WAN产品,我们发现一个值得注意的共同点:许多产品最初由初创公司开发,后期被大公司收购。初创公司通常较少关注产品安全,他们需要从零构建系统,开发周期紧张,代码审查不足,有时会走捷径。
事实上,部分漏洞很简单,部分较复杂,但都是标准安全审计能够发现和修复的问题。这说明需要安全专家检查代码的关键部分,避免在产品被实际利用后才发现漏洞。
这不是告别。我们的下一篇文章将聚焦于日常使用的某个设备(欢迎猜测),以及我们发现的有趣但令人不安的安全问题。敬请期待。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码