首页
社区
课程
招聘
[原创]NCSTISC Linux Kernel的另一种解法(浅析)
发表于: 2019-2-13 19:39 8119

[原创]NCSTISC Linux Kernel的另一种解法(浅析)

2019-2-13 19:39
8119

关于这个linux kernel pwn的细节不再赘述,网上已经有很多啦,感兴趣的小伙伴可以阅读,这里我提供一下我博客关于这道题的writeup地址:

https://whereisk0shl.top/NCSTISC%20Linux%20Kernel%20pwn450%20writeup.html

我会在帖子中简单讲解一下,同时会和real world中的漏洞做一些简单比对,这样相结合的分析,能对未来real world中漏洞挖掘有一些帮助。

之前看了很多小伙伴讨论了关于tty_struct的细节,我和ling在做这道题目的时候参考了0ctf的题目所以使用了tty_struct,后来和atum聊过之后发现用cred也是可以的,但并不是所有都适用,但因为这个题目的品相非常好,在real world中如果有这样的条件的,可以算是极品漏洞:1、申请内核空间的大小可控,2、object写入位置可控,在real world中如果有这样的条件,可以说无所不能,而且面对各种mitigation都是很有杀伤力的。

今天是熟悉的patch tuesday,下symbol很慢无聊就在我之前博客提供的exp代码基础上修改了一下,写了这道题用cred的解法,因为slab分配器可以用cred占用之前题目kfree之后留下的内存空洞,而我们可以打开两个设备A和设备B,通过close 设备A,让全局buffer调用kfree释放掉,这样相当于我们得到了一个dangling pointer,之后通过操作设备B达到一个UAF的效果,这里之所以我的博客中提到是一个伪条件竞争,因为这种情况是几乎不可能在real world中出现的,真正的real world中的条件竞争,是需要通过在某个时间窗内操作全局变量完成race,这道题目严格意义上来说只是一个UAF。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2019-2-14 09:09 被Keoyo编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 123
活跃值: (1675)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
2019-2-14 09:49
0
游客
登录 | 注册 方可回帖
返回
//