本质上来说已经脱离了CTF的范围,是一种实用性质的漏洞了

4.1 提权的基本概念与分类

提权是指攻击者利用系统、软件或配置中的漏洞,将自身的低权限(如普通的 Web 服务用户、访客用户)提升为高权限(如 Linux 的 root 或 Windows 的 SYSTEM / Administrator)的过程。

  • 垂直提权: 权限等级的跨越。例如从普通用户 leviathan 提升到超级用户 root。这是最常见的提权目标。
  • 水平提权: 同等级别权限的平移。例如从普通用户 A 获取普通用户 B 的权限(通常是为了获取 B 目录下的敏感文件或特定执行权限)。

4.2 Linux 环境下常见的提权路径

在二进制安全和系统底层安全范畴,提权通常依赖于系统底层的逻辑缺陷或权限配置失误:

1. SUID/SGID 程序滥用与逻辑漏洞

  • 原理: 当一个可执行文件被赋予了 SUID 权限(如 -rwsr-xr-x),普通用户执行该程序时,进程会暂时获得该程序属主(通常是 root)的有效用户 ID(eUID)。
  • 常见利用:
    • 命令注入与 API 误用: 程序在拥有高权限的状态下,未严格过滤用户输入,直接调用了 system()exec() 系列函数(如利用 accesscat 对空格解析差异的绕过)。
    • 环境变量劫持: SUID 程序在调用外部系统命令时没有使用绝对路径(如直接调用 cat 而不是 /bin/cat),攻击者可以伪造一个同名恶意程序并修改自身的 PATH 环境变量,诱导 SUID 程序以高权限执行恶意代码。
    • 已知二进制文件滥用:利用系统中自带的、配置了 SUID 的合法工具(如 find, vim, bash)的特殊参数来实现提权。

2. 内核漏洞 (Kernel Exploits)

  • 原理: 操作系统内核本身存在 C/C++ 内存破坏漏洞(如堆栈溢出、UAF)或逻辑条件竞争漏洞。

  • 经典案例:

    • Dirty COW (脏牛, CVE-2016-5195): 利用写时复制(Copy-on-Write)机制的条件竞争,导致只读内存映射被修改,从而篡改 /etc/passwd 或 SUID 程序。

    • Dirty Pipe (CVE-2022-0847): 管道缓冲区处理逻辑漏洞,允许普通用户向只读文件中注入数据。

3. 权限配置不当与服务劫持

  • Sudo 配置滥用: 管理员为了方便,在 /etc/sudoers 中配置了 NOPASSWD,允许低权限用户无密码执行某些特定命令,但未对命令参数进行严格限制。

  • 计划任务 (Cron Jobs): 系统定时以 root 权限执行某个脚本,但该脚本本身或其所在的目录对普通用户可写;或者脚本中存在通配符(*)注入漏洞。

  • 敏感文件权限错误: /etc/passwd/etc/shadow 文件权限配置错误,导致普通用户可读写,从而直接添加特权账号或破解密码 Hash。

4.3 实战排查与利用思路

在获取了低级 Shell 后,通常的自动化与手动排查步骤:

  1. 信息收集: 执行 uname -a, id, env, 查看当前系统版本和内核信息。

  2. 搜寻脆弱点:

    • 查找 SUID 程序:find / -perm -4000 -type f 2>/dev/null

    • 查看 Sudo 权限:sudo -l

    • 检查可写目录与敏感文件:寻找是否有 /etc 目录下的异常权限。

  3. 自动化枚举工具: 实战中常使用 LinPEASLinux Smart Enumeration (lse.sh) 脚本快速扫描提权路径。

4.4 防御与取证视角 (Forensics & Defense)

  • 防御: 最小权限原则;定期审计系统中的 SUID 文件(剥离不必要的 SUID 位);及时修补内核漏洞;使用 AppArmor 或 SELinux 限制进程行为。

  • 取证痕迹: 提权攻击往往会在系统中留下痕迹。可通过审计日志(/var/log/auth.log, auditd 日志)排查异常的 susudo 行为;检查 /tmp 目录下是否有残留的 C 语言提权源码编译文件或伪造的软链接环境;分析进程树中由非预期父进程产生的 root 权限 Shell (/bin/sh/bin/bash)。