
Pilote Windows en mode noyau qui bloque l'exploitation de CVE-2017-11882 en interceptant la création de processus et en refusant les processus enfants malveillants générés par eqnedt32.exe.
Un pilote Windows qui neutralise CVE-2017-11882 : )
Ce projet est divisé en un pilote noyau et un composant de notification en mode utilisateur qui communiquent via un périphérique personnalisé en utilisant le modèle d'appel inversé.
DriverEntry enregistre un rappel PsSetCreateProcessNotifyRoutineEx afin que le pilote soit invoqué de manière synchrone à chaque création de processus à l'échelle du système, avant que le nouveau processus ne commence à s'exécuter.ZwOpenProcess et interroge ProcessImageFileName pour obtenir le chemin NT complet. Une comparaison de suffixe RtlCompareUnicodeString avec eqnedt32.exe détermine s'il s'agit d'une tentative d'exploitation.CreateInfo->CreationStatus = STATUS_ACCESS_DENIED. C'est la méthode documentée pour interrompre le lancement d'un processus depuis le rappel.L'agent utilise deux threads : un répartiteur d'E/S qui exécute la boucle d'appel inversé avec WaitForSingleObject + GetOverlappedResult, et un thread UI qui génère des alertes et les affiche avec MessageBoxW. Les handles sont gérés par un petit wrapper RAII AutoHandle.
Toute la détection repose sur le PID parent rapporté par le noyau. Un attaquant appelant NtCreateUserProcess avec PROC_THREAD_ATTRIBUTE_PARENT_PROCESS peut redéfinir explorer.exe comme processus parent de la charge utile et ainsi éviter la détection : )
Cette solution ne détecte pas les exploits avancés qui effectuent une injection de processus ou une exécution de code en mémoire. Elle détecte uniquement l'exploit courant de cette CVE, qui crée un nouveau processus (malveillant).