Linux kernel(CVE-2018-17182)提权漏洞复现

 0x01 漏洞前言

     Google Project Zero的网络安全研究人员发布了详细信息,并针对自内核版本3.16到4.18.8以来Linux内核中存在的高严重性漏洞的概念验证(PoC)漏洞利用。由白帽黑客Jann Horn发现,内核漏洞(CVE-2018-17182)是Linux内存管理子系统中的缓存失效错误,导致释放后使用漏洞,如果被利用,可能允许攻击者获得根权限目标系统上的特权。免费使用后(UAF)漏洞是一类内存损坏错误,非特权用户可利用这些错误来破坏或更改内存中的数据,从而导致拒绝服务(系统崩溃)或升级权限以获得管理权限访问系统Linux的内核漏洞于9月18日在OSS-安全邮件列表中公开,并在第二天在上游支持的稳定内核版本4.18.9,4.14.71,4.9.128和4.4.157中进行了修补。在58年3月16日版本中也有一个修复程序。为版本4.15.0-34.37的Ubuntu 18.04,内核linux-image-4.15.0-34-generic附加了一个丑陋的漏洞。它需(40min~1hour)在弹出root shell之前运行。

0x02 漏洞影响版本

Linux kernel 4.18.8及之前版本

0x03 漏洞复现

1. 本次复现环境:ubuntu18.04*64  内核版本:linux-image-4.15.0-34-generic

2. 添加更新源

sudo vi /etc/apt/sources.list

deb-src  https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ main restricted

3. 更新操作系统

sudo apt-get update

4. 更新操作系统

sudo apt-get dist-upgrade

5. 安装GCC和G++

sudo apt-get install gcc

sudo apt-get install g++

6.新建一个test账号

7.下载利用exp

git clone  https://github.com/backlion/CVE-2018-17182.git

8.进入到vmacache目录,删除已编译好的文件。

rm puppet  puppeteer  suidhelper

9.通过运行compile.sh进行编译,当前目录下会生成三个二进制文件分别为:puppetpuppeteersuidhelper

10.然后切换到普通用户权限test:


11.执行二进制提权文件puppeteer,大约需要等11个半小时,最终看到从test权限提升为root权限。

 

0x04漏洞修复建议

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=7a9cdebdcc17e426fb5287e4a82db1dfe86339b2

 



原文地址:https://www.cnblogs.com/backlion/p/9729914.html