漏洞环境
攻击机:windows 10
(python版本:3.7 ,安装了scapy依赖)
受害机环境:windows10 1909
受害机网络开启ipv6支持
打开cmd输入ipconfig查看受害机ipv6地址为
fd15:4ba5:5a2b:1008:8c9a:8a2b:4489:74aa
攻击机的ipv6地址为
fe80::9835:b7ba:c813:5f6a%10
要求攻击机与受害机网络畅通
漏洞分析
根据rfc5006描述,RDNSS包的length应为奇数,而当攻击者构造的RDNSS包的Length为偶数时,Windows TCP/IP 在检查包过程中会根据Length 来获取每个包的偏移,遍历解析,导致对Address of IPv6 Recursive DNS Servers 和下一个 RDNSS 选项的边界解析错误,从而绕过验证,将攻击者伪造的 option包进行解析,造成栈溢出,从而导致系统崩溃。
漏洞利用
payload:
from scapy.all import *
from scapy