动手实验Ubuntu本地提权

Posted i春秋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动手实验Ubuntu本地提权相关的知识,希望对你有一定的参考价值。


Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的开源GNU/Linux操作系统,Ubuntu 是基于DebianGNU/Linux,支持x86、amd64(即x64)和ppc架构,由全球化的专业开发团队(Canonical Ltd)打造的。

【动手实验】Ubuntu本地提权

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


经i春秋安全研究员测试,该漏洞在老版本中已经修复,但最新版的Ubuntu16.04.1-16.04.4均存在此问题,且官方尚未放出稳定版本的安全更新,建议用户在评估风险后,通过修改内核参数缓解漏洞影响。


今天,就由小爱带大家一起了解一下这个漏洞并修复它吧~

实验环境

操作机:Kali Linux

IP:172.16.11.2

目标IP:172.16.12.2

目标账号密码:ichunqiu


实验目的

了解Ubuntu本地提权漏洞的危害

验证本地提权漏洞

知晓Ubuntu本地提权漏洞的缓解修复


实验工具

upstream44.c: 实验中本地提权EXP的源文件,需编译后执行 


影响范围

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


实验步骤

第1步 漏洞验证

打开Kali终端,输入wget http://file.ichunqiu.com/r36f8pnp/upstream44.c下载实验文件到当前目录

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

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

【动手实验】Ubuntu本地提权

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

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

【动手实验】Ubuntu本地提权

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

【动手实验】Ubuntu本地提权

接下来开始编译该文件,编译命令:gcc -o upstream44 upstream44.c

【动手实验】Ubuntu本地提权

得到可执行文件upstream44

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

【动手实验】Ubuntu本地提权

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

【动手实验】Ubuntu本地提权


第2步 漏洞缓解

虽然官网暂时未发布补丁升级方案,但是可以通过修改内核参数来限制普通用户使用bpf(2)系统调用的方式以规避风险。

修改命令如下

echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled

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

【动手实验】Ubuntu本地提权

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


实验结果分析与总结

通过本次实验,我们复现了此漏洞的场景,并给出了缓解漏洞影响的方法,希望同学们能够了解漏洞,更要知道如何缓解漏洞,及时做好安全修复的准备!


戳阅读原文,参与实验吧~


以上是关于动手实验Ubuntu本地提权的主要内容,如果未能解决你的问题,请参考以下文章

动手动脑及课后实验随笔

第三次实验及动手动脑

动手动脑问题的实验

[AWS][容器][ECS] 容器动手实验201

动手实验图形验证码识别与利用

动手动脑实验3