CVE-2017-16995-Ubuntu本地提权漏洞复现

环境搭建
系统选择的是Ubuntu16.04-desktop-amd64.iso安装的环境,安装过程不用安装更新软件包。

漏洞分析&利用
在该环境下直接利用编译好之后的程序并不成功(4.4.0-21-generic),如下:
在这里插入图片描述

然后在Ubuntu14.04、16.04.4都试着还是不成功!都是报错,如下是14环境报错信息:
在这里插入图片描述
缺失头文件,然后在16.04.4下尝试:
在这里插入图片描述

很显然该版本4.13高于4.4.0,所以并没有漏洞,也许是我下载的16.04.4的镜像比较新导致的:
在这里插入图片描述
在16.04.1和16.04.1中没有尝试。因此个人认为网上的文章说明的范围稍微偏大

在这里插入图片描述

我们还是用16.04测试。查找该漏洞的详情,漏洞编号是:CVE-2017-16995

在seebug有详细的说明:https://www.seebug.org/vuldb/ssvid-97183
在这里插入图片描述

这里查看漏洞详情,可以看到作者分析了具体的详情,由于Linux内核带有的eBPF bpf(2)系统调用中,当用户提供恶意BPF程序使eBPF验证器模块产生计算错误,导致任意内存读写问题。 非特权用户可以使用此漏洞获得权限提升,代码我们就不分析了,作者在不断尝试得到引起内存地址变换几个变量R0/R1/R10是需要在gcc编译的过程中调试,所以最后的代码是正确的:crasher_badtrunc.c

在这里插入图片描述

我们将这个crash代码在ubuntu下编译执行,引起变化之后在执行exp:

gcc -ocrasher_badtrunc crasher_badtrunc.c -Wall && ./crasher_badtrunc

在这里插入图片描述

可以看到提权成功,获得root的权限,从利用过程来看,利用条件还算是较小,所以应该属于一个高危的漏洞了!

漏洞修复
目前暂未有明确的补丁升级方案。 建议用户在评估风险后,通过修改内核参数限制普通用户使用bpf(2)系统调用:

echo 1 >/proc/sys/kernel/unprivileged_bpf_disabled

获取更多漏洞复现知识请关注WX公众号【安全漏洞环境学习】

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值