
PoC per WinNotify, dimostrato tramite un driver mapper, e privilege escalation locale.
LocalStranger è un progetto Proof of Concept pensato per dimostrare quanto sia effettivamente pericoloso un driver in modalità kernel vulnerabile.
WinNotify.sys (come lo chiamo io, msft.sys), è un driver vulnerabile molto pericoloso che espone primitive kernel arbitrarie a causa di una completa mancanza di validazione del chiamante.
Inaspettatamente, il driver è firmato nell'ambito del programma di partnership Microsoft Windows Hardware Compatibility Publisher e, a oggi, non è stato aggiunto alla
Microsoft Vulnerable Driver Blocklist. A quanto pare, finché non viene sfruttato attivamente in the wild da un gruppo di minaccia, praticamente non viene considerato un problema di nessuno.
Sfruttando il driver, sono riuscito a creare un driver mapper per mappare driver kernel non firmati nello spazio kernel, e un programma per elevare l'utente a NT-AUTHORITY. Data la pericolosità delle primitive esposte, puoi letteralmente fare qualsiasi cosa ti venga in mente. Il cielo è il limite.
LocalStranger è composto da un componente core principale, lsapi, che implementa wrapper attorno alle comunicazioni in modalità utente con il driver. Dalla lettura/scrittura dei processi e allocazioni di memoria al bypass di KASLR, lettura/scrittura di memoria
fisica e virtuale.
Il driver mapper, lsmapper, è scritto in C++ con una sintassi piuttosto moderna, perché ne avevo voglia.
Tutto il resto è stato scritto in C con una forte formattazione Microsoft, perché anche questo mi andava di farlo.
Il codice è stato condiviso senza licenza, quindi non chiedermi cosa significhi, cercatelo.
