CVE-2017-16995 漏洞利用
Ubuntu本地提权(CVE-2017-16995)漏洞复现
在 ichunqiu 看到的环境(https://www.ichunqiu.com/course/61487),觉得有意思就记录一下。
实验环境
操作机:
Kali LinuxIP:
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 ichunqiu@172.16.12.2,密码: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
实验结果分析与总结
通过本次实验,我们复现了此漏洞的场景,并给出了缓解漏洞影响的方法,希望同学们能够了解漏洞,更要知道如何缓解漏洞,及时做好安全修复的准备!
任重而道远!
CVE-2017-16995 漏洞利用的更多相关文章
- Windows漏洞利用 ms17-010
漏洞名称 SMB 远程命令执行漏洞(ms17-010) 漏洞描述 继2016年 8 月份黑客组织 Shadow Brokers 放出第一批 NSA “方程式小组”内部黑客工具后,2017 年 4 月 ...
- CVE-2014-6271 Bash漏洞利用工具
CVE-2014-6271 Bash漏洞利用工具 Exploit 1 (CVE-2014-6271) env x='() { :;}; echo vulnerable' bash -c "e ...
- 【更新WordPress 4.6漏洞利用PoC】PHPMailer曝远程代码执行高危漏洞(CVE-2016-10033)
[2017.5.4更新] 昨天曝出了两个比较热门的漏洞,一个是CVE-2016-10033,另一个则为CVE-2017-8295.从描述来看,前者是WordPress Core 4.6一个未经授权的R ...
- Struts2漏洞利用工具下载(更新2017-V1.8版增加S2-045/S2-046)
Struts2漏洞利用工具下载(已更新V1.8版) 2017-03-21:增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过部 ...
- CVE-2017-12149漏洞利用
CVE-2017-12149 JBOOS AS 6.X 反序列化漏洞利用 这次分析一下 CVE-2017-12149 ,漏洞已经爆出有几天了,今天就把这个漏洞看一下. ...
- Apache Tomcat远程命令执行漏洞(CVE-2017-12615) 漏洞利用到入侵检测
本文作者:i春秋作家——Anythin9 1.漏洞简介 当 Tomcat运行在Windows操作系统时,且启用了HTTP PUT请求方法(例如,将 readonly 初始化参数由默认值设置为 fals ...
- AMR无限增发代币至任意以太坊地址的漏洞利用及修复过程
AMR无限增发代币至任意以太坊地址的漏洞利用及修复过程 0x00 项目简述 Ammbr主要目标是打造具有高度弹性且易于连接的分布式宽带接入平台,同时降低上网相关成本.Ammbr打算创建具有人工智能和智 ...
- 工控漏洞利用框架 - ISF(Industrial Security Framework)
一. 框架介绍 本框架主要使用Python语言开发,通过集成ShadowBroker释放的NSA工具Fuzzbunch攻击框架,开发一款适合工控漏洞利用的框架.由于Fuzzbunch攻击框架仅适用于P ...
- Defense:SMB协议漏洞利用与控制CVE-2017-7494("永恒之蓝")攻防实验
漏洞描述 1. 服务器打开了文件/打印机共享端口445,让其能够在公网上访问 2. 共享文件拥有写入权限 3. 恶意攻击者需猜解Samba服务端共享目录的物理路径 Samba是在Linux和UNIX系 ...
- Struts-S2-045漏洞利用
最近也是在看Struts2的漏洞,这里与大家共同探讨一下,本次我复现的是s2-045这个编号的漏洞 漏洞介绍 Apache Struts 2被曝存在远程命令执行漏洞,漏洞编号S2-045,CVE编号C ...
随机推荐
- 【OS】Heap & Stack
操作系统概念的堆.栈不同于数据结构的堆.栈. C 语言中,一切指针占 4 字节,这意味着指针指向 RAM 中的地址可以有 232 个,最小的地址是 0,最大的地址是 231 - 1. (一)堆: 堆空 ...
- VMware 虚拟机centos下链接网络配置
1.点击Network Adapter 设置如下图所示,首先我们在虚拟机中将网络配置设置成NAT, 2.计算机右键->管理->服务和应用程序->服务,启动如下两个服务 3.在etc/ ...
- Java实现类似eval()函数或exec()函数的功能
一篇参考博客:http://www.cnblogs.com/fangwenyu/archive/2011/10/12/2209051.html 在Python中有一个exec()函数,同样在JavaS ...
- makefile中 = := += 的区别
= 是最基本的赋值 := 是覆盖之前的值 ?= 是如果没有被赋值过就赋予等号后面的值 += 是添加等号后面的值 1.“=” make会将整个makefile展开后,再决定变量的值.也就是说,变量的值将 ...
- mysql 安装到最后一步时,start service 为失败状态
容易出现的问题:mysql 安装到最后一步时,start service 为失败状态. 解决方法: 方式1 MySQL安装是出现could not start the service mysql ...
- python 图像转矩阵,矩阵转图像
1.图像转换为矩阵 matrix = numpy.asarray(image) Help on function asarray in module numpy.core.numeric: asarr ...
- PyCharm基本用法
1.修改字体 在file->settings下进行修改如下图: 2 修改颜色背景 在file->settings下修改,如图: 3连接git 点击file->settings,选择版 ...
- nodejs -- event 模块, 事件模块.
1. 注册事件 on 或者 addListener,触发事件 emit 1-1简单的使用: var EventEmitter = require('events').EventEmitter; var ...
- linux vi命令详解
刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...
- Java多线程入门中几个常用的方法
一.currentThread()方法 currentThread方法就是返回当前被调用的线程. 该方法为一个本地方法,原码如下: /** * Returns a reference to the c ...
