Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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
Herramientas/GitHubGitHub/enessakircolak/cve-2025-7771
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónEvasión de IDS/IPSPruebas de PenetraciónRed Teaming
GitHubenessakircolak/cve-2025-7771

CVE-2025-7771

ThrottleStop.sys Lectura/Escritura Arbitraria de Memoria Física

Ver Repositorio
237hace 1 mesAú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-2025-7771 — Lectura/Escritura arbitraria de memoria física en ThrottleStop.sys

Prueba de concepto completa para el controlador ThrottleStop.sys de TechPowerUp (CVE-2025-7771). Un controlador de kernel firmado y aún cargable expone lectura y escritura no validadas de memoria física a través de dos IOCTL. Este repositorio convierte esa primitiva en una escalada de privilegios local funcional de administrador a SYSTEM y documenta una peculiaridad en la nomenclatura de dispositivos que rompe la mayoría de detecciones basadas en rutas y nombres de archivo.

Ya existía una PoC para los mismos IOCTL (ver Créditos). Esta es una cadena de explotación completa e independiente, no una demostración de la primitiva.

Controlador afectado

CampoValor
SHA25616F83F056177C4EC24C7E99D01CA9D9D6713BD0497EEEDB777A3FFEFA99C97F0
SHA182ED942A52CDCF120A8919730E00BA37619661A3
MD56BC8E3505D9F51368DDF323ACB6ABC49
Versión3.0.0.0 ("Controlador de bajo nivel", 2004-2020)
FirmanteTechPowerUp LLC, DigiCert EV Code Signing
Huella del certificado524EDA9C819321C66E22C7BABEB23DAEAFFB2182
Validez del certificado2019-08-10 al 2022-06-15

El certificado caducó en 2022, pero la firma incluye una marca de tiempo de contrafirma de confianza, por lo que Windows todavía lo carga. La revocación solo ayuda si su fecha es anterior a la hora de firma, algo poco frecuente en controladores antiguos como este.

El recurso de versión no tiene CompanyName, OriginalFilename ni InternalName, por lo que no se puede atribuir el archivo a un proveedor a partir de sus propios metadatos.

El fallo

Dos IOCTL leen y escriben memoria física sin validación de límites ni de direcciones:

IOCTLOperación
0x80006498Lectura física
0x8000649CEscritura física

Ambos son METHOD_BUFFERED, por lo que no hay desreferencia de puntero de usuario; el defecto es la falta de validación de la dirección física suministrada por el llamante, no un puntero sin comprobar.

Cabe destacar: el manejador de escritura 0x8000649C está declarado como FILE_READ_ACCESS. Un handle abierto en modo solo lectura aún puede realizar escrituras físicas, por lo que la máscara de acceso declarada no se corresponde con lo que realmente hace el manejador.

Impacto

Abrir el dispositivo requiere derechos de administrador, por lo que esto no es por sí solo un cruce del límite de privilegios. Lo que proporciona a un atacante que ya es administrador es lectura/escritura arbitraria del kernel desde el modo usuario, lo que anula las protecciones que se supone deben mantenerse por encima del administrador: integridad de código de HVCI, PPL y autoprotección de EDR/AV. El clásico BYOVD ("trae tu propio controlador vulnerable").

Como demostración concreta, la PoC utiliza la primitiva de L/E para robar el token de SYSTEM y lanzar un shell de SYSTEM.

CVSS 4.0: AV:L/AC:H/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H (8.7, Alta).

Cómo funciona el exploit

Todo se ejecuta desde el modo usuario contra los IOCTL de L/E física del controlador. No hay recorrido de tablas de páginas ni CR3 de por medio; ambos procesos se localizan escaneando directamente la memoria física:

  1. Localizar SYSTEM. Escanear la memoria física en busca de un EPROCESS cuyo ImageFileName sea System y UniqueProcessId sea 4. El escaneo se limita a los rangos de RAM ocupados leídos de la clave de registro HARDWARE\RESOURCEMAP\...\Physical Memory del firmware, no a una ventana supuesta, por lo que nunca se tocan los huecos MMIO y no se omite nada por encima de la RAM instalada.
  2. Leer el token de SYSTEM. Leer el campo Token (EPROC_TOKEN) del EPROCESS localizado.
  3. Localizar nuestro proceso. Escanear la memoria física de la misma manera en busca del EPROCESS propio de la PoC, comparando el nombre de la imagen como un patrón de 8 bytes y confirmándolo con su PID.
  4. Intercambiar el token. Escribir el valor del token de SYSTEM en nuestra propia ranura Token. El token es un _EX_FAST_REF, por lo que los bits bajos del contador de referencias se enmascaran por defecto (--mask selecciona este comportamiento).
  5. Demostrarlo. Lanzar cmd.exe; whoami devuelve .

Los desplazamientos (EPROC_TOKEN, EPROC_PID, EPROC_IMG_NAME, etc.) corresponden a una compilación específica y deben confirmarse con dt nt!_EPROCESS en la versión de Windows objetivo.

El nombre del ejecutable importa. El paso 3 localiza nuestro propio proceso comparando su ImageFileName en la memoria física, y ese campo está limitado a 15 caracteres, coincidiendo el escaneo con los primeros 8. Mantén el nombre compilado corto y distintivo; si renombras el binario, mantente dentro de ese límite o el autoescaneo no encontrará el proceso.

El nombre del dispositivo está controlado por el atacante

El controlador no utiliza un nombre de dispositivo fijo. Deriva el nombre del objeto de dispositivo del nombre del servicio bajo el que está registrado; el nombre del archivo en disco es irrelevante. Registrar el binario bajo el servicio TRIXX produce \\.\TRIXX sin importar cómo se llame el archivo en disco.

Por lo tanto, cualquier detección basada en \Device\ThrottleStop o ThrottleStop.sys se evade de forma trivial. La detección debe basarse en el hash del archivo o en el certificado de firma:

root@kitploit:~
SHA256:     16F83F056177C4EC24C7E99D01CA9D9D6713BD0497EEEDB777A3FFEFA99C97F0
Thumbprint: 524EDA9C819321C66E22C7BABEB23DAEAFFB2182
Subject:    CN=TechPowerUp LLC, O=TechPowerUp LLC, L=Spokane, S=Washington, C=US

La lista DEVICE_NAMES en el código fuente es solo una sonda para instalaciones conocidas del producto. Pasa un nombre de dispositivo como argumento para apuntar a un servicio que hayas registrado tú mismo.

Controladores relacionados de TechPowerUp

CVEControlador
CVE-2019-7245GPU-Z.sys
CVE-2025-5324GPU-Z.sys
CVE-2025-7771ThrottleStop.sys (este repositorio)

El controlador no está incluido

El binario no se distribuye aquí. Verifica cualquier copia con el SHA256 anterior. La muestra está catalogada en LOLDrivers.

Compilación

root@kitploit:~
cl /nologo /EHsc /W4 /O2 src\ThrottleStop.cpp /Fe:myLittleLpe.exe /link advapi32.lib

Uso

Solo para uso en laboratorio. Ejecútalo dentro de una VM aislada con una instantánea a la que poder revertir.

root@kitploit:~
sc.exe create <name> type= kernel binPath= C:\path\to\ThrottleStop.sys
sc.exe start <name>

myLittleLpe.exe

sc.exe stop <name>
sc.exe delete <name>

El binario no acepta argumentos. Imprime el mapa de memoria física, escanea en busca del EPROCESS de SYSTEM y del local, intercambia el token y lanza cmd.exe ejecutándose como NT AUTHORITY\SYSTEM.

Demo

Ejecución de myLittleLpe.exe mostrando el mapa de memoria física, el escaneo de EPROCESS, el intercambio de token y un shell de SYSTEM

Otras PoC y trabajo previo

Otro trabajo público sobre el mismo controlador, para comparación:

  • Demoo1337/ThrottleStop — PoC anterior para los mismos IOCTL
  • xM0kht4r/CVE-2025-7771 — L/E física más VA-a-PA mediante Superfetch
  • AmrHuss/throttlestop-exploit-rw — L/E física con traducción de direcciones mediante Superfetch
  • v31l0x1/ThrottleStopPPL — evasión de la protección PPL
  • Yuri08loveElaina/CVE-2025-7771 — otra implementación

Créditos

  • LOLDrivers — catalogación de controladores vulnerables

Descargo de responsabilidad

Publicado para investigación defensiva e ingeniería de detección. La vulnerabilidad ya es pública como CVE-2025-7771. Todo lo que se muestra aquí fue probado en sistemas propiedad del autor. No ejecutes esto contra sistemas que no poseas o para los que no estés autorizado a realizar pruebas.

Descargar herramienta
NT AUTHORITY\SYSTEM