拿到低权限之后:提权排查的通用清单
拿到一个普通 shell 后,提权的效率取决于「有没有系统性地检查」,而不是碰运气找 exploit。
九成的提权成功来自配置问题:sudo 规则过宽、定时任务可写、服务以 root 运行且配置可改。
先说结论
按「配置 > 凭证 > 内核」的顺序排查。 内核 exploit 是最后手段,风险最高。
- sudo -l 看可执行命令与免密项
- 找 SUID 与可写的服务文件
- 检查 cron 与环境变量注入
- 历史命令与配置文件里找凭证
漏洞是怎么产生的
提权的本质是「找到一条从当前身份到更高身份的合法路径」。配置疏忽提供了这种路径。
在授权测试中,记录每条路径与修复建议,比拿到 root 本身更有价值。
修复与验证
修复不是改一行代码,而是四件事一起做:
- sudo -l 与 id,确认当前权限边界
- find / -perm -4000 找 SUID 程序,核对是否有已知风险
- 检查可写的服务文件与定时任务
- 翻历史命令、配置文件、环境变量找凭证
- 内核版本与已知漏洞作为最后选项
攻击面与检测点
按影响面排序,先修影响最大的:
| 类别 | 检查点 | 典型问题 |
|---|---|---|
| sudo | NOPASSWD 与通配 | 可执行任意命令 |
| 文件权限 | 服务脚本可写 | 以 root 执行 |
| 定时任务 | 脚本路径可写 | 提权执行 |
| 凭证 | 历史与配置 | 明文密码 |

几个容易踩的坑
下面这些是最常见的错误做法:
- 直接跑内核 exploit:可能把系统搞崩
- 忽略文件权限:最容易被忽视的路径
- 不提修复建议:客户不知道怎么改
- 测试后不清理:留下后门风险
写在最后
提权排查的价值在于「系统化」,一次漏掉的配置,可能就是下一次的入口。
安全不是一次加固,是持续的假设:假设输入不可信、假设边界会破、假设有人会看错。
评论 (3)
修复清单比漏洞描述有用多了,很多文章只讲怎么打不讲怎么防。
白名单那条永远是最有效的,正则黑名单迟早绕过。
建议再补一条:把这类检查加到 CI 里,靠人记必然漏。
发表评论