Linux本地内核提权漏洞复现(CVE-2019-13272)

image

0x00简介

在5.1.17之前的Linux内核中,kernel / ptrace.c中的ptrace_link错误地处理了想要创建ptrace关系的进程的凭据记录,这允许本地用户通过利用父子的某些方案来获取root访问权限 进程关系,父进程删除权限并调用execve可能允许攻击者控制。

0x01漏洞概述

Linux执行PTRACE_TRACEME函数时,ptrace_link函数将获得对父进程凭据的RCU引用,然后将该指针指向get_cred函数,但是,对象struct cred的生存周期规则不允许无条件的将RCU引用转换为稳定引用。PTRACE_TRACEME获取父进程的凭证,使其能够像父进程一样执行父进程能够执行的各种操作,如果恶意低权限子进程使用PTRACE_TRACEME并且该子进程的父进程具有高权限,子进程可获取其父进程的控制权并且使用其父进程的权限调用execve函数创建一个新的高权限进程。

注:该漏洞利用前提:需要目标服务器有桌面环境,所以较为鸡肋的漏洞

0x02影响范围

内核<5.1.17

0x03环境搭建

环境:ubuntu18.04版本

下载地址:http://mirrors.aliyun.com/ubuntu-releases/16.04/

image

1.下载完成后使用VMware虚拟机安装,安装时版本选择Ubuntu 64位的

image

2.镜像文件选择下载的ubuntu16版本的镜像安装开启虚拟机即可,详细安装方法自行百度

image

3.安装完成后重启即可

image

0x04漏洞复现

1.在Ubuntu上创建一个低权限用户test并设置密码

useradd -d /home/test -m test

passwd test

image

2.然后切换到test用户,查看系统内核版本是否小于5.1.17,并当前用户和当前用户的UID

image

3.切换到tmp目录使用git或wget下载漏洞poc

git clone https://github.com/bcoles/kernel-exploits.git

image

4.下载完成后进入CVE-2019-13272目录下,编译poc

gcc poc.c -o exp

image

5.然后执行exp,提权成功

image

总结

1.此漏洞危害性比较大,但漏洞的限制也非常的大,需要是linux桌面freedestop上的验证程序,就是说非桌面版本此提权方法没用,要用它只能在本地使用,使用ssh连接也不行。

2.以下为作者以实验成功的版本

image

0x05修复建议

1.建议升级linux内核版本至5.2或更高

参考链接:https://github.com/bcoles/kernel-exploits/tree/master/CVE-2019-13272

你可能感兴趣的:(Linux本地内核提权漏洞复现(CVE-2019-13272))