Linux提权与容器逃逸完整指南:SUID、Capabilities、Docker Socket与K8s渗透实战10招
发布时间:2026/10/7 6:00:44 作者:尧图编辑部 阅读量:1,286

Linux提权与容器逃逸完整指南SUID、Capabilities、Docker Socket与K8s渗透实战10招【免费下载链接】hack-skillsHelping AI Agent become an awesome practical hacker!项目地址: https://gitcode.com/gh_mirrors/ha/hack-skillshack-skills 是一个面向 AI Agent 的渗透测试技能库Hacker Arsenal for Agents把真实渗透中的方法论压缩成可检索、可加载的 SKILL 文档。本文基于仓库中的 Linux 提权与容器逃逸两大核心技能带你用 10 条关键路径建立从普通 shell 到 root、从容器到宿主机的完整攻击思路适合新手快速入门。一、为什么 Linux 提权是渗透的胜负手拿到目标机器的 shell 时往往只是一个普通用户。真正的目标在 root 手里系统层面root 可以读取全部密码哈希、修改账号、留后门容器层面普通容器用户什么都看不到但宿主机上可能躺着一整片集群。hack-skills 中有两份技能文档正好对应这两个阶段系统内提权skills/linux-privilege-escalation/SKILL.md容器逃逸到宿主机skills/container-escape-techniques/SKILL.md二、落地后 5 分钟摸清提权面信息收集清单提权 90% 依赖枚举。落地后先跑一遍这张清单完整版在 枚举章节检查项关注点内核与系统版本uname -a拿到内核版本对照已知内核漏洞Sudo 权限sudo -l看能否以 root 运行命令SUID/SGID 二进制find / -perm -4000全盘扫描带钥匙的二进制Capabilitiesgetcap -r /查找细粒度权限定时任务/etc/crontab、/etc/cron.d 中以 root 运行的脚本敏感文件/etc/passwd、/etc/shadow 是否可写凭据痕迹环境变量、.bash_history、配置文件里的密钥⚡ 小技巧用 pspy 监控后台进程不需要 root 也能抓到隐藏的 cron 任务。三、SUID/SGID 提权找到带钥匙的二进制SUID 位的含义是执行这个文件时程序以**文件属主通常是 root**的身份运行。换句话说普通用户借这个二进制临时拥有了 root。3.1 最高频的 8 类 SUID 提权组合二进制利用思路bash / sh / dash直接执行并用-p参数保留 root 身份find / awk / env自带参数可直接调用 shellvim / less / more / man进入后按!呼出 shellpython / perl / ruby用解释器内置函数执行 shellcp / tee / dd读出 /etc/shadow或改写 /etc/passwdnmap / strace / time旧版交互模式或执行包装器技巧完整的 30 个 SUID 二进制利用命令按 shell 类、文件读写类、执行类、网络类分组整理在 SUID_CAPABILITIES_TRICKS.md。3.2 遇到不在清单里的 SUID 怎么办用 GTFOBins 思路对照二进制的功能参数自研二进制用 strace/ltrace 观察它加载哪些共享库——如果某个库从可写目录加载就可以做共享库劫持把提权逻辑塞进去。四、Capabilities 滥用细粒度权限里藏着的超级权限Capabilities 是把 root 权限拆成的 38 个小碎片可以给二进制单独授权比如只允许绑定 1024 以下端口。但其中几枚碎片几乎等价于完整 rootCapability风险能做什么cap_setuid 严重直接把自身 UID 改成 0cap_dac_override 严重无视文件权限读写任意文件cap_dac_read_search 高读取 /etc/shadowcap_sys_admin 严重挂载文件系统、操作命名空间容器逃逸常客cap_sys_ptrace 高注入 root 进程cap_net_raw 中抓包、ARP 欺骗 实战流程getcap -r /找到带 capabilities 的二进制 → 按上表定位风险 → 查 SKILL.md 第 3 节 获取对应利用方式。五、其他高频提权路径5.1 定时任务Cron注入只要 root 的 cron 任务满足下面任一条件就值得动手运行了当前用户可写的脚本 → 直接改写脚本内容命令没写全路径如backup.sh→ PATH 劫持在可写目录放同名命令使用通配符如tar czf ... *→ 特殊文件名注入让 tar 把文件名当参数执行。5.2 内核与软件漏洞版本决定胜负内核版本直接决定可用的本地 root 漏洞几个高频常客漏洞影响范围特点PwnKitCVE-2021-4034几乎所有发行版极稳定pkexec 本地 rootDirtyPipeCVE-2022-08475.8 – 5.16.10可覆盖任意可读文件非常稳定DirtyCowCVE-2016-5195≤ 4.8.3老机器上的常客nf_tablesCVE-2023-322335.x – 6.3.1容器与宿主机都常见完整的内核版本 → 漏洞映射表与编译技巧见 KERNEL_EXPLOITS_CHECKLIST.md。5.3 Docker 组 变相 root如果id输出里包含docker组那么宿主机对你基本等价于 root用 docker 运行一个容器并挂载宿主机/然后 chroot 进去即可。这是用户被加进 docker 组这类误操作的经典后果。六、容器逃逸实战从小房间走到宿主机容器里拿到 root 别急着收手真正有价值的数据往往在宿主机上。6.1 先确认我在容器里吗三个快速信号存在/.dockerenv文件、hostname 是随机十六进制串、mount 里出现 overlay 文件系统。6.2 特权容器--privileged最直接的逃逸查看/proc/self/status的CapEff是否全满0000003fffffffff是的话容器几乎是敞开门的fdisk -l找到宿主机磁盘常见 /dev/sda1挂载后chroot进入 → 得到宿主机 shell更省事的方式直接nsenter --target 1进入宿主机命名空间。6.3 Docker Socket 挂载最容易被忽视的逃逸点如果容器里挂载了/var/run/docker.sock等于把宿主机的 Docker API 拱手让人。即使容器内没有 docker 客户端也能用 curl 走 unix socket 创建一个挂载宿主机/的特权容器再 chroot 出去。这是 CI/CD 流水线里最高频的逃逸配置之一。6.4 cgroup release_agent让宿主机替你执行脚本容器内具备CAP_SYS_ADMIN且使用 cgroup v1 时可以把一个脚本路径写入 release_agent内核随后会以宿主机上下文执行该脚本——读宿主机 /etc/shadow、写回连命令都在这一步完成。6.5 运行时与内核漏洞runc CVE-2019-5736恶意容器配合docker exec可覆盖宿主机上的 runc 二进制containerd CVE-2020-15257共享网络命名空间时容器可直连宿主机 shim socketcgroups CVE-2022-0492免 CAP_SYS_ADMIN 的 cgroup 逃逸。分步命令序列含纯 curl API 逃逸、Docker-in-Docker 双跳逃逸都写在 DOCKER_ESCAPE_CHAINS.md并附一张逃逸链选择矩阵。七、K8s 渗透从 Pod 到节点再到集群在 Kubernetes 环境里容器逃逸和集群接管之间只隔一层薄薄的 Pod 配置。先检查这几项高危设置Pod 配置后果hostPID: true直接看到宿主机进程可 nsenter 进宿主机hostNetwork: true直连 Kubelet、etcd 等节点服务hostPath: /直接读写节点文件系统privileged: true等同特权容器见 6.2SA token pods/create权限可创建新的特权逃逸 Pod等于拿到集群级权限skills/kubernetes-pentesting/SKILL.md 进一步覆盖了 API Server 匿名访问、RBAC 枚举、Service Account 令牌滥用、etcd 密钥提取、云元数据IMDS等完整攻击路径。八、把这套技能装进你的 AI Agenthack-skills 把每个方向做成独立目录统一采用skills/{技能名}/SKILL.md的结构。与本文直接相关的核心文件skills/linux-privilege-escalation/SKILL.md — Linux 提权总纲含提权决策树skills/linux-privilege-escalation/SUID_CAPABILITIES_TRICKS.md — Top 30 SUID Capabilities 精细利用skills/linux-privilege-escalation/KERNEL_EXPLOITS_CHECKLIST.md — 内核版本 → 漏洞映射表skills/container-escape-techniques/SKILL.md — 容器逃逸总纲含逃逸决策树skills/container-escape-techniques/DOCKER_ESCAPE_CHAINS.md — 分步逃逸链DinD、K8s 场景skills/kubernetes-pentesting/SKILL.md — K8s 全链路渗透skills/hack/SKILL.md — 总入口负责路由到各子技能 使用建议每份 SKILL.md 结尾都有一棵决策树。实战中卡住时沿树对照当前条件有没有 sudo 条目CapEff 全满docker.sock 在不在即可快速定位下一步动作。总结一张表记住提权与逃逸路线阶段优先检查落地枚举sudo -l、SUID/SGID、getcap、cron、内核版本裸机提权SUID 二进制、Capabilities、cron 注入、内核漏洞、Docker 组容器环境privileged、/var/run/docker.sock、cgroup v1 CAP_SYS_ADMIN、运行时 CVEK8s 环境hostPID / hostPath / privileged、SA 令牌与 RBAC 权限拿到 root 后持久化、清理痕迹、向邻居节点横向移动️ 本文所有技术仅适用于授权安全测试、CTF 竞赛与学习研究请勿用于未授权目标。【免费下载链接】hack-skillsHelping AI Agent become an awesome practical hacker!项目地址: https://gitcode.com/gh_mirrors/ha/hack-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考