
通过这篇文章,你讲了解到一下知识:
- 什么是提权?
- 为什么要提权?
- Linux 提权方法有哪些?
什么是提权?

一次完整的渗透测试流程,应该包含 主机发现 > 服务枚举 > 实施攻击 > 获取shell > 权限提升 > 权限维持 > 内网渗透 > 痕迹清除 共 8 个步骤。
在渗透测试前期,我们会想尽办法通过「某个漏洞攻击」获取到目标主机系统上的一个 shell 用于执行系统命令,从而达到控制目标主机的目的。
当我们获取到的初始 shell 为低权限用户时,需要想办法提升权限为高权限用户,这个过程就叫做权限提升,简称「提权」 。
为什么会有高低权限之分?
有些同学会有一个疑惑:为什么同样是通过漏洞攻击获取到的 shell ,有时候是低权限,有时候又是高权限呢?
下面以一个简单的例子来说明:

通常情况下 Web 服务架构如上图所示:后端 linux 服务器通过 Tomcat 中间件提供 Web 服务。
如今的计算机操作系统都是基于多用户设计的,通常一台计算机上同时存在着多个不同权限的系统用户,而在 Linux 服务器上,每个服务都需要先赋予某个用户权限才能运行。
「用户权限」是用来控制某个系统用户被允许做哪些操作和不允许做哪些操作。
假设 Tomcat 服务以普通用户 web-user 的权限运行并提供 Web 服务,此时如果黑客通过 Web 漏洞获取到 shell,此 shell 就是一个 web-user 用户权限的 shell——此时就需要提权。
反之,若 Tomcat 是以 root 用户权限运行,那黑客获取到的 shell 就是 root 权限。
为什么要提权?
在渗透测试中,高权限 shell 能带来以下好处:
- 高权限能对更多的文件进行「增删改查」操作,便于进一步收集主机系统中的敏感信息
- Linux 系统的 root 权限可获取 shadow 文件中的密码 Hash,若内网环境中存在「账户/密码复用」的情况,可用于横向扩展
- Windows 系统中的 system 权限可提取内存中的密码 Hash,可进一步用于域渗透
简而言之,获取更高权限的 shell,能为渗透测试后期的工作带来很多便利。
提权方法有哪些?
提权目标
在 Windows 和 Linux 操作系统上,提权的最终目标是不同的。
- 在 Windows 上: 最高权限用户为 system 用户(并非 Administrator 用户)
- 在 Linux 上:最高权限用户为 root 用户
提权方法汇总
Windows 提权和 Linux 提权方法并不相同,由于实验楼环境所限限无法进行 Windows 系统提权实验,因此本课程将只您介绍 Linux 提权方法。
Linux 常用的提权方法如下:
- SUID 可执行文件提权
- passwd/shadow 文件提权
- crontab 定时任务提权
- sudo 滥用提权
- Linux 内核漏洞提权
总结
从以上内容中,我们学习到了什么是系统提权,为什么要进行提权,并对 Linux 系统的提权方法做了概述性的介绍。
接下来我会创建一系列实验课程,在实验中我们将假定我们已经从一台 Linux 操作系统的目标主机上获得了低权限 shell,并以此为基础演示如何从低权限提升为 root 权限。
更重要的是,将提供给你在真实环境中练手的机会,帮你更快的掌握 Linux 提权的方法。
















