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

时间:2022-06-22 06:27:53

面向新手,大佬勿喷

漏洞概述

2018-03-16有网友发布消息:ubuntu 最新版本(Ubuntu 16.04)存在高危的本地提权漏洞,漏洞编号为CVE-2017-16995。该漏洞存在于调用eBPF bpf(2)的Linux内核系统中,当用户提供恶意BPF程序使eBPF验证器模块产生计算错误,导致任意内存读写问题, 低权限用户可使用此漏洞获得管理权限。

该漏洞在老版本中已经得到修复,然而最新版本中任可被利用,官方暂未发布相关补丁,漏洞处于0day状态。据说这个exp十分犀利,秒aws秒阿里。

该exp地址:http://cyseclabs.com/exploits/upstream44.c

深入分析漏洞原理及EXP文章地址:https://xz.aliyun.com/t/2212

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

 

 

影响范围

Linux Kernel Version 4.14-4.4

 

仅影响Ubuntu/Debian发行版本

 

经i春秋安全研究员测试 Ubuntu 16.04.1~16.04.4 均存在此漏洞

 

实验步骤(此次我们用i春秋的在线实验(/捂脸))

 

第1步 漏洞验证

下载EXP

使用sftp,将EXP文件上传到目标机上(一般情况下提权文件由shell上传,此次不做为重点介绍)

 

命令为  sftp ichunqiu@172.16.12.2 ,密码:ichunqiu,上传命令: put upstream44.c 

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

 

ichunqiu是一个测试的普通权限用户

接着,我们使用ssh登录目标机器的ichunqiu用户

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

这时可以看见我们的用户权限,没有cat /etc/shadow的权限

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

接下来开始编译该文件,编译命令:

gcc -o upstream44 upstream44.c

 

 

 

得到可执行文件upstream44

最后,执行刚刚编译后的文件,成功提升至root权限

我们再来 cat /etc/shadow 一下,现在可以看见内容了

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

 

第2步 漏洞缓解

官方已经发布了补丁,但是可以通过修改内核参数来限制普通用户使用bpf(2)系统调用的方式以规避风险。

 

echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled

我们运行该命令后,再切换至普通用户执行EXP查看效果

可以看见报错:error: Operation not permitted,操作不被允许

 

 

参考链接:

https://www.cnblogs.com/rebeyond/p/8921307.html

https://www.ichunqiu.com/course/61491?f=1

https://www.freebuf.com/column/165887.html

https://www.freebuf.com/news/165608.html

https://blog.csdn.net/fly_hps/article/details/80085750v