讲Linux提权之前,我们先看看与Linux有关的一些知识:
我们常说的Linux系统,指的是Linux内核与各种常用软件的集合产品,全球大约有数百款的Linux系统版本,每个系统版本都有自己的特性和目标人群,大类有以下几种:
Linux内核:
Linux系统内核指的是一个由 Linus Torvalds 负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。
Linux内核版本有两种:稳定版 和 开发版 ,Linux内核版本号由3组数字组成:第一个组数字.第二组数字.第三组数字
- 第一个组数字:目前发布的内核主版本。
- 第二个组数字:偶数表示稳定版本;奇数表示开发中版本。
- 第三个组数字:错误修补的次数。
如下,使用 uname -r 可以看到linux系统的发行版本号。3.10.0就是内核版本号。3就是内核主版本,10表示是稳定版,0表示错误修补次数是0。 而 123.el7.x86_64则是redhat的发行版本信息,123代表编译123次,el7代表的是redhat7,x86_64则是64位系统。
使用以下命令也可以看到系统内核及版本的一些信息:
uname -a #查看内核的具体信息
cat /proc/version #查看内核的具体信息
cat /etc/redhat-release #查看redhat发行版本
cat /etc/centos-release #查看centos发行版本
当我们拿到了一台Linux服务器的低权限账号,于是,我们想要通过技术手段提权至root用户权限,以执行更多的操作。
Linux提权的前提:
- 拿到了一个低权限的账号
- 能上传和下载文件
- 机器上有python、java环境
第一想到的肯定就是Linux的内核漏洞,脏牛提权:Linux提权—脏牛漏洞(CVE-2016-5195)
第二就是利用Linux的SUID提权:Linux下用SUID提权
还有就是利用Linux的配置文件错误,导致/etc/passwd文件可写入提权:Linux提权之利用 /etc/passwd 文件
如果我们获取到了 root 用户的账号密码,但是该主机不允许root用户远程登录。于是,我们可以先登录低权限账号,然后 sudo提权至root用户。
还有我们可以查看主机上其他的服务,或许利用其他服务的漏洞可以拿到主机的 root 权限。
参考文章:Linux提权:从入门到放弃