-
-
[原创]WINDOWS VISTA/WIN7 内核完整性校验解析PE 蓝屏BUG
-
发表于:
2009-6-8 23:08
8887
-
[原创]WINDOWS VISTA/WIN7 内核完整性校验解析PE 蓝屏BUG
在VISTA 和WINDOWS 7 (ALL SP,全补丁)的内核代码完整性校验组件中,存在一处解析PE的BUG,可引发系统蓝屏。不过从现在看来,此问题似乎需要LoadDriver权限才能触发,因此不能算安全性问题,属于稳定性问题。
在VISTA以后的操作系统,系统使用MmLoadSystemImage加载驱动之前,会调用MmCheckSystemImage函数来检查镜像正确性,在VISTA及以后的操作系统中,MmCheckSystemImage发生了一个有意思的变化.
原本MmCheckSystemImage(vista以前的系统上),会使用SEC_IMAGE作为AllocationAttributes来调用ZwCreateSection为驱动文件创建Section,但是VISTA以后的系统上,该参数被换成了一个未公开的值: 0x100000(注意,SEC_IMAGE是0x1000000,6个0)。
在ZwCreateSection 中,系统会检查如果调用线程的上个模式不是KernelMode,则不允许使用这个未公开的AllocationAttributes:
NtCreateSection:
............无关部分........
//取当前线程上个模式
if (KeGetPreviousMode() != KernelMode)
{
//如果是用户模式,如果Attributes有0x2000000或0x10000的话,则返回无效参数
v13 = 0;
if ( !(Attributes & 0x2100000) )
{
.....无关处理....
}
return STATUS_INVALID_PARAMETER_6;
}
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!