驱动漏洞利用的另一种思路
前言
之前在前面<cpu-z 驱动漏洞利用>中说了可以利用驱动漏洞绕过杀毒软件OBOperationRegistration保护获取进程的最高权限,下面这种又是一种新思路来绕过杀毒软件的保护
Kernel Callback Routines
当 Microsoft 在 2005 年推出内核补丁保护(PatchGuard)时,严重限制了杀毒软件和一些保护软件在驱动中使用内核hook(例如:sstdhook,IDTHook等等),虽然后续有InfinityHook与之对抗,不过后续微软都修补了这些问题,而且由于PatchGuard的存在,这种另辟蹊径的内核hook也不是100%稳定,如果造成蓝屏将会是非常致命的问题,但是微软给杀毒软件和一些保护软件提供了一种非常稳定的解决方案那就是Kernel Callback Routines,下面列出了一些WDK中记录的,还有一些没记录的
https://codemachine.com/articles/kernel_callback_functions.html
一般杀毒软件比较常用的是注册这些回调函数
PsSetLoadImageNotifyRoutine
PsSetCreateThreadNotifyRoutine
PsSetCreateProcessNotifyRoutine
CmRegisterCallbackEx
ObRegisterCallbacks
功能都可以查得到,我就不列出来了
直接说结论,如果我们能利用驱动漏洞将这些保护软件注册的回调函数从回调数组中删除,那这些保护软件的功能将如形同虚设,就不能阻止我们想做的任何事情了.
项目
https://github.com/lawiet47/STFUEDR
参考
https://br-sn.github.io/Removing-Kernel-Callbacks-Using-Signed-Drivers/