前言
本篇以linux提权的其中一种方法,即利用内核版本的漏洞进行提权。
内核提权原理
利用内核漏洞来执行具有更高权限的任意代码的程序。成功的内核利用通常会以root命令提示符的形式为攻击者提供对目标系统的超级用户访问权限。在许多情况下,升级到Linux系统上的根目录就像将内核漏洞利用程序下载到目标文件系统,编译该漏洞利用程序然后执行它一样简单。而它的工作流程:
1.诱使内核在内核模式下运行我们的有效EXP
2.处理内核数据
3.以新的特权启动Root权限
提权条件
考虑到要成功利用内核利用攻击,攻击者需要满足以下四个条件:
1.内核版本在可以利用的范围之内
2.拥有匹配内核版本的EXP
3.拥有上传文件的权限
4.对上传文件的目录具有执行的权限
提权失败原因
1.机器保持内核的补丁和更新。
2.在没有补丁的情况下,管理员可以极大地影响在目标上传输和执行漏洞利用程序的能力。考虑到这些考虑因素,如果管理员阻止将利用程序上传或执行到目标系统上,则内核利用程序攻击将不再可行。并且如果管理员专注于限制或删除支持文件传输的程序,例如FTP,TFTP, SCP, wget和curl。并将它们的使用限制为特定的用户,目录,应用程序(例如SCP)和特定的I地址或域也会造成Linux内核提权失败
内核提权复现
这里使用脏牛提权(CVE-2016-5195)漏洞来做演示,漏洞受影响的版本
Centos7/RHEL7 3.10.0-327.36.3.el7
Cetnos6/RHEL6 2.6.32-642.6.2.el6
Ubuntu 16.10 4.8.0-26.28
Ubuntu 16.04 4.4.0-45.66
Ubuntu 14.04 3.13.0-100.147
Debian 8 3.16.36-1+deb8u2
Debian 7 3.2.82-1
靶机:Ubuntu 16.04.1 LTS 内核版本:4.4.0-21-generic
uname -r #查看内核版本
id #查看组
cat /etc/issue #查看发行版本
使用的exp地址:CVE-2016-5195 ,我最开始使用的exp是dirtycow,这个会死机
下载好exp后,输入make
进行编译,编译成功后输入./dcow -s
,即可成功提权
自动化工具
分享一个内核提权自动识别工具linux-exploit-suggester,执行./linux-exploit-suggester.sh
,将会给出可提权的CVE编号,可看到CVE都是非常新的