接Windows 提权篇,这篇是 Linux 侧。这门课开场就给了个预期管理:Linux 提权的常规方法(SUID/任务计划等)真实成功率远低于 Windows 服务类——生产环境很少配出可利用的弱权限,真正的主力是内核漏洞。所以这篇的顺序是”先讲清前提,再过常规方法,重点放内核”。
0x01 提权的前提:你得先进门
课上的原话逻辑:提权必须先有基础权限——拿下 Web(拿到 /var/www/html 上传能力、跑在 www-data 下)才有资格谈提权。而 www-data 的世界非常小:
- 只有 Web 目录的读写权,
/etc/shadow、其他用户目录一概动不了; - 所以提权的第一问永远是:当前用户是谁?能写哪些目录?sudo -l 有什么?SUID 位上有谁?
信息收集三连:
id ; sudo -l
find / -perm -4000 -type f 2>/dev/null # SUID 文件
cat /etc/crontab ; ls -la /etc/cron* # 任务计划
uname -a ; dpkg -l | grep -i linux-image # 内核版本(决定内核洞选型)
0x02 常规方法四类:能讲清原理,别指望太多
① SUID 提权:SUID 位的可执行文件以属主(常为 root)身份运行。find、copy、vim、base64 这类自带命令执行的程序若带 SUID 即直接提权:
find / -exec /bin/sh \; # find 带 SUID 时的经典玩法
面试可以讲,但真实环境 Google 过的默认配置机器上很少能碰见——预期成功率低。
② 任务计划提权:/etc/crontab 或 cron 目录里的脚本若低权限可写,写入反弹 shell 等 root 执行。坑点:CentOS 的 cron 对文件格式和权限要求严(脚本必须属主正确、644 且非组可写否则被忽略),课堂实测经常失败。
③ Shadow 文件提权:两种路线——
- 可写:直接改 root 行的哈希(生成新哈希
openssl passwd -1塞进去); - 可读:
unshadow passwd shadow合并后丢给 john 或 hashcat 离线爆破,成败看密码强度。
④ 暴力破解提权:hydra 打 SSH,配合信息收集阶段搞到的密码字典定向爆破。这是”撞运气”,字典质量决定一切。
0x03 内核提权:Linux 的真正主力
方法论与 Windows 一致:版本对号 → 查公开洞 → 编译执行,但有 Linux 特有的细节:
uname -a看内核版本后,检索该版本区间可用的 CVE(近年 Copy 类漏洞一脉出的洞覆盖 2017-2026 的宽版本区间,是常客);- 优先用新曝出的洞:越新越稳定、成功率越高——老系统(Ubuntu 18.04 时代)大概率已被补丁覆盖;
- 失败的第一排查方向是”补丁已修”:课堂实例里,新装的 22.04 打 3 月曝出的洞失败,复盘结论就是系统在漏洞公开后已 patch——洞没打上会反复尝试报错,打上了直接”要求输密码”或段错误;
- 落地位置用 /tmp(默认全局可写);exploit 源码编译后注意切换回有执行权限的用户跑;
- 内核洞有崩溃风险,生产环境先评估,有条件先拍快照。
0x04 VCenter 与虚拟化层
云/虚拟化场景的特殊目标:VCenter(ESXi 管理平台)的 RCE 一旦拿下,等于拿到其下所有虚拟机的管理层权限——比逐台提权效率高一个量级。内网实战篇的案例里正是 VCenter 漏洞给的”通杀密码”。内网测绘时 VCenter/WebLogic/NGINX 管理端这类”一个洞换一片”的目标优先级最高。
0x05 提权失败的心法
这段预期管理值得原文记录:
- 提权失败是常态,一个脚本在演示机成功、换台机器就失败,多数败在环境差异(版本、补丁、SELinux、编译依赖);
- 报错信息先喂 AI 定位(缺依赖?被补丁?路径不对?),但结论自己核对——AI 常把”洞已修复”误判成”命令用错”;
- 一种方法失败立刻换下一种,顺序建议:sudo -l / SUID 快扫(零风险)→ 任务计划/shadow(低风险)→ 内核洞(有崩溃风险,评估后上);
- 写进简历时把攻击链讲完整:“通过 Web 漏洞取得 www-data → SUID 排查无果 → 匹配内核 CVE-xxxx 完成提权 → 导出凭证横向”,比单点罗列”会提权”可信得多。
相关旧文
- Windows 提权全景
- Vulnhub DC-1 完整渗透(SUID 提权的完整实战)
- 应急响应实战与项目复盘