微点交流论坛
» 游客:  注册 | 登录 | 帮助

 

作者:
标题: Legend大速进 mp110003.sys导致蓝屏原因
moyady2015
新手上路





积分 12
发帖 12
注册 2016-3-12
#1  Legend大速进 mp110003.sys导致蓝屏原因

微点HOOK的函数十几处有问题,以下部分示例

(1),驱动对ZwOpenEvent的HOOK存在拒绝服务安全漏洞,任何权限用户可以使安装了微点的系统蓝屏

问题在于微点的Hook驱动mp110013.sys对用户态调用ZwOpenEvent传入参数检查不充分导致的

mp110013.sys(版本1.2.10126.0, CheckSum = 0x0000FDB7 , TimeStamp = 0x4859C30E)

偏移0XBAE处实际是其对ZwOpenEvent的HOOK实际处理部分(首先经过一个HOOK引擎mp110003.sys转发)。

ZwOpenEvent的原型是:

NTSTATUS
ZwOpenEvent(
OUT PHANDLE EventHandle,
IN Access_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);

微点只对ObjectAttributes做了ProbeForRead检查,没有对该结构内部成员 的缓存地址做有效检查,就直接使用系统函数RtlUnicodeStringToAnsiString将该结构的 ObjectAttributes->ObjectName转换为ANSI字符,因此只要RING3的程序对该域填充错误地址,就可以引发系统访问 无效内存蓝屏

由于该函数的Hook函数中使用了结构化异常处理,因此传0之类的地址是无法引发蓝屏的,但只要传入任何一个无效的内核地址(例如0x80000000),就可以使微点蓝屏

下面是引发蓝屏的测试代码:

HMODULE hlib = LoadLibrary("ntdll.dll");
PVOID p = GetProcAddress(hlib , "ZwOpenEvent");

OBJECT_ATTRIBUTES oba ;
oba.ObjectName = (PUNICODE_STRING)0x80000000 ;

__asm{
lea eax ,oba
push eax
push 0
push 0
call p
}

运行了这段代码后,系统即蓝屏重启,适用于任何安装了微点的系统任何用户权限。

我编写了一个测试程序"BSOD_MP.exe",在装有20080924及以下版本的微点的系统,运行程序后点"done",系统即会蓝屏。

测试程序下载:http://mj0011.***.com 漏洞演示目录下BSOD_mp.rar

(2).驱动对ZwOpenThread的HOOK处理存在漏洞,可能导致系统其他组件工作不正常

在同样版本的mp110013.sys中,对于ZwOpenThread的处理存在BUG,可能导致任意调用该函数的其他驱动程序或系统组件失败!

在对ZwOpenThread的HOOK中,微点的驱动没有判断系统上个模式,而是直接使用 ProbeForRead函数去校验ZwOpenThread的参数: ObjectAttributes,这样做的结果会导致在驱动中使用该函数的驱动,只要使用了这个参数,调用这个函数就会返回失败。 STATUS_Access_DEIND

正确的做法应该是先判断当前线程的前个模式,如果是UserMode,再做有效性校验。

这个函数在驱动中用得不多,但也不是没有,属于微软有文档的函数,例如在Sandboxie的驱动中就有用到这个,如果这个函数失败,沙箱内的进程在执行某些操作的时候,就可能出错,甚至导致系统崩溃。

====================================================

综上来看,微点的驱动开发者对如何校验用户态参数出现一些粗心大意的毛病~象SSDT HOOK这样直面用户态程序的驱动代码,还是要慎之慎之~~

另外这也暴露出,微点的测试不够重视,如果发布前使用BSODHook等Driver Test工具跑一跑,就不会出现如(1)中那样的错误了~

[ Last edited by Legend on 2017-4-13 at 12:37 ]

※ ※ ※ 本文纯属【moyady2015】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2017-4-13 11:11
查看资料  发送邮件  发短消息   编辑帖子
Legend
超级版主

超级版主



积分 77171
发帖 70170
注册 2005-10-29
#2  

您这版本太低了,目前版本已经是2.0版本。

※文章所有权归【Legend】与【东方微点论坛】共同所有,转载请注明出处!※

微点官方认证新浪微博:欢迎进入 微点新浪微博
微点技术支持邮箱: support@micropoint.com.cn
给Legend发短消息
2017-4-13 12:35
查看资料  发短消息   编辑帖子



论坛跳转:

可打印版本 | 推荐 | 订阅 | 收藏


[ 联系我们 - 东方微点 ]


北京东方微点信息技术有限责任公司 福建东方微点信息安全有限责任公司

闽ICP备05030815号