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

 

 13  1/2  1  2  > 
作者:
标题: 微点主动防御(version20080924及以下)多个内核拒绝服务漏洞及内核BUG
mj0011_decoder
禁止发言





积分 0
发帖 33
注册 2008-10-1
#1  微点主动防御(version20080924及以下)多个内核拒绝服务漏洞及内核BUG

\国庆无聊在家,下了一个0924版的微点,从它的HOOK一个个看起,看了4个就发现两个有问题~~再看看,发现有问题的函数几乎是一半对一半~ 多达十几处。还只是简单看看地结果~太挫了
现在说一说其中两个~微点赶紧改吧:D

(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.ys168.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 mj0011_decoder on 2008-10-1 at 18:51 ]

※ ※ ※ 本文纯属【mj0011_decoder】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-10-1 02:37
查看资料  发送邮件  发短消息   编辑帖子
mj0011_decoder
禁止发言





积分 0
发帖 33
注册 2008-10-1
#2  

沙发自己做~大家国庆快乐呀~

※ ※ ※ 本文纯属【mj0011_decoder】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-10-1 02:44
查看资料  发送邮件  发短消息   编辑帖子
mj0011_decoder
禁止发言





积分 0
发帖 33
注册 2008-10-1
#3  

啊呀呀,老刘跟工程师们都去度假了呀~?

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

超级版主



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

感谢楼主反馈,我们会根据楼主提供的信息分析。

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

微点官方认证新浪微博:欢迎进入 微点新浪微博
微点技术支持邮箱: support@micropoint.com.cn
给Legend发短消息
2008-10-1 05:57
查看资料  发短消息   编辑帖子
点饭的百度空间
银牌会员




积分 2315
发帖 2236
注册 2007-11-30
#5  



  Quote:
Originally posted by mj0011_decoder at 2008-10-1 02:37:
\国庆无聊在家,下了一个0924版的微点

例如在Sandboxie的驱动中就有用到这个,如果这个函数失败,就可能出错,甚至导致系统崩溃。


综上来看,微点的驱动开发者对如何校验用户态参数还是有一些概念的,可惜的是,不仅理解不深,而且还会出现一些粗心大意的毛病~

另外这也暴露出,微点的测试流程不够专业,驱动测试不够重视


反木马专家 郑文彬  

我是乖娃娃
MJ0011 还原系统保护技术原理和攻防
http://hi.baidu.com/micropoint/b ... 515b3ab80e2de8.html

MJ0011 瑞星和微点的驱动一个摸样
http://hi.baidu.com/micropoint/b ... 515b3ab80e2de8.html

※ ※ ※ 本文纯属【点饭的百度空间】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

你的微笑 is 微点的骄傲!
http://hi.baidu.com/new/micropoint
2008-10-1 19:52
查看资料  发送邮件  访问主页  发短消息   编辑帖子
snhao
银牌会员




积分 1791
发帖 1782
注册 2007-6-12
#6  

终于见到高手了

※ ※ ※ 本文纯属【snhao】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-10-2 10:06
查看资料  发短消息   编辑帖子
408983504
银牌会员

此用户已被禁言


积分 1271
发帖 1238
注册 2007-1-6
来自 广东
#7  

这才是高手啊~~

※ ※ ※ 本文纯属【408983504】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

三用户版续费真TM的便宜啊!
2008-10-2 10:11
查看资料  发送邮件  发短消息  QQ   编辑帖子
天涯
新手上路





积分 40
发帖 40
注册 2006-9-10
#8  



  Quote:
Originally posted by mj0011_decoder at 2008-10-1 02:37:
\国庆无聊在家,下了一个0924版的微点,从它的HOOK一个个看起,看了4个就发现两个有问题~~再看看,发现有问题的函数几乎是一半对一半~ 多达十几处。还只是简单看看地结果~太挫了
现在说一说其中两个~微点 ...

楼主这么牛请看看这个防火墙规则包又如何http://bbs.hzva.org/forumdisplay.php?fid=151

※ ※ ※ 本文纯属【天涯】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-10-3 15:30
查看资料  发送邮件  发短消息   编辑帖子
苹果小柚子
注册用户




积分 154
发帖 152
注册 2007-3-15
#9  

mj   blog上也发过好像!

※ ※ ※ 本文纯属【苹果小柚子】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

个人主页:

[URL]http://hi.baidu.com/80age[/URL]
2008-10-3 19:42
查看资料  发送邮件  发短消息   编辑帖子
Legend
超级版主

超级版主



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

问题已解决,请楼主用最新的安装包进行测试,如有问题,欢迎再次发帖。(可以联系QQ:383154254 为好友,找他要下新包)

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

微点官方认证新浪微博:欢迎进入 微点新浪微博
微点技术支持邮箱: support@micropoint.com.cn
给Legend发短消息
2008-10-6 14:10
查看资料  发短消息   编辑帖子
 13  1/2  1  2  > 



论坛跳转:

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


[ 联系我们 - 东方微点 ]


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

闽ICP备05030815号