什么是 CDR?以及它在现代网络安全中的重要性

立即阅读
我们利用人工智能进行网站翻译,虽然我们力求准确,但不一定总是 100%精确。感谢您的理解。

CVE-2023-20198 & CVE-2023-20273:在 IOS XE 上从未经验证的 Web 请求到根目录

OPSWAT
分享此贴
OPSWAT 研究金计划参与者

摘要

2023 年底,安全研究人员发现了一个影响 Cisco IOS XE Web UI 的关键链式漏洞,允许未经身份验证的攻击者完全控制受影响的设备。该攻击链结合了两个安全漏洞--CVE-2023-20198CVE-2023-20273--当它们一起被利用时,会导致在运行 IOS XE 的底层 Linux 主机上执行根级命令。这样就可以完全接管设备、进行持续访问并在企业网络中进行潜在的横向移动。

  • CVE-2023-20198:Cisco IOS XESoftware 版本 16.0.x 至 17.9.x 中存在此漏洞,未经身份验证的攻击者可通过 Web UI 获得初始访问权限并创建权限级别 15(管理员)账户。一旦创建,攻击者就可以在设备上执行任何管理操作,从而带来严重的安全风险。
  • CVE-2023-20273:影响相同的软件版本,此漏洞允许具有 15 级权限的验证用户通过软件管理组件中的命令注入漏洞,在底层 Linux 操作系统上以 root 权限执行任意命令。

在OPSWAT 研究员计划期间,我们的研究员 Hoa X.Nguyen 和 Nhan Nguyen 对这一攻击链进行了深入的技术分析。在研究过程中,我们在运行IOS XE 17.01 的 Cisco Catalyst 9300-24T-E交换机上重现了这些漏洞,演示了在实际条件下如何将这些漏洞串联起来以实现对系统的全面入侵。

背景介绍

思科 IOS XE 概览

Cisco IOS XE 是一种现代化、模块化的网络操作系统,为思科的许多企业平台(包括路由器、交换机和无线控制器)提供动力。它将经典 Cisco IOS 的丰富功能与更安全、可编程和基于 Linux 的架构相结合,为网络管理员提供了灵活性和更高的性能。

IOS XE 的核心是作为Linux 操作系统运行,其主进程称为IOSd(IOS 守护进程。该守护进程处理传统的网络任务,如路由选择、CLI 管理和配置控制。在 IOS XE 17.01 中,IOSd 二进制进程位于/usr/binos/bin/x86_64_crb_linux_iosd_ngwc-universalk9-ms。

与传统的思科系统不同,通过 SSH 连接的 IOS XE 用户被置于受限的 IOSd 子系统外壳中,而不是底层 Linux 环境中。这种设计隔离了操作系统真正的 root 级访问,大大加强了用户交互与主机内核之间的整体安全边界。

思科权限级别

思科设备采用分级权限模型来控制用户权限:

  • 0 级--零级访问:这是最受限制的级别。它通常只允许有限的基本命令集,如注销、启用、禁用、帮助和退出。
  • 级别 1 - 用户 EXEC 模式:标准登录的默认访问权限,允许查看基本系统,但不能更改配置。
  • 第 15 级 - 高级 EXEC 模式:这是最高权限级别,可完全控制设备。该级别的用户可以执行包括配置命令在内的所有命令,并可以重新加载设备。

中间级(2-14 级)可以自定义,以授予特定权限。权限具有继承性,这意味着较高层次的用户会自动拥有较低层次的权限。

思科网络用户界面架构

Cisco IOS XE Web UI 为管理和监控设备提供了一个基于浏览器的界面,无需命令行访问即可提供配置和诊断功能。在内部,Web UI 利用 NGINX 作为中间件代理,将用户请求路由到各种内部服务,包括 Web 服务管理代理(WSMA)。

WSMA 组件是网络用户界面与底层 IOSd 守护进程之间的通信桥梁,可将基于网络的操作转换为相应的 IOS XE 配置命令。

图 2:IOS XE 中的 HTTP 请求流

为了实施访问控制,每个请求都要通过专用 HTTP 标头(Priv-Level)进行基于 SOAP 的身份验证和权限验证,确保只有授权用户才能执行权限操作。

图 3:SOAP XML 主体示例,包含用户名、占位符密码和要执行的命令

技术分析

CVE-2023-20198 - 身份验证绕过和权限升级

我们的研究人员发现,该漏洞源于 Cisco IOS XE 的Web UI HTTP 端点。在处理传入请求时,Web UI 会将命令及其相关用户权限传递到一个内部端点 (/lua5),然后由NGINX根据协议将其路由到两个 WSMA 处理器之一 - /webui_wsma_http 或 /webui_wsma_https 。

图 4:WebUI 源代码中的命令解析处理程序
图 5:NGINX 路由配置,设置适当的 Priv-Level 标头,并传递给相应的 IOSd 处理程序

对 IOSd 二进制文件的静态分析还发现,NGINX 配置中包含一个默认回退处理程序:  

图 6:在 IOSd 中找到的默认后备 nginx 处理程序

该漏洞源于NGINXIOSd处理URL 编码的方式。这两个组件独立解码 URL 路径,允许攻击者利用双重编码绕过漏洞

例如,如果/webui_wsma_https/%2577ebui_wsma_https 的形式发送,NGINX会执行一次解码并看到/%77ebui_wsma_https(与受保护的内部路由不直接匹配),因此它会通过限制较少的回退处理程序来分发请求。当请求到达 IOSd 后端时,IOSd 会执行第二次解码,并将路径解析为 /webui_wsma_https

图 7:双重编码链

由于 NGINX 最初使用默认处理程序路由这种畸形请求,因此无法执行正常的身份验证和访问控制逻辑。因此,攻击者可以注入一个伪造的 Priv-Level 标头,为自己分配管理员级 (15) 权限。与携带创建新用户命令的 SOAP XML 有效载荷相结合,就可以无声无息地创建一个高权限本地账户。

图 8:使用定制的 HTTP 请求成功创建高权限(15 级)攻击者账户

这种攻击无需事先进行身份验证,攻击者可通过 Web UI 对设备进行完全配置控制,从而建立起攻击链的第一阶段。

CVE-2023-20273 -Software 管理中的命令注入

一旦通过新创建的管理员账户验证,攻击者就可以利用软件管理组件 (/webui/rest/softwareMgmt/*) 中的CVE-2023-20273 命令注入漏洞。该端点供合法管理员在设备上安装或更新软件包。

该漏洞源于 validateSmuRequest(req) 函数中的输入验证逻辑,它调用validator.validateIPv4IPv6HostNameAddress(req.ipaddress)来验证请求中提供的 IP 地址。这一验证步骤旨在确保所提供的地址格式正确,可以安全使用。

在 validateIPv4IPv6HostNameAddress 中,验证依赖辅助例程utils.isIPv6Address(ip)来评估IPv6语法的合规性。该函数试图通过分隔冒号(:)来解析输入,并使用正则表达式评估每个分段,以拒绝无效的十六进制模式或超出范围的值。该正则表达式的实施缺陷在于:由于 * 数量符过于宽松,它可以匹配任何输入,从而有效地允许畸形或恶意值不经检查通过验证。

因此,攻击者控制的数据会被视为有效数据,并流入下游逻辑,用于构建命令。不受信任的IP 地址值最终会在runPexecCommand()函数中被用于构建启动 TFTP 请求的系统命令。由于该操作未经输入验证或转义,攻击者可以向进程中注入任意命令,从而以更高权限执行命令并完全控制思科设备。

概念验证 (PoC)

在OPSWAT 研究员项目期间,我们的研究员 Hoa X. Nguyen 和 Nhan Nguyen 在一个受控的空气屏蔽实验室中,在运行 IOS XE 17.01 的 Cisco Catalyst 9300-24T-E 上重现了链式漏洞利用。漏洞利用顺序可归纳为以下几个阶段:

图 9:未经授权的攻击者使用 CVE-2023-20198 和 CVE-2023-20273 的最终漏洞利用链
  1. 双重编码请求:向双重编码的内部路径(如 /%2577ebui_wsma_https)发送特制的 POST,该路径通过代理回退路由,并包含伪造的 Priv-Level 标头和账户创建 SOAP 有效负载。
  2. 获取管理员会话:使用创建的账户登录并收集会话/CSRF 令牌。
  3. 上传有效载荷:使用 Web UI上传功能在设备上放置 attacker_shell.sh(仅限管理员操作)。
  4. 通过 SMU 执行:使用伪造的 IP 地址提交 SMU 请求(例如,100:100:100:$(/bin/sh /bootflash/attacker_shell.sh) 100:100:100:$(/bin/sh /bootflash/attacker_shell.sh绕过验证,上传的脚本以 root 身份执行。
图 10:成功获得目标思科设备的 root 权限

补救措施

思科已发布针对 CVE-2023-20198 和 CVE-2023-20273 的 Cisco IOS XESoftware 修补版本。所有运行 16.0.x 至 17.9.x 受影响版本的组织应立即升级到思科官方安全公告中概述的最新修复版本。应用这些更新可有效消除底层漏洞,防止通过 Web UI 进行未经授权的权限升级或命令注入。

对于无法立即升级的环境,管理员应限制或禁用来自不信任网络的 Web UI 访问,对管理界面执行严格的身份验证控制,并持续监控异常系统行为,如未经授权的账户创建或异常配置更改。

为了加强整体网络复原力,企业可以利用OPSWAT的MetaDefender 平台来补充供应商的补丁,该平台是一个统一的安全框架,旨在通过检测和预防文件、设备和数据流中的威胁来保护关键基础设施。将MetaDefender 集成到网络和运营工作流中可提高可见性,确保更深入的威胁检测,并提供额外的防护措施,防止针对管理系统的潜在利用企图。

通过将及时的思科更新、强大的访问控制和由MetaDefender 平台支持的分层防御策略结合起来,企业可以显著减少类似漏洞链的风险,并保持更强大、更有弹性的安全态势。

标签

通过OPSWAT 了解最新信息!

立即注册,即可收到公司的最新动态、 故事、活动信息等。