
Driver em modo kernel do Windows que bloqueia a exploração da CVE-2017-11882 ao interceptar a criação de processos e negar processos filhos maliciosos gerados pelo eqnedt32.exe.
Um driver do Windows que neutraliza CVE-2017-11882 : )
Este projeto é dividido em um driver de kernel e um componente de notificação em modo de usuário que se comunicam por um dispositivo personalizado usando o modelo de chamada invertida.
DriverEntry registra um callback PsSetCreateProcessNotifyRoutineEx para que o driver seja invocado de forma síncrona em toda criação de processo no sistema, antes que o novo processo comece a executar.ZwOpenProcess e consulta ProcessImageFileName para obter o caminho NT completo. Uma comparação de sufixo final RtlCompareUnicodeString com eqnedt32.exe decide se esta é uma tentativa de exploração.CreateInfo->CreationStatus = STATUS_ACCESS_DENIED. Esta é a forma documentada de abortar a inicialização de um processo a partir do callback.O agente usa duas threads: um despachante de E/S executando o loop de chamada invertida com WaitForSingleObject + GetOverlappedResult, e um worker de interface que exibe alertas e os renderiza com MessageBoxW. Os handles são gerenciados por um pequeno wrapper RAII AutoHandle.
Toda a detecção depende do PID pai informado pelo kernel. Um atacante que chame NtCreateUserProcess com PROC_THREAD_ATTRIBUTE_PARENT_PROCESS pode alterar o processo pai do payload para explorer.exe e evitar a detecção : )
Esta solução não detecta explorações avançadas que realizam injeção de processos ou execução de código em memória. Ela apenas detecta a exploração comum para este CVE, que inicia um novo processo (malicioso).