
Investigación sobre CVE-2024-38063 para que no tengas que hacerla tú.
Investigación exhaustiva para ahorrarte tiempo, energía, cordura y comprensión. Quiero comenzar diciendo que este CVE específico es como muchos otros: debido a su alta puntuación de severidad, ha ganado una enorme cantidad de atención en poco tiempo. Lo que ha dado lugar a mucha información falsa y actividades maliciosas a su alrededor. El investigador original que lo descubrió fue Wei.
Esto incluye, entre otros, PoCs basados en malware que se han publicado en GitHub con la intención de parecer PoCs genuinos.
Por lo tanto, compartiré solo PoCs válidos y no engañosos en este repositorio para ayudar a la investigación y la comprensión.
Como sugiere el nombre, esta vulnerabilidad solo afecta a Windows, por lo que si usas otra cosa, esto no te aplica directamente.
También compartiré estrategias de mitigación para cualquiera que quiera proteger sus sistemas de esta vulnerabilidad.
Issue Description:
This is a zero-click, wormable vulnerability in the IPv6 TCP/IP stack of Microsoft Windows enables attackers to remotely execute arbitrary code on affected systems without any user interaction.
Asset Description:
The issue impacts Microsoft Windows versions that support IPv6. It is particularly risky for internet-facing Windows servers and user devices with IPv6 enabled.
Vulnerability Impact:
If successfully exploited, this vulnerability could allow attackers to remotely execute arbitrary code, which might result in a full system compromise, unauthorized data access, and/or exposure of sensitive information.
Exploitation Details:
The flaw is located in the IPv6 TCP/IP component of the Windows networking stack. Attackers can exploit this vulnerability by sending specially crafted IPv6 packets to a target machine, enabling RCE without user interaction.
Patch Availability:
Microsoft has issued a security update for this vulnerability as part of the August 2024 Patch Tuesday.
It is crucial for organizations to apply this update promptly to mitigate risks.
If immediate patching isn’t feasible, disabling IPv6 on affected Windows systems can help reduce the attack surface until the patch is applied.
Deshabilitar IPv6 solo a nivel de firewall no tendrá ningún efecto para prevenir esta vulnerabilidad.
Intentar reproducir esta vulnerabilidad puede ser un poco tedioso al principio, y es válido decir que esta vulnerabilidad es una vulnerabilidad zero-click en la pila TCP/IP de IPv6 de Microsoft Windows. Afecta a muchas versiones de Windows 10, 11 y Windows Server.
Esta vulnerabilidad RCE no te permite ejecutar shellcode, sino que provoca un integer underflow que resulta en una corrupción de memoria remota. Esto interrumpiría efectivamente los servicios en el dispositivo vulnerable. Las pruebas de concepto genuinas presentadas en línea, como la de Marcus Hutchins (@MalwareTech) y ynwarcs, sugieren que esto podría terminar siendo un exploit utilizado en la naturaleza como una especie de vulnerabilidad de denegación de servicio (DoS) en las próximas semanas/meses.
Sin embargo, el PoC mencionado anteriormente tiene un defecto: no es necesario bombardear con tantos paquetes como hace para obtener el resultado deseado. Algunos han propuesto usar tan solo dos paquetes para lograr el resultado esperado; sin embargo, esa implementación no siempre es fiable. En mis pruebas con una máquina Windows real, sin parchear, en una ventana de 60 segundos, se necesitan un mínimo de unos 25 paquetes para obtener siempre el resultado que esperamos. Aun así, significativamente menos que el diseño original, lo que podría considerarse una mejora. Dado que aún aumenta exponencialmente el espacio de memoria para coalescer, causando la corrupción de memoria en el kernel, los usuarios finales ven una pantalla azul.
Si no puedes actualizar tus sistemas con los últimos parches por cualquier motivo, entonces tu mejor opción sería deshabilitar IPv6 en todas las interfaces de red para limitar significativamente la superficie de ataque de este exploit; sin embargo, no uses esto como una solución a largo plazo, ya que podría romper potencialmente la funcionalidad de tu sistema.
Tendrás que ejecutar este script de PowerShell como administrador y guardarlo como script.ps1:
# Check if the script is running with admin privileges
If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
# Restart script with admin privileges
$arguments = "& '" + $myInvocation.MyCommand.Definition + "'"
Start-Process powershell.exe -ArgumentList $arguments -Verb RunAs
Exit
}
# Disable IPv6 on all network interfaces
Get-NetAdapterBinding -ComponentID ms_tcpip6 | Where-Object {$_.Enabled -eq $true} | ForEach-Object {
Disable-NetAdapterBinding -Name $_.Name -ComponentID ms_tcpip6
}
# Optional: Confirm that IPv6 has been disabled
Write-Host "IPv6 has been disabled on all network interfaces."
Actualizaré este repositorio de GitHub durante las próximas semanas con más investigaciones, actualizaciones y otras opciones de mitigación válidas.