
PoC para o WinNotify, demonstrado através de um driver mapper, e escalonamento de privilégios local.
LocalStranger é um projeto Proof of Concept concebido para demonstrar o quão perigoso é, na realidade, um driver em modo kernel vulnerável.
WinNotify.sys (como lhe chamo, msft.sys), é um driver vulnerável muito perigoso que expõe primitivas de kernel arbitrárias devido à completa ausência de validação do chamador.
Inesperadamente, o driver está assinado ao abrigo do programa de parceria Microsoft Windows Hardware Compatibility Publisher e, até à data, não foi adicionado à
Microsoft Vulnerable Driver Blocklist. Aparentemente, desde que não seja ativamente explorado em ambiente real por um grupo de ameaças, basicamente não é tratado como problema de ninguém.
Aproveitando o driver, consegui criar um driver mapper para mapear drivers de kernel não assinados no espaço de kernel, e um programa para elevar o utilizador a NT-AUTHORITY. Devido ao quão perigosas são as primitivas expostas, pode literalmente fazer tudo o que lhe passar pela cabeça. O céu é o limite.
O LocalStranger é composto por um componente central principal, lsapi, que implementa wrappers em torno das comunicações em modo de utilizador com o driver. Desde R/W de processos e alocações de memória até ao bypass de KASLR, R/W de memória
física e virtual.
O driver mapper, lsmapper, está escrito em C++ com uma sintaxe bastante moderna, porque me apeteceu.
Todo o resto foi escrito em C com uma forte formatação Microsoft, porque também me apeteceu fazê-lo.
O código foi partilhado sem licença, por isso não me perguntem o que isso significa, procurem.
