免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 独孤九贱
打印 上一主题 下一主题

新爆内核高危漏洞sock_sendpage的利用分析的讨论 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-08-26 10:07 |显示全部楼层

回复 #34 bobozhang 的帖子

http://www.milw0rm.com/exploits/9479

milw0rm上的一个exploit中有一段解释,来支持这个观点:
        /*
        ** By calling iret after pushing a register into kernel stack,
        ** We don't have to go back to ring3(user mode) privilege level. dont worry. :-}
        **
        ** kernel_code() function will return to its previous status which means before sendfile() system call,
        ** after operating upon a ring0(kernel mode) privilege level.
        ** This will enhance the viablity of the attack code even though each kernel can have different CS and DS address.
        */

论坛徽章:
0
12 [报告]
发表于 2009-08-26 15:18 |显示全部楼层
实际上之前我还发过一个exploit的例子,里面是return int的。这个kernel_code()最后返回会到调用send_page()的地方。

但是,现在还有一个问题,就是之前说的问题,kernel_code()中调用C库中的memcpy()的问题,这个问题该如何解释?

论坛徽章:
0
13 [报告]
发表于 2009-08-26 23:09 |显示全部楼层
Robert Love的LKD中:
与用户空间的应用程序不同,内核是不能链接使用标准C函数库(其他的那些库也不行)。造成这种情况的原因有很多,其中就包括先有鸡还是先有蛋的这个悖论。不过最主要的原因在于速度和大小。对于内核来讲,完整的C库太大了------即便是从中抽取出一个合适的子集------大小和效率都不能被接收。


像printf这样的库函数,应该是不能在Kernel中直接call的。但是其他一些函数,它们的实现不进行系统调用,有些理论上是可以的。但是,在动态编译的时候,想memset()这样的地址是如何搞定的呢?难道加载器在内核态运行,解析符号地址?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP