vCenter漏洞分析:CVE-2024-37079 & CVE-2024-37080

一、前言 CVE-2024-37079 和 CVE-2024-37080 是两个存在于DCERPC组件中的漏洞,攻击者可以通过构造恶意请求,在远程触发 vCenter Server 上的任意代码执行。这些漏洞位于 DCE/RPC 协议中,具有 vCenter Server 网络访问权限的远程攻击者可以通过发送特制的网络数据包,在 DCERPC 协议实施过程中触发堆溢出漏洞,从而实现远程代码执行。。目前两个漏洞已报送厂商并于6月份修复完成。本文将详细讲解两个漏洞的成因。这两个漏洞已于2024年6月报送厂商并修复完成。本文将详细分析这两个漏洞的成因。 二、DCE/RPC协议介绍 DCE/RPC协议(Distributed Computing Environment / Remote Procedure Call)源于20世纪80年代,由Open Software Foundation(OSF)开发,作为开放分布式计算架构的一部分。其最初设计目的是为跨网络的异构计算机系统提供一种统一的远程过程调用(RPC)机制,从而简化不同系统之间的通信。随着网络技术的发展,DCERPC逐渐被广泛应用,特别是在Unix、Windows NT等系统中。微软在采用DCERPC协议的基础上进行了扩展,用于Windows系统中的重要服务和应用程序,尤其在Windows NT中用于SMB(Server Message Block)协议。由于微软的广泛采用,DCE/RPC成为了企业网络和操作系统中不可或缺的通信协议。 DCE/RPC协议为了实现远程过程调用,使用接口定义语言(IDL)定义接口。在IDL代码中定义了UUID,版本,接口,方法,参数,返回值以及使用到的复杂数据类型等信息。服务端和客户端通过共享这些信息完成远程过程调用的通信,其中UUID作为接口标识用于客户端向服务端发送绑定请求,建立上下文。 DCE/RPC远程过程调用通信的流程(如图一)通常如下: 客户端初始化请求:客户端向服务器发起绑定请求(Bind),选择所需的远程接口,提供接口UUID和版本号,并协商通信协议和数据传输语法(如NDR)。 服务器响应绑定:服务器接收到客户端的绑定请求后,确认是否支持请求的接口UUID、版本号和传输语法。如果支持,返回绑定确认(Bind Ack),否则返回绑定失败(Bind Nack)。 客户端发送调用请求:在成功绑定后,客户端构造远程过程调用的请求(Request)消息,包含所调用的方法及其参数,并将这些参数进行编组(序列化)。 服务器处理请求:服务器接收到请求消息后,解组请求中的参数,调用相应的本地方法进行处理。处理完成后,服务器将结果重新编组并发送响应(Response)消息。 客户端接收响应:客户端接收到响应消息后,解组数据并获取调用结果。如果调用过程中发生错误,服务器会返回故障消息(Fault),客户端需进行相应处理。 上下文修改请求:如果客户端需要更改通信中的上下文(如修改接口、更新权限或改变数据传输语法),客户端可以发送Alter Context Request,请求修改现有的上下文参数。 上下文修改响应:服务器接收到Alter Context Request后,检查请求的上下文修改是否有效。如果上下文修改成功,服务器返回Alter Context Response,确认新的上下文已生效。如果修改失败,服务器返回错误信息,客户端可以重新发送修改请求或终止会话。 客户端解除绑定:在完成所有调用后,客户端可以选择发送解除绑定请求(Unbind),通知服务器结束通信。 三、漏洞分析 2.1 CVE-2024-37079 CVE-2024-37079出现在bind认证数据包的响应处理过程中。负责处理认证的函数rpc__cn_assoc_process_auth_tlr 的函数声明如下,其中参数header_size 为((pres_cont_list->n_context_elem - 1) * 0x18) + 0x1c + 0x20 INTERNAL void rpc__cn_assoc_process_auth_tlr ( rpc_cn_assoc_p_t assoc, rpc_cn_packet_p_t req_header, unsigned32 req_header_size, rpc_cn_packet_p_t resp_header, unsigned32 *header_size, unsigned32 *auth_len, rpc_cn_sec_context_p_t *sec_context, boolean old_client, unsigned32 *st ) pres_cont_list->n_context_elem 的值来源于与数据包的Num Ctx Items字段...

2024年12月11日 · 4 分钟 · zhz