首页
社区
课程
招聘
3
简单吐槽一下dirtyCow
发表于: 2016-10-26 11:28 14251

简单吐槽一下dirtyCow

2016-10-26 11:28
14251

本来是来论坛看看有没有分享相关内容的,结果只看到了一个测试poc的帖子~~

来简单说说本人的分析。
这个漏洞涉及到的内核代码很复杂,如果没有相关基础的童鞋,建议还是放弃分析吧。

我是按照 https://github.com/dirtycow/dirtycow.github.io/wiki/VulnerabilityDetails 上的介绍,把相关流程看了一遍。简单介绍一下漏洞的触发流程。

1. 要写入的文件f必须可读,这样才能以read only模式打开文件f,并映射到内存空间
2. 把read only模式打开的文件映射到内存空间之后,以read write方式打开/proc/self/mem,这个文件就是本进程的内存,所以打开的mem是可写的。
3. 写mem,由于文件f是只读的,所以会触发Copy-On-Write,复制一份内存,复制完了之后,系统会认为新复制的内存页完全属于该进程,所以可以写。这时候会触发罪魁祸首的一段一代

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1883                /*
1884                 * The VM_FAULT_WRITE bit tells us that
1885                 * do_wp_page has broken COW when necessary,
1886                 * even if maybe_mkwrite decided not to set
1887                 * pte_write. We can thus safely do subsequent
1888                 * page lookups as if they were reads. But only
1889                 * do so when looping for pte_write is futile:
1890                 * in some cases userspace may also be wanting
1891                 * to write to the gotten user page, which a
1892                 * read fault here might prevent (a readonly
1893                 * page might get reCOWed by userspace write).
1894                 */
1895                if ((ret & VM_FAULT_WRITE) &&
1896                    !(vma->vm_flags & VM_WRITE))
1897                    foll_flags &= ~FOLL_WRITE;
1898
1899                cond_resched();

[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费 3
支持
分享
赞赏记录
参与人
雪币
留言
时间
飘零丶
为你点赞~
2024-5-31 07:57
shinratensei
为你点赞~
2024-5-31 07:48
PLEBFE
为你点赞~
2023-2-19 05:58
最新回复 (4)
雪    币: 53
活跃值: (106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
分析得很好,在android上root的最大的难点就在于怎么绕过selinux。
2016-10-26 12:46
0
雪    币: 6936
活跃值: (1612)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
3
是呢.. selinux 在android上很头疼!!
2016-10-26 13:37
0
雪    币: 6
活跃值: (1314)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不错,不过似乎还没有分析到关键
2016-10-28 18:10
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼主分析得没错,关键就是FOLL_WRITE被清了
2016-10-28 19:26
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册