漏洞编号为CVE-2017-16995的本地提权(略微详细)(Ubuntu16.04.1-4)
CVE-2017-16995漏洞的本地提权
一、漏洞分析:
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打开从网盘拷贝到此电脑的虚拟机文件
②进入快照2
③如图所示,已经上传了upstream44.c文件
//注意普通用户的命令标识符为 $; 而root用户的命令标识符为 # //有些博客上,会输入 cat /etc/shadow 这条命令,因为非root用户无法查看该文件,所以改名了可以验证是否为root权限 //还可以,输入whoami,若结果为root,则本地提权成功;若显示为 /home/用户名 ,则未提权成功
2.用gcc,即C程序编译器,编译upstream44.c文件,使之成为任何操作系统都能运行的可执行文件; ①输入 gcc upstream.c -o upstream44 //把upstream44.c编译成可执行文件upstream44 ②结果:输入后,无反应,并且ls,列出绿色的可执行文件,则成功! 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:~#
4.输入whoami,查看是否提权成功; ①输入: whoami ②结果:屏幕回显root,成功!
四、注意:进入我的Ubuntu16.04.4的虚拟机系统时候,点击快照2,即可无需输入普通用户的用户名和密码登录进系统。
五、该文章,只涉及本地提权,本地提权也就是,你已经有了一个普通用户,想要通过提权上升为root用户。
六、漏洞防御:
0.输入以下命令确认是否有漏洞:cat /proc/sys/kernel/unprivileged_bpf_disabled //若回显不为1,则有漏洞 1,目前的防御方式是启用 unprivileged_bpf_disable 功能: 输入以下命令: echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled
七、依次输入的命令有:
gcc upstream44.c -o upstream ./upstream whoami
> 我认为,每个人都有一个觉醒期,只是它的早晚,决定着一个人的命运。
> 2019年10月12日----401
*