
Controlador de Windows en modo kernel que bloquea la explotación de CVE-2017-11882 al interceptar la creación de procesos y denegar procesos hijos maliciosos generados por eqnedt32.exe.
Un controlador de Windows que neutraliza CVE-2017-11882 : )
Este proyecto se divide en un controlador de kernel y un componente de notificación en modo usuario que se comunican a través de un dispositivo personalizado utilizando el modelo de llamada invertida.
DriverEntry registra una devolución de llamada PsSetCreateProcessNotifyRoutineEx para que el controlador sea invocado síncronamente en cada creación de proceso en todo el sistema, antes de que el nuevo proceso comience a ejecutarse.ZwOpenProcess y consulta ProcessImageFileName para obtener la ruta NT completa. Una comparación de sufijo con RtlCompareUnicodeString contra determina si se trata de un intento de explotación.eqnedt32.exeCreateInfo->CreationStatus = STATUS_ACCESS_DENIED. Esta es la forma documentada de abortar el lanzamiento de un proceso desde la devolución de llamada.El agente utiliza dos hilos: un despachador de E/S que ejecuta el bucle de llamada invertida con WaitForSingleObject + GetOverlappedResult, y un trabajador de UI que muestra alertas y las renderiza con MessageBoxW. Los manejadores son gestionados por un pequeño envoltorio RAII AutoHandle.
Toda la detección se basa en el PID padre reportado por el kernel. Un atacante que llame a NtCreateUserProcess con PROC_THREAD_ATTRIBUTE_PARENT_PROCESS puede reasignar la carga útil a explorer.exe y evitar la detección : )
Esta solución no detecta exploits avanzados que realizan inyección de procesos o ejecución de código en memoria. Solo detecta el exploit común para este CVE, que genera un nuevo proceso (malicioso).