三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

CVE-2024-38063终极研究:tcpip.sys远程代码执行漏洞完整技术解析

CVE-2024-38063终极研究:tcpip.sys远程代码执行漏洞完整技术解析

CVE-2024-38063终极研究:tcpip.sys远程代码执行漏洞完整技术解析

【免费下载链接】CVE-2024-38063poc for CVE-2024-38063 (RCE in tcpip.sys)项目地址: https://gitcode.com/gh_mirrors/cve2/CVE-2024-38063

CVE-2024-38063是一个存在于Windows tcpip.sys驱动中的远程代码执行漏洞,于2024年8月13日被修复。该漏洞可通过精心构造的IPv6数据包触发,允许攻击者在目标系统上执行任意代码。本文将从漏洞原理、利用策略和防御措施三个方面,为您提供完整的技术解析。

漏洞核心原理:数据包合并处理中的致命缺陷

Windows系统在处理IPv6数据包时存在一个关键缺陷:当多个数据包被合并(coalesce)处理时,扩展头解析错误会导致后续数据包的状态被意外重置。具体表现为:

  • 状态重置异常:在解析"目的选项"扩展头时发生错误后,IppSendError函数会将数据包的当前偏移量重置为0,但仅标记第一个数据包为错误状态
  • 链式处理漏洞:驱动会继续处理链表中的其他数据包,此时这些数据包已被重置,导致解析逻辑使用错误的偏移量(0而非预期的0x28)和数据指针

这种状态不一致最终导致Ipv6pReassemblyTimeout函数中的整数溢出,触发堆缓冲区溢出,为远程代码执行提供可能。

漏洞利用策略:三步触发堆溢出

成功利用该漏洞需要精确控制数据包构造和发送时机,核心步骤如下:

1. 构造恶意数据包序列

通过Python脚本构造三类特殊IPv6数据包:

  • 恶意目的选项包:包含畸形的"目的选项"扩展头,触发错误处理逻辑
  • 碎片包#1:设置特定ID和偏移量,诱导合并处理
  • 碎片包#2:完成碎片序列,确保正常处理流程不被中断

关键代码实现位于script/cve-2024-38063.py,通过循环构造多组数据包提高触发成功率:

for _ in range(num_batches): for i in range(num_tries): final_ps += get_packets(i) + get_packets(i)

2. 触发数据包合并

目标系统需满足以下条件才能触发漏洞:

  • 启用IPv6协议栈
  • 网络适配器驱动支持数据包合并(如kdnic.sys调试驱动)
  • 适当的网络配置(可通过bcdedit /set debug on开启调试模式提高成功率)

3. 等待超时处理

发送恶意数据包后需等待1分钟,让Ipv6pReassemblyTimeout函数触发:

for i in range(60): print(f"Memory corruption will be triggered in {60-i} seconds", end='\r') time.sleep(1)

超时处理中的16位整数溢出会导致堆缓冲区溢出,实现远程代码执行。

环境搭建与测试指南

必备环境

  • Python 3.x环境
  • Scapy网络库:pip3 install scapy

脚本配置

修改script/cve-2024-38063.py中的关键参数:

  • iface:网络接口名称(多网卡时需指定)
  • ip_addr:目标系统IPv6地址
  • num_tries/num_batches:数据包发送批次和数量(默认各20)

执行测试

git clone https://gitcode.com/gh_mirrors/cve2/CVE-2024-38063 cd CVE-2024-38063 python3 script/cve-2024-38063.py

防御与缓解措施

紧急修复

  • 安装官方补丁:微软已于2024年8月13日发布安全更新,建议立即安装
  • 禁用IPv6:在未打补丁的系统上,可暂时禁用IPv6协议栈作为临时缓解措施

长期防护

  • 启用防火墙过滤:限制IPv6流量,只允许必要的服务端口
  • 网络分段:将关键系统隔离在独立网段,减少暴露面
  • 驱动更新:保持网络适配器驱动为最新版本,启用高级安全特性

漏洞影响范围与技术细节

受影响系统

  • Windows 10/11
  • Windows Server 2019/2022
  • 所有启用IPv6且未安装2024年8月安全更新的Windows系统

技术关键点

  • 触发条件:无需身份认证,仅需目标系统可接收IPv6数据包
  • 利用难度:中等(需理解IPv6扩展头和Windows内核网络处理逻辑)
  • 危害等级:严重(远程代码执行,无权限要求)

深入技术分析可参考Marcus关于漏洞的详细文章,了解tcpip.sysIpv6pReassembleDatagramIpv6pReassemblyTimeout函数的具体实现缺陷。

总结与展望

CVE-2024-38063展示了网络协议栈实现中的细微缺陷如何导致严重安全问题。该漏洞的核心在于数据包合并处理时的状态管理不当,提醒开发者在处理复杂数据结构时必须保持严格的状态一致性。

对于安全研究者而言,此漏洞提供了研究Windows内核网络处理机制的绝佳案例。而普通用户和企业应始终保持系统更新,及时应用安全补丁,以防范此类远程代码执行漏洞带来的风险。

随着网络攻击技术的不断演进,对基础协议实现安全性的审计将变得越来越重要。希望本文能帮助读者深入理解这一典型漏洞,并在实际工作中提高安全防护意识。

【免费下载链接】CVE-2024-38063poc for CVE-2024-38063 (RCE in tcpip.sys)项目地址: https://gitcode.com/gh_mirrors/cve2/CVE-2024-38063

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表