freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

CVE-2017-16995的本地提权(Ubuntu16.04.1-4)超详细
2022-10-25 14:56:43
所属地 上海

一、漏洞描述

1.漏洞编号:CVE-2017-16995

2.漏洞运行的环境:

①Linux Kernel Version 4.14-4.4
//内核版本为4.14到4.4之间的都可以
②仅影响Ubuntu/Debian发行版本
//因为ubuntu是专用的服务器系统,所以该文章以ubuntu为例
③经i春秋安全研究员测试 Ubuntu 16.04.1~16.04.4 均存在此漏洞
//注意是:16.04.1------16.04.4,若为其它的版本,那么会显示deny
小结:
unbuntu下,查看linux_ubuntu的版本命令: cat /pro/version
二、环境准备:

1.一个VMwareworkstation应用程序;
2.一台16.04.4的虚拟机;
①第一种方法:
a.私人ubuntu16.04.4_server的虚拟机网盘地址:https://pan.baidu.com/s/1kR0ZlxPKcxO4TgDaeEJ9IA
//提取码:bxfq
//直接把vm-04复制到真机上,用VMwareworkstation打开即可,快照2为CVE-2017-16995漏洞的利用环境
②第二种方法:
a.私人unbuntu16.04.4虚拟机镜像iso的网盘地址:https://pan.baidu.com/s/1kR0ZlxPKcxO4TgDaeEJ9IA
//提取码:bxfq
b.安装镜像的教程:http://old-releases.ubuntu.com/releases/16.04.0/ubuntu-16.04.4-server-i386.iso

③第三种方法:
a.网络上的unbuntu16.04.4的ISO镜像文件地址:http://old-releases.ubuntu.com/releases/16.04.0/ubuntu-16.04.4-server-i386.iso
b.安装镜像的教程:http://old-releases.ubuntu.com/releases/16.04.0/ubuntu-16.04.4-server-i386.iso

3.一个漏洞攻击代码,即exp;

①exp的下载地址:http://cyseclabs.com/exploits/upstream44.c
//exp的全写是,Exploit ,它的英文意思就是利用,它在黑客眼里就是漏洞利用。有漏洞不一定就有Exploit(利用),有Exploit就肯定有漏洞。

三、实验过程:

1.打开ubuntu16.04.4的虚拟机,用普通用户登录;
①用vmware打开从网盘拷贝到此电脑的虚拟机文件

1666680411_6357865bd1b36fa1c8279.png!small

1666680440_63578678930b6397c3400.png!small1666680453_63578685924b16935a534.png!small

③如图所示,已经上传了upstream44.c文件

1666680473_63578699c6ea479708e7a.png!small

//注意普通用户的命令标识符为 $; 而root用户的命令标识符为 #
//有些博客上,会输入 cat /etc/shadow 这条命令,因为非root用户无法查看该文件,所以改名了可以验证是否为root权限
//还可以,输入whoami,若结果为root,则本地提权成功;若显示为 /home/用户名 ,则未提权成功
2.用gcc,即C程序编译器,编译upstream44.c文件,使之成为任何操作系统都能运行的可执行文件;

①输入 gcc upstream.c -o upstream44//把upstream44.c编译成可执行文件upstream44
②结果:输入后,无反应,并且ls,列出绿色的可执行文件,则成功!

1666680557_635786ed73d1b4ac8151a.png!small

3.输入:./upstream44 即可提权成功;
①执行upstream44可执行文件,输入: ./upstream
②结果如下显示,则成功!
task_struct = ffff880034381e00
uidptr = ffff880074f82f04
spawning root shell
To run a command as administrator (user “root”), use "sudo ".
See “man sudo_root” for details.
root@ubuntu:~#
1666680581_635787055ab7d4fa67373.png!small

4.输入whoami,查看是否提权成功;

①输入: whoami
②结果:屏幕回显root,成功!

1666680618_6357872a860c1ea90c98b.png!small

四、注意:进入我的Ubuntu16.04.4的虚拟机系统时候,点击快照2,即可无需输入普通用户的用户名和密码登录进系统。

五、该文章,只涉及本地提权,本地提权也就是,你已经有了一个普通用户,想要通过提权上升为root用户。

六、漏洞防御:

0.输入以下命令确认是否有漏洞:cat /proc/sys/kernel/unprivileged_bpf_disabled
//若回显不为1,则有漏洞

1666680843_6357880b63972f9931b8e.png!small

1,目前的防御方式是启用 unprivileged_bpf_disable 功能:
输入以下命令: echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled

1666680869_6357882514758a0911823.png!small
七、依次输入的命令有:

gcc upstream44.c -o upstream
./upstream
whoami

# 漏洞 # 系统安全
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者