Ubuntu本地提权(CVE-2017-16995)

一、漏洞原理

漏洞存在于调用eBPF bpf(2)的Linux内核系统中,当用户提供恶意BPF程序使eBPF验证器模块产生计算错误,导致任意内存读写问题, 低权限用户可使用此漏洞获得管理权限。

漏洞代码位置 kernel/bpf/verifier.c

二、漏洞影响版本

Ubuntu 16.04.1~16.04.4

三、漏洞复现

ichunqiu实验环境演示

1、本地机器下载漏洞exp代码

注:外网exp代码下载地址 http://cyseclabs.com/exploits/upstream44.c

2、sftp登录目标机器并且上传exp代码

3、使用SSH登录目标机器,查看账号以及系统信息

4、查看bps执行以及shadow权限信息

5、编译exp代码

6、执行编译后的exp代码,此时获取root权限

7、root权限可以查看shadow文件

8、设置bps执行权限

9、退出root用户,此时再次执行exp代码会提示操作未授权

通过修改bps执行权限来达到防御此漏洞的目的

四、漏洞修复

修改bps执行文件权限

echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled

五、参考资料

1、ttps://www.ichunqiu.com/course/61491

2、https://zhuanlan.zhihu.com/p/34682773

3、https://github.com/torvalds/linux/commit/95a762e2c8c942780948091f8f2a4f32fce1ac6f

您可能还喜欢...