
PoC pour WinNotify, démontré via un driver mapper, et une élévation de privilèges locale.
LocalStranger est un projet Proof of Concept conçu pour démontrer à quel point un pilote en mode noyau vulnérable peut être dangereux.
WinNotify.sys (que j'appelle msft.sys), est un pilote vulnérable très dangereux exposant des primitives noyau arbitraires en raison d'une absence totale de validation de l'appelant.
De manière inattendue, le pilote est signé dans le cadre du programme de partenariat Microsoft Windows Hardware Compatibility Publisher et, à ce jour, n'a pas été ajouté à la
Microsoft Vulnerable Driver Blocklist. Apparemment, tant qu'il n'est pas activement exploité dans la nature par un groupe de menaces, il n'est essentiellement considéré comme le problème de personne.
En exploitant ce pilote, j'ai pu créer un mapper de pilotes pour charger des pilotes noyau non signés dans l'espace noyau, ainsi qu'un programme pour élever l'utilisateur au niveau NT-AUTHORITY. En raison du caractère dangereux des primitives exposées, vous pouvez littéralement faire tout ce que vous imaginez. Le ciel est la limite.
LocalStranger se compose d'un composant central principal, lsapi, qui implémente des wrappers autour des communications en mode utilisateur avec le pilote. De la lecture/écriture de processus et des allocations mémoire au contournement de KASLR, en passant par la lecture/écriture
de mémoire physique et virtuelle.
Le mapper de pilotes, lsmapper, est écrit en C++ avec une syntaxe assez moderne, parce que j'en avais envie.
Tout le reste a été écrit en C avec un fort formatage Microsoft, parce que j'en avais aussi envie.
Le code a été partagé sans licence, donc ne me demandez pas ce que cela signifie, cherchez par vous-même.
