
PoC для WinNotify, продемонстрированный через драйвер-маппер, и локальное повышение привилегий.
LocalStranger — это проект Proof of Concept, созданный для демонстрации того, насколько опасным на самом деле может быть уязвимый драйвер режима ядра.
WinNotify.sys (как я его называю, msft.sys) — это очень опасный уязвимый драйвер, предоставляющий произвольные примитивы уровня ядра из-за полного отсутствия проверки вызывающей стороны.
Неожиданно, драйвер подписан в рамках партнёрской программы Microsoft Windows Hardware Compatibility Publisher и на сегодняшний день не добавлен в
Microsoft Vulnerable Driver Blocklist. По-видимому, пока его активно не использует какая-либо группа угроз, это по сути никого не волнует.
Воспользовавшись драйвером, я смог создать маппер драйверов для отображения неподписанных драйверов ядра в пространство ядра, а также программу для повышения прав пользователя до NT-AUTHORITY. Из-за того, насколько опасны предоставляемые примитивы, вы буквально можете делать всё, что только можете вообразить. Предел — только небо.
LocalStranger состоит из одного основного компонента, lsapi, который реализует обёртки вокруг пользовательского взаимодействия с драйвером. От чтения/записи процессов и выделения памяти до обхода KASLR, чтения/записи физической
и виртуальной памяти.
Маппер драйверов, lsmapper, написан на C++ с довольно современным синтаксисом, потому что мне так захотелось.
Всё остальное написано на C со строгим форматированием Microsoft, потому что мне тоже так захотелось.
Код был опубликован без лицензии, так что не спрашивайте меня, что это значит, поищите сами.
