Ubuntu 本地内核提权 (CVE-2017-16995)

本文将讲述 Ubuntu 本地内核提权 (CVE-2017-16995)

可以说是很经典的漏洞了

在这篇文章中主要是复刻漏洞的出现过程

之后会针对 Poc 进行代码理解,并试图理解漏洞造成方式(BPf模块)

脏牛的提权操作过程与此相同,只不过漏洞造成的方式并不相同:

脏牛是利用内存机制和 Linux 内核处理机制来达到提权的目的

而本文讲到的提权是同样也是利用内存机制,但不是由 Linux 内核造成,而是由 BPf 模块

果然怎么保证内存安全和合理分配也是要研究的啊

本文中用到的操作系统和工具为:

1.Ubuntu 16.04 LTS
2.hyper-v 虚拟机

  1. 系统安装 , 无脑下一步即可,不要忘记弄上普通用户

  2. 设置 root 账户

由于 Ubuntu 在初始化时并没有设置 root 账户

所以要自己手动设置 root 账户

sudo passwd

  1. 登入 root 账户
su

输入刚才设定的密码就可以了

跟上图一样就可以

前面出现 root 就可以了

  1. 查看 Linux 内核
uname -r

这个版本应该是已经修改的 Linux 内核了

  1. 修改 Linux 内核

查找 Linux 内核

apt-cache search linux

安装 Linux 内核

sudo apt-get install linux-headers-4.4.0-92-generic linux-image-4.4.0-92-generic
  1. 修改内核配置信息
sudo gedit /boot/grub/grub.cfg

修改前

修改后(注意修改的版本)

保存

重启

reboot -n

检查内核信息

修改成功

  1. 将提权文件传输

在这里我用的是 XFTP

但是这里的 Ubuntu 并没有安装 OpenSSH

所以我们要手动安装

apt install ssh

获取本机 IP

ip a

配置 XFTP ,传输文件即可

我们返回 Linux 查看

可以看见我们传的 .c 文件已经传输了

  1. 进行编译
gcc upstream44.c -o exploit

此时我们可以看见生成了 exploit 文件

  1. 执行提权文件
./exploit

这时候我们看见我们由普通用户转为了 root 用户

提权成功

到底是怎么实现的呢?

得抽空看看源代码才能知道了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值