首页
社区
课程
招聘
[原创]Something about CVE-2015-3636
发表于: 2015-7-7 11:19 33522

[原创]Something about CVE-2015-3636

2015-7-7 11:19
33522

分享一下pingpongroot漏洞成因,只到poc部分。后续的exp和利用原理,由于没有人发,我也不好发出来。等有人爆过之后,我再(看心情)把后续的内容补充上来吧。

这份文档是按照之前的分析笔记整理出来的。我以前也没有碰过内核网络模块的代码。所以整个分析思路还是可以借鉴一下的。

里面所有的源码来自
http://androidxref.com/kernel_3.4/
虽然和android内核源码有些差异,但是不影响分析过程。

最后,关于uaf的稳定利用,欢迎私下讨论。

再最后~~~北京上市安全公司招移动安全相关人员(各个方向都有),有意者可以直接发简历到QEver.cn@gmail.com,有顾虑的话,也可以先来和我聊聊天。

======================================================================================

2015.7.8 更新

早上起来看到给精华了,就先简单补充一下如何利用吧

其实最先看到这个漏洞的时候,我一直以为是跟内核写0x00200200这个地址有关,可能造成遍历链表的时候错误的解析到用户空间。
但是当仔细研究过后就发现,这种想法根本就是不可能的。

实际上0x00200200这个地址存在的意义,就是为了该漏洞可以被利用。
在分析文章的末尾有一段POC,这份POC直接运行会造成内核crash,但是如果在0x00200200这个地址映射一块内存的话,就不会有crash出现。这样才能进行后续的提权操作。
至于利用,就是uaf通用的办法,想办法覆盖释放的sk内存空间,然后调用接口,由于sk里面包含很多函数指针,可以指向自己的函数,达到提权的目的。

就这样吧。

上传的附件:
收藏
免费 3
支持
分享
最新回复 (31)
雪    币: 76
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
s6系列?
期待后续
2015-7-7 11:27
0
雪    币: 64
活跃值: (75)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
赞一个,期待后续
2015-7-7 11:58
0
雪    币: 112
活跃值: (293)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼主厉害呀,我连阅读内核代码都很吃力
2015-7-7 14:33
0
雪    币: 370
活跃值: (1175)
能力值: ( LV9,RANK:310 )
在线值:
发帖
回帖
粉丝
5
感谢分享!
2015-7-8 08:53
0
雪    币: 6976
活跃值: (1412)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
6
坐等漏洞利用POC
2015-7-8 09:22
0
雪    币: 8
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
刚开始写的不太对哦,不过补充完的的思路就差不多是对的了。小文8月份bh和woot会公开细节的,到时候大家去听听就知道了,哈哈
2015-7-8 10:48
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
8
看看补充内容吧。
2015-7-8 11:00
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
9
因为这个是分析笔记整理的啊。
按照分析流程来,刚开始什么都不知道,想到什么就记录什么,前面有错误是很正常的哈。
2015-7-8 11:13
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
约炮吗?
2015-7-8 11:17
0
雪    币: 38
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
KCG
11
sk->sk_prot->close(sk, timeout); 想办法覆盖sk, 然后close 掉 ,会去调用inet_release,还有注意在inet_release --> ip_mc_drop_socket 中的这个判断if (inet->mc_list == NULL)。我们构造的覆盖数据需要把mc_list这里填0.让它直接return.
2015-7-8 11:42
0
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
12
mark..hok za
2015-7-8 16:11
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
13
不太理解你在说什么哦
我曾经尝试过用close触发unhash。但是socket被close之后就没办法继续用于提权。所以认为是不可行的
2015-7-8 16:29
0
雪    币: 38
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
KCG
14
sk->sk_prot->close(sk, timeout); 都被你覆盖成了提权代码了,你close的时候自然就可以提权啊。
2015-7-8 18:02
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
15
哦。也可以。其实覆盖掉sk之后,随便调用哪个函数都可以。
关键是判断哪个sk已经被覆盖了。
2015-7-8 19:03
0
雪    币: 281
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
这个漏洞主要会影响哪些手机呢
2015-7-29 14:52
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
大神,这个软件能ROOT 三星S6的机型,但是NOTE4和S5的居然不行,这是为什么啊?
2015-8-6 19:27
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
有可以运行的软件吗?我在我机子上测试下?
谢谢。
2015-8-7 14:08
0
雪    币: 64
活跃值: (134)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
好牛的分析!膜拜!
2015-8-9 17:07
0
雪    币: 25
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
exp原理在Blackhat上已经公布了,你的利用方法跟他们一样吗?
不一样的话可以公开了吧。
2015-8-10 09:25
0
雪    币: 6
活跃值: (1120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
前面分析的不错,poc不完整
2015-10-21 15:49
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
23
有事直接给我发邮件吧~QEver.cn@gmail.com
2015-11-24 15:33
0
雪    币: 57
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
有没有大神解答下,我的uid=0了 ,执行system("mount -o rw,remount /system")时没错误信息,而system("chmod 777 /system/framework")会出现Read-only file system。并且执行system("/system/bin/sh")可以看到前面的用户是root,测试的是android手机
2015-11-27 18:13
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
25
请关闭SELinux再进行测试。
2015-11-27 22:30
0
游客
登录 | 注册 方可回帖
返回
//