Linux提权:为什么你总是卡在最后一步?

admin 2026-04-26 05:09:18 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文系统阐述Linux提权核心思路,强调从找漏洞转向找入口的思维转变。文章按实战优先级列出sudo权限、SUID文件、计划任务、PATH劫持等8类提权路径,并指出利用GTFOBins工具和检查Docker组等关键技巧。作者建议按固定流程排查,形成优先级判断逻辑以提升提权效率。 综合评分: 85 文章分类: 渗透测试,红队,内网渗透,实战经验,安全工具


cover_image

Linux 提权:为什么你总是卡在最后一步?

原创

网安布道师 网安布道师

六边形攻防安全

2026年4月24日 12:52 河北

在小说阅读器读本章

去阅读

很多人打 Linux 靶机的时候,其实都卡在同一个地方:提权

不是不会跑工具,linpeas、linEnum 都会用。但问题是——

一跑就是一屏红字,然后……不知道该打哪个。

我当时也是这样。后来慢慢发现:

提权这件事,本质不是”找漏洞”,而是”找入口”。

这篇文章,我就总结一下拿到 shell 后,怎么一步步获取 root权限。

一、先说结论

Linux 提权的本质:让 root 帮你执行你的代码。

你不用成为 root,你只需要——

👉 找到一个”root 会执行的地方”,然后把你的东西塞进去。

二、拿到 shell 后,第一步该干嘛?

很多人第一反应是:运行linpeas.sh

其实更建议先做这几件事:

whoamiidsudo -l

这里重点看三件事:

1. 当前用户是谁2. 有没有特殊组(docker / lxd)3. 有没有sudo权限

👉 这三步,能帮你排掉一半无效路径。

三、最常见提权路径(按实战优先级)

1. sudo 提权(优先级最高)

先看:

sudo -l

典型场景

(user) NOPASSWD: /usr/bin/vim

很多人看到这里会愣一下:

👉 “这能干嘛?”

但其实这个的意思是可以在无需使用密码的情况下使用sudo执行vim:

sudo vim -c ':!/bin/sh'

直接 root shell。


一个很常见的坑

有些人看到 sudo 能执行命令,但没利用成功。

原因通常是:

👉 没去查 GTFOBins(https://gtfobins.org/),这个网站你值得拥有。

2. SUID 提权(非常常见)

找:

find / -perm -4000 2>/dev/null

一个经典例子

如果你看到:

/usr/bin/find

👉 别犹豫,直接试:

find . -exec /bin/sh \; -quit

👉 看起来只是个 find,其实是 root。

3. 计划任务(cron)

看:cat /etc/crontab 或者用 pspy(注意这个工具无需root权限即可查看计划任务和进程敏感信息泄漏非常好用,尤其是在没有权限查看计划任务的具体内容时)

典型场景

* * * * * root /home/user/script.sh

如果:script.sh 可写, 修改它,等执行,直接 root。


这里有个坑

你改了脚本,但没效果。

原因可能是:你改的文件 ≠ 实际执行的文件

一定要确认是否是实际执行的文件而不是链接文件,通过ls -l命令看清楚路径。

4. PATH 劫持(容易被忽略)

很多程序会这样写:

system("tar -cf backup.tar /data")

如果没有写绝对路径,系统会去 PATH 里找 tar

💥 利用思路

echo "/bin/bash" > tarchmod +x tarexport PATH=.:$PATH

👉 等程序执行 → 你劫持成功,这个点在靶机里出现频率不算高,但一旦遇到秒提权

5.可写服务 / 脚本

看ps aux命令

💥 典型情况

root 正在跑 /opt/app/run.sh

如果:run.sh 可写直接改内容:/bin/bash

等它执行:root shell 到手。

6.Docker / LXD(隐藏的”超级后门”)

先看:groups

如果有:docker、lxd

👉 基本可以直接当 root 用。

为什么?

因为你可以挂载整个系统 例如

docker run -it -v /:/mnt --rm ubuntu bashmkdir -p /mnt/root/.sshecho "你的公钥" > /mnt/root/.ssh/authorized_keys

👉 本质就是:你已经有 root,只是方式比较”间接”。

7.内核或组件漏洞

如果上面都没中,再运行linpeas.ps1 查看内核提权漏洞的推荐,根据推荐查找相应exp。

常见:

  • Dirty COW
  • Dirty Pipe
  • sudo提权(CVE-2021-3156等)

8.内部脆弱服务

有时还会存在内网脆弱的服务提权情况,这个内网服务一般是开放在本地127.0.0.1的,比如之前遇到过的jdwp漏洞提权,往往直接在受害机上进行攻击或者把这个脆弱服务的端口转发到本地(尤其是受害机器不具备提权工具执行的情况)。

9.信息搜集切换账号

在前面的方法试过都没用的情况下,可以查找一下可能的密码信息,比如使用linpeas.ps1或者手工命令行查找,这个密码可能是你切换linux其它用户的密码,切换完成之后一般能直接su到root,或者执行sudo命令

grep -R db_passwdgrep -roiE "password.{20}"grep -oiE "password.{20}" /etc/*.confgrep -v "^[#;]" /PATH/TO/FILE | grep -v "^$"    // grep for passwords like "DBPassword:"watch -n 1 "ps -aux | grep pass"sudo tcpdump -i lo -A | grep "pass"

有时候这个密码并不是明文存放,而是放在一个压缩包中的,比如备份文件啥的,我们需要解压缩文件才能找到,这种就需要细心和耐心了。

四、真正的提权思维(重点)

高手和新手最大的区别在这里👇


新手思路

跑工具 → 找漏洞 → 试 exploit

正确思路

谁在用 root 执行东西?        ↓这个东西我能不能改?        ↓能 → 直接提权

五、总结

先 sudo再 suid再 cron再 path再服务kernel exploit服务exploit查找密码 切换用户

👉 基本 90% 靶机都跑不出这个框架。

六、最后说一句实话

很多人觉得提权难,其实是因为:

👉 没有”优先级”概念

当你形成这套判断逻辑之后:

  • 不再依赖工具
  • 不再乱试 exploit
  • 基本能稳定提权

七、写在最后

提权不是”技巧”,而是”理解系统是怎么工作的”。

你一旦理解:

👉 root 是在哪些地方执行代码的

提权就变成一件很自然的事情。

加我微信,拉您进六边形攻防安全交流群~


免责声明:

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

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

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

本文转载自:六边形攻防安全 网安布道师 网安布道师《Linux 提权:为什么你总是卡在最后一步?》

评论:0   参与:  0