
PoC para WinNotify, demostrado mediante un driver mapper, y escalada de privilegios local.
LocalStranger es un proyecto de Prueba de Concepto diseñado para demostrar lo peligroso que es realmente un controlador en modo kernel vulnerable.
WinNotify.sys (como yo lo llamo, msft.sys), es un controlador vulnerable muy peligroso que expone primitivas de kernel arbitrarias debido a una falta total de validación del llamador.
Inesperadamente, el controlador está firmado bajo el programa de asociación Microsoft Windows Hardware Compatibility Publisher y a día de hoy, no ha sido añadido a la
Microsoft Vulnerable Driver Blocklist. Aparentemente, mientras no sea aprovechado activamente en el mundo real por un grupo de amenazas, básicamente no se trata como el problema de nadie.
Aprovechando el controlador, fui capaz de crear un mapeador de controladores para mapear controladores de kernel sin firmar en el espacio de kernel, y un programa para elevar al usuario a NT-AUTHORITY. Debido a lo peligrosas que son las primitivas expuestas, literalmente puedes hacer cualquier cosa que se te ocurra. El cielo es el límite.
LocalStranger consta de un componente central principal, lsapi, que implementa envoltorios alrededor de las comunicaciones en modo usuario con el controlador. Desde R/W de procesos y asignaciones de memoria hasta bypass de KASLR, R/W de memoria física
y virtual.
El mapeador de controladores, lsmapper, está escrito en C++ con una sintaxis bastante moderna, porque me apeteció.
Todo lo demás ha sido escrito en C con un fuerte formateo de Microsoft, porque también me apeteció hacerlo.
El código ha sido compartido sin licencia, así que no me preguntes qué significa eso, búscalo.
