Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
HVCIPwned — CVE-2024-35250 demuestra que HVCI no es una defensa contra exploits de kernel solo de datos. Mientras un error de controlador proporcione una primitiva de R/W arbitraria, el intercambio de tokens sigue siendo una técnica universal de elevación a SYSTEM — sin necesidad de ejecución de código. | Kitploit
Herramientas/GitHubGitHub/xvalegendary/hvcipwned
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónAprendizaje y EducaciónExplotación de Binarios
GitHubxvalegendary/hvcipwned

HVCIPwned

Ver Repositorio
88hace 5 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

CVE-2024-35250 demuestra que HVCI no es una defensa contra exploits de kernel solo de datos. Mientras un error de controlador proporcione una primitiva de R/W arbitraria, el intercambio de tokens sigue siendo una técnica universal de elevación a SYSTEM — sin necesidad de ejecución de código.

Compartir

CVE-2024-35250

Escalación de privilegios local mediante desreferencia de puntero no confiable en el controlador Windows Kernel Streaming (ks.sys). Exploit solo de datos: omite la integridad de código protegida por hipervisor (HVCI).

Resumen

CampoDetalle
CVECVE-2024-35250
Componenteks.sys (Kernel Streaming)
Clase de ErrorDesreferencia de puntero no confiable
ImpactoEoP a NT AUTHORITY\SYSTEM
HVCIOmitido: sin ejecución de código en el kernel
ParcheKB5039212 (junio de 2024)
ObjetivosWindows 10 20H1+ / Windows 11 21H2-23H2

Vulnerabilidad

ks!KspPropertyHandler envía solicitudes de propiedad a nivel de topología a través de KspProcessPropertyNode. El campo NodeId de la estructura KSP_NODE suministrada por el usuario se utiliza como índice en una matriz de tabla de automatización interna sin validación de límites:

NtDeviceIoControlFile
  ks!CKSFilter::DispatchDeviceIoControl
    ks!KspPropertyHandler
      ks!KspProcessPropertyNode
        *(automationTable + NodeId * stride)   <-- atacante controla

Un NodeId manipulado que excede el recuento real de nodos redirige la desreferencia a la memoria del pool adyacente, produciendo una primitiva de lectura/escritura fuera de límites.

Omisión de HVCI

El exploit manipula exclusivamente estructuras de datos del kernel:

  1. Filtrar dirección de EPROCESS mediante NtQuerySystemInformation
  2. Desencadenar la vulnerabilidad para construir R/W arbitraria del kernel
  3. Recorrer ActiveProcessLinks para localizar el PID 4 (System)
  4. Sobrescribir el token del proceso actual con el token de System
  5. Generar shell elevada

No se inyecta shellcode. No se crean ni ejecutan páginas de código sin firmar. No se secuestran punteros de flujo de control.

ProtecciónEstado
HVCI / KMCIOmitido
SMEPNo activado
SMAPNo activado
kCFGNo activado
CET / Shadow StackNo activado

Compilación

Requisitos

  • Visual Studio 2019 / 2022
  • Windows SDK 10.0.19041.0+

Compilar

  1. Abrir hvcipwned.sln en Visual Studio
  2. Seleccionar Release | x64
  3. Compilar → Compilar solución (Ctrl+Shift+B)

Binario de salida: x64\Release\hvcipwned.exe

Compilación manual con cl.exe

cl.exe /nologo /W4 /O2 /TC ^
    main.c device.c leak.c krw.c token.c exploit.c ^
    /I ^
    /Fe:exploit.exe ^
    /link setupapi.lib kernel32.lib advapi32.lib

Uso

hvcipwned.exe

Ejecutar desde una sesión de usuario sin privilegios en un sistema vulnerable (sin parchear). En caso de éxito, se abre una nueva ventana de cmd.exe ejecutándose como NT AUTHORITY\SYSTEM.

Salida esperada

[+] cve-2024-35250 exploit
[+] ks.sys untrusted pointer dereference -> eop
[~] hvci bypass via data-only attack
[+] os: 10.0.19045
[+] offsets: pid=0x440 links=0x448 token=0x4b8
[+] device: \\?\hdaudio#func_01&ven_10ec...
[+] device handle: 0x00000000000000f4
[~] calibrating r/w primitive...
[+] kernel base: 0xfffff80140000000
[~] spraying named pipes for pool layout...
[+] sprayed 5000 pipe pairs
[~] poking hole at index 2500...
[~] scanning for kernel pointer via oob read...
[+] found kernel ptr at node 3 offset 2: 0xffffa70500000000
[+] pipe object kernel addr: 0xffffa70500000000
[+] r/w primitive initialized (mode 1)
[+] current eprocess: 0xffffa705d90f4080
[+] kernel read pid: 1234 (expected: 1234)
[+] system eprocess: 0xffffa70500004080
[+] system token: 0xffffa70512345673
[+] token after swap: 0xffffa70512345670
[+] token swap successful
[+] escalation complete
[+] elevated shell spawned (pid: 5678)

press enter to exit...

Estructura del proyecto

hvcipwned/
├── hvcipwned.sln
├── hvcipwned.vcxproj
├── hvcipwned.vcxproj.filters
├── README.md
├── LICENSE
├── .gitignore
├── common.h         - tipos, macros de log, typedefs de api nt
├── offsets.h        - offsets de campos de eprocess por compilación
├── device.h         - enumeración de dispositivos ks
├── leak.h           - filtraciones de direcciones del kernel
├── krw.h            - contexto de primitiva r/w
├── token.h          - intercambio de token + generación de shell
└── exploit.h        - entrada de nivel superior
├── main.c           - punto de entrada
├── device.c         - apertura de dispositivo setupapi
├── leak.c           - filtraciones de NtQuerySystemInformation
├── krw.c            - desencadenamiento de vulnerabilidad + pool spray + r/w
├── token.c          - recorrido de eprocess + sobrescritura de token
└── exploit.c        - orquestación

Compilaciones compatibles

SOCompilaciónEstado
Windows 10 20H119041Compatible
Windows 10 20H219042Compatible
Windows 10 21H119043Compatible
Windows 10 21H219044Compatible
Windows 10 22H219045Compatible
Windows 11 21H222000Compatible
Windows 11 22H222621Compatible
Windows 11 23H222631Compatible

Los offsets se resuelven automáticamente en tiempo de ejecución mediante RtlGetVersion.

Notas

  • Requiere un dispositivo de filtro KS con nodos de topología (los dispositivos de audio funcionan)
  • El éxito del pool spray depende de la presión de memoria del sistema y la sincronización
  • El exploit utiliza atributos de named pipe para pool feng shui
  • Ejecutar como un usuario normal (no administrador) para demostrar la escalación de privilegios
  • Puede requerir múltiples intentos debido a la aleatorización del diseño del pool

Mitigación

AcciónDetalle
ParcheInstalar KB5039212 (junio de 2024) o posterior
DetecciónMonitorear IOCTL_KS_PROPERTY con la bandera KSPROPERTY_TYPE_TOPOLOGY
EDRAlertar sobre cambios en la integridad del token mediante callbacks del kernel EtwTi
EndurecimientoRestringir el acceso de usuario a las interfaces de dispositivo KS mediante DACL

Referencias

  • Aviso de Microsoft
  • Notas del parche KB5039212
  • DEVCORE — Pwn2Own Vancouver 2024
  • varwara/CVE-2024-35250

Aviso legal

Este proyecto se proporciona únicamente para investigación de seguridad autorizada y fines educativos. No lo utilice contra sistemas sin permiso explícito por escrito. El autor no asume ninguna responsabilidad por el mal uso o daños causados por este software.

Licencia

MIT

Descargar herramienta