脏牛漏洞是在Linux内核中存在的一个漏洞,具体原理是get_user_page内核函数在处理Copy-on-Write(简称COW)的过程中,可能产生竞态条件造成COW过程被破坏。这里我们不需要去理解漏洞原理,只需要知道如何利用该漏洞就可以了。
在2007年发布的Linux内核版本中就已经存在此漏洞,一直到2016年10月18日Linux kernel团队才对这个漏洞进行了修复。
所以要想使用脏牛漏洞成功提权,首先必须要确认系统中存在此漏洞,也就是要查看并确认系统版本。
由于开源的特点,Linux系统存在发行版本和内核版本两个概念,这里先对此做下简要介绍。
我们都知道,Linux系统的作者是Linus Torvalds,但其实Linus Torvalds发布的仅仅只是Linux系统的内核(Kernel)。系统内核就是负责完成操作系统最基本功能的程序,比如管理并调度系统中的各种硬件资源,从而为各种应用程序提供运行环境。我们平时所使用的各种程序和软件,都是运行在内核上的应用程序。如果仅仅只有内核,肯定是无法满足用户需求的。
它们之间的关系如下图所示:
由于Linux是开源的,所以任何人都可以从Linux Kernel的官网(https://www.kernel.org)免费下载各种版本的Linux内核。然后有很多公司或组织在内核的基础之上,根据不同的用户需求,安装了各种应用程序,这就构成了Linux发行版。所以平时所使用的CentOS、Kali等Linux系统其实都是Linux的发行版。
在了解了这些概念之后,我们就可以知道,CentOS7.9和Kali2022.4这些都是指的发行版,不同的发行版所采用的往往都是不同版本的Linux内核。
另外还有一个问题需要说明,所有的Linux发行版都是开源的,任何人都可以免费获取这些发行版,并根据自己的需求在它的基础之上安装或者卸载相应的应用软件,这样就构成了新的二次发行版、三次发行版……。
所以我们目前所使用的Linux发行版最终形成了两大派系:RedHat、Debian。比如CentOS就属于RedHat的二次开发版本,而Ubuntu则是Debian的二次版本,Kali则是Ubuntu的再次开发版本。
在了解了上述概念之后,我们就可以来查看Linux系统的版本了。
在CentOS系统中,可以执行cat /etc/redhat-release命令,这个查看的明显是发行版的版本。
要查看内核版本,可以执行uname -r命令,可以看到CentOS8所采用的内核版本是4.18。
执行uname -v命令,可以看到这个版本的内核是于2021年6月1日更新的。
在Debian派系的系统中,可以执行lsb_release -a命令查看发行版的版本:
要查看内核版本,同样可以执行uname命令:
在靶机中执行lsb_release -a命令,可以查看到这是一个Ubuntu14的发行版:
通过uname命令可以查看到靶机的内核版本是4.4,内核更新于2016年7月13日。
我们之前介绍过,脏牛漏洞是在2016年10月18日才被修复的,而在2007年发布的Linux内核版本中就已经存在此漏洞,所以我们只需要记住2007年~2016年10月这个时间范围即可,在这个时间段内的Linux内核都存在脏牛漏洞。而这个靶机明显就在这个范围之内。
标签:Web,版本,查看,43,漏洞,内核,发行版,Linux From: https://blog.51cto.com/yttitan/6076896