CVE-2020-16898“坏邻居”漏洞分析与利用技术详解

CVE-2020-16898 – “坏邻居”漏洞利用分析

引言

在2020年10月13日的补丁星期二活动中,微软修复了一个非常有趣(且具有威胁性)的漏洞:CVE-2020-16898 - Windows TCP/IP远程代码执行漏洞。根据微软的描述:

“当Windows TCP/IP堆栈不当处理ICMPv6路由器通告数据包时存在远程代码执行漏洞。成功利用此漏洞的攻击者将能够在目标服务器或客户端上执行代码。要利用此漏洞,攻击者必须向远程Windows计算机发送特制的ICMPv6路由器通告数据包。此更新通过纠正Windows TCP/IP堆栈处理ICMPv6路由器通告数据包的方式来解决该漏洞。”

漏洞信息收集

最初的分析基于检测逻辑提供的技术细节:

  • 需要发送RDNSS(递归DNS服务器选项)数据包
  • 问题出现在Length字段为偶数时
  • 解析数据包的函数会将RDNSS负载的最后8字节作为下一个头部引用

RDNSS技术细节

RDNSS是路由器通告消息的子选项之一,通过ICMPv6发送。其格式如下:

0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Length    |           Reserved            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Lifetime                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
:            Addresses of IPv6 Recursive DNS Servers            :
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Length字段为8位无符号整数,以8字节为单位计算选项长度。包含一个IPv6地址时最小值为3,每增加一个地址长度值增加2。

关键技术挑战

问题1 - IPv6链路本地地址限制

漏洞只能在源地址为链路本地IPv6地址时被利用,这限制了潜在目标范围。

问题2 - 数据包大小验证

整个负载必须是有效的IPv6数据包,所有定义的"长度"必须与数据包大小匹配。

问题3 - NDIS API优化绕过

Windows NDIS API存在令人讨厌的优化(从利用角度)。要绕过它,需要使用分片技术,否则虽然能触发漏洞但不会导致内存破坏。

漏洞触发机制

通过设置偶数的Length字段,利用以下计算逻辑:

tmp = (Length - 1) / 2

当Length为偶数时,负载的最后8字节将被用作下一个头部的开始,从而允许 smuggled 一个额外的未经验证的头部。

利用技术细节

数据包构造

使用Scapy构造恶意RDNSS数据包,通过精心设计的数据包布局绕过各种大小验证。

分片技术应用

为了绕过NDIS的连续缓冲区优化,必须对数据包进行分片处理,确保数据被复制到栈缓冲区而非直接引用。

内核调试分析

通过内核调试器分析tcpip.sys驱动中的关键函数:

  • tcpip!Ipv6pHandleRouterAdvertisement
  • tcpip!Ipv6pUpdateRDNSS

详细跟踪了数据包处理流程和漏洞触发路径。

概念验证代码

提供了完整的Python PoC代码,演示了如何构造恶意ICMPv6数据包并利用分片技术实现漏洞利用。

技术总结

该漏洞利用涉及多个技术层面:

  • ICMPv6协议深度理解
  • Windows TCP/IP堆栈内部机制
  • 内核调试技巧
  • 数据包分片技术
  • 内存破坏利用

成功利用需要精确控制数据包结构和绕过多个安全验证机制。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

posted @ 2025-09-26 16:18  qife  阅读(16)  评论(0)    收藏  举报