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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cve-2026-29923 — Prueba de concepto para CVE-2026-29923, una escalada de privilegios local en el controlador de kernel pstrip64.sys. Demuestra una primitiva de lectura/escritura de memoria física mediante IOCTL para escalar desde un usuario sin privilegios a NT AUTHORITY\SYSTEM en Windows. | Kitploit
Herramientas/GitHubGitHub/mein-0/cve-2026-29923
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónAprendizaje y EducaciónExplotación de Binarios
GitHubmein-0/cve-2026-29923

cve-2026-29923

Prueba de concepto para CVE-2026-29923, una escalada de privilegios local en el controlador de kernel pstrip64.sys. Demuestra una primitiva de lectura/escritura de memoria física mediante IOCTL para escalar desde un usuario sin privilegios a NT AUTHORITY\SYSTEM en Windows.

Ver Repositorio
26hace 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 →
Compartir

CVE-2026-29923 — Escalada de Privilegios Local en pstrip64.sys

Una prueba de concepto minimalista para CVE-2026-29923, una vulnerabilidad en el controlador del kernel pstrip64.sys (EnTech Taiwan PowerStrip ≤ 3.90.736) que permite a un proceso no privilegiado en modo usuario escalar a NT AUTHORITY\SYSTEM.


El Error

pstrip64.sys expone un IOCTL (0x80002008) que acepta una dirección física suministrada por el usuario y la mapea directamente en el espacio de direcciones virtual del proceso llamante abriendo \Device\PhysicalMemory y llamando a ZwMapViewOfSection con el identificador del proceso actual. No hay verificación de privilegios, ninguna validación de direcciones más allá de lo que impone HalTranslateBusAddress, y ningún control de acceso en el enlace simbólico \\.\PSTRIP64.

El resultado es una primitiva de lectura/escritura de memoria física sin restricciones desde un proceso no privilegiado.


Explotación

Con lectura/escritura física arbitraria disponible, la explotación sigue cuatro pasos.

1. Escanear estructuras EPROCESS

La RAM física se recorre en fragmentos de 2 MB. Cada fragmento se escanea en busca de la etiqueta de pool del kernel Proc (0x636F7250), que marca la asignación de pool que contiene la estructura _EPROCESS de un proceso. Los candidatos encontrados se validan con tres heurísticas ligeras antes de confiar en el PID:

  • PriorityClass == 0x2 — todos los procesos activos se ejecutan con prioridad Normal
  • ProcessLock == 0x0 — el campo de bloqueo está limpio en un proceso estable
  • ImageFileName[0] es ASCII imprimible — la memoria basura rara vez cumple esto

2. Ubicar ambos punteros de token

Se necesitan dos objetivos:

  • La dirección física del campo Token de nuestro propio proceso dentro de _EPROCESS
  • El valor del token almacenado en el proceso System (PID 4) _EPROCESS

3. Sobrescribir nuestro token

La página de 4 KB que contiene nuestro campo Token se mapea y el campo se sobrescribe con el valor del token de System. A partir de este punto, el kernel de Windows trata nuestro proceso como NT AUTHORITY\SYSTEM.

4. Lanzar un shell

Se lanza cmd.exe mediante CreateProcessA. Debido a que los procesos hijo heredan el token del padre, el shell resultante se ejecuta como SYSTEM.


Advertencia sobre MMIO

La ventana de direcciones físicas de 3 GB a 4 GB está reservada para MMIO en sistemas x86. Intentar mapear páginas en este rango hace que el controlador devuelva el error 74 (fallo de HalTranslateBusAddress). El escaneo omite esta ventana y se reanuda en 0x100000000 para capturar las estructuras del kernel que Windows coloca por encima de la marca de 4 GB.


Requisito de 32 bits

El manejador de mapeo del controlador escribe la dirección virtual devuelta en un campo DWORD (LowPart), truncando la VA de 64 bits a 32 bits. Una compilación de 64 bits recibe un puntero corrupto y falla inmediatamente. Compile como x86.


Software Afectado

SoftwareVersiones
EnTech Taiwan PowerStrip≤ 3.90.736

Hash del controlador (SHA-256):

ab01485bb7c8bc1a9c86096eeea6d31d8fad557bf4d44072b46373d2203faa6e

Desplazamientos de EPROCESS

Los desplazamientos codificados apuntan a Windows 10 22H2 x64. Otras compilaciones requieren valores actualizados — use dt nt!_EPROCESS en WinDbg para confirmar.

CampoDesplazamiento
PriorityClass0x5B7
ProcessLock0x438
UniqueProcessId0x440
ImageFileName0x5A8
Token0x4B8

Compilación

Abra un Símbolo del sistema para desarrolladores de Visual Studio x86 y ejecute:

cl /EHsc /O2 exploit.c /Fe:poc.exe

O establezca el destino de la plataforma en x86 en Visual Studio y compile en modo Release. El binario no requiere dependencias externas más allá del Windows SDK.


Uso

Cargue primero pstrip64.sys (requiere administrador para cargar el controlador, no para ejecutar el exploit una vez cargado), luego:

poc.exe

Se abrirá una nueva ventana de cmd.exe ejecutándose como NT AUTHORITY\SYSTEM.


Mitigación

Bloquear la carga del controlador (recomendado)

  • Agregue el hash del controlador anterior a la lista de bloqueo de su organización
  • Habilite la Lista de bloqueo de controladores vulnerables de Microsoft mediante WDAC
  • Habilite la Integridad de código protegida por hipervisor (HVCI)

Detectar explotación en curso

  • Alertar sobre nuevas instalaciones de servicios en modo kernel para binarios de controladores desconocidos
  • Monitorear procesos de integridad baja/media que generen procesos hijo de nivel SYSTEM
  • Marcar cualquier proceso cuyo token cambie a NT AUTHORITY\SYSTEM fuera de un evento de autenticación legítimo

Aviso Legal

Este código se publica únicamente con fines educativos y de investigación defensiva. Úselo solo en sistemas de su propiedad o para los que tenga permiso explícito por escrito para realizar pruebas. El autor no se hace responsable por su mal uso.


Referencias

  • Lista de bloqueo de controladores vulnerables de Microsoft
  • Visión general de WDAC
  • Internals de EPROCESS de Windows
  • HalTranslateBusAddress — MSDN
  • ZwMapViewOfSection — MSDN
Descargar herramienta