作者:MJ0011

日期:2009.3.30

Windows 2000开始,win32k.sys体内的两个函数存在着内核任意地址写入漏洞,可以允许用户态程序直接读写内核内存,直到WIN2003才修补

同时存在另外几个函数,可以引发内核崩溃、内核内存泄露或内核地址写入

由于这一手段从未公开,攻击者可以利用它编写ShellCode,进入Ring0,或者恢复内核钩子,用来绕过HIPS、驱动防护类软件、内核加固软件等。

下面公布利用其中一对函数实现的内核任意地址写入DEMO,这个DEMO运行后,点击确定,会对内核地址0x804d8002(XP下通常是ntoskrnl的DOS头偏移+2)写入一个数值:0X12345678

DEMO由于做了一些硬编码,只在WINDOWS XP下生效

可以使用RootkitUnhooker的内核内存DUMP,或者Icesword的内存编辑,或者windbg本机或双机调试来查看修改的情况

具体代码为了安全起见,就不公开放出了,如果大家有兴趣,以后可以考虑放出


注意:DEMO执行过程中,你的HIPS软件可能会对其的某些前期操作报警,选择允许即可

DEMO下载地址:

http://mj0011.ys168.com

漏洞演示目录下CsrssVuln.rar