Ubuntu内核提权(CVE-2017-16995)漏洞的复现&脏牛漏洞
Ubuntu内核提权漏洞的复现
这里先介绍一下漏洞,Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统,基于Debian GNU/Linux 。近期有白帽子爆出 ubuntu 的最新版本(Ubuntu 16.04)存在本地提权漏洞,漏洞编号为CVE-2017-16995。
漏洞分享:Ubuntu本地提权(CVE-2017-16995)
参考链接:
https://blog.****.net/DarkHQ/article/details/79622652
http://blog.51cto.com/chenxinjie/2093654
该漏洞存在于调用eBPF bpf(2)的Linux内核系统中,当用户提供恶意BPF程序使eBPF验证器模块产生计算错误,导致任意内存读写问题,低权限用户可使用此漏洞获得管理权限。
该漏洞在老版本中已经修复,但最新版的Ubuntu16.04.1-16.04.4均存在此问题,且官方尚未放出稳定版本的安全更新,建议用户在评估风险后,通过修改内核参数缓解漏洞影响。
过程演示:
首先将工具上传到没有root权限用户的目录之下
然后用cat /etc/shadow查看是否能够查看用户信息
显示没有足够的权限可以查看/etc/shadow文件的内容。
接下来开始编译该文件,编译命令:gcc -o upstream upstream44.c ,得到可执行文件upstream
最后,执行刚刚编译后的文件,成功提升至root权限
验证部分,我们分别用whoami和id和查看/etc/passwd 和/etc/shadow来验证我们是否已经将普通的用户提权到了root用户权限
脏牛漏洞的复现
为什么这个漏洞叫脏牛(Dirty COW)漏洞?
Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,有可能进一步导致提权漏洞
这个漏洞可以使低权限用户利用该漏洞技术可以在全版本Linux系统上实现本地提权。在Linux内核>=2.6.22(2007年发行)开始就受影响了,直到2016年10月18日才修复。
参考链接
https:// blog.****.net/kimqcn4/a rticle/details/52909175
过程演示:
首先我们使用gcc来编译我们的dirtyc0w.c文件,gcc命令是一个编译器套件,可用于编译多种语言源码。
执行一下命令进行将http://www.pockr.org字符串保存到foo文件内。
将权限设置为 0404 (Linux八进制对权限控制的定义写法),代表所有用户默认情况下对该文件只有读取权限,无法修改删除。
执行以下命令测试漏洞:./dirtyc0w foo m00000000000000
执行dirtyc0w文件 foo 是文件名参数 m00000...为利用漏洞写入的值。下面执行该POC,根据返回信息已经执行成功。 (m00000...是测试字符串可随意测试修改)。最后通过cat命令查看foo文件,发现该文件已被输入的字符串m0000...覆盖。
那么分享完这两个漏洞之后,有兴趣的同学可以自行去尝试下载相对应的系统版本进行练手!在前面的分享上附有相关的漏洞版本。可能过程会有点麻烦,但是相信如果各位小伙伴自己亲自动手并且成功复现的话,不管是多大多小的漏洞,都会有很大的成就感。
——————————————————————————————————————
需要进行练手的同学,关注“破壳学院”公众号后台回复"下载链接"即可
学到姿势记得点赞哦(*^▽^*)