首页主机资讯Linux exploit利用案例分析与总结

Linux exploit利用案例分析与总结

时间2026-01-19 06:26:05发布访客分类主机资讯浏览220
导读:Linux Exploit 利用案例分析与总结 一 典型利用路径与案例 内核本地提权 脏牛 CVE-2016-5195:通过写时复制(COW)竞态修改只读映射,获取任意写并最终提升到root。常见于获取 WebShell 后的本地提权链...

Linux Exploit 利用案例分析与总结

一 典型利用路径与案例

  • 内核本地提权
    • 脏牛 CVE-2016-5195:通过写时复制(COW)竞态修改只读映射,获取任意写并最终提升到root。常见于获取 WebShell 后的本地提权链路,如 Drupalgeddon2 获取 www-data 后利用脏牛提权。影响广泛、利用门槛低,是经典的“先入站、后本地提权”范式。
    • CVE-2022-0874:Linux 内核 splice 系统调用未正确初始化管道缓存的 PIPE_BUF_FLAG_CAN_MERGE,导致可将可控数据写入页缓存,进而篡改如 /etc/passwd /etc/group 等文件实现提权。影响内核版本:5.8 ≤ kernel < 5.16.11 / 5.15.25 / 5.10.102
  • 本地服务与配置滥用
    • Rsync 未授权访问:默认端口 873,未鉴权可列模块、下载敏感文件,配合 /etc/cron.hourly 等计划任务写入反弹 Shell,等待定时触发获取 root
    • Docker 组挂载:普通用户处于 docker 组时,可通过 docker run -v /root:/mnt -it alpine 挂载宿主 /root,直接读取或修改敏感文件,进而提权。
  • 提权“快捷方式”
    • sudo 堆溢出 CVE-2021-3156(Baron Samedit):本地可通过 sudoedit -s / 报错特征判断漏洞是否存在,利用堆溢出在无需凭据情况下获取 root。影响版本:sudo 1.8.2–1.8.31p2、1.9.0–1.9.5p1
    • Polkit 本地提权 CVE-2021-4034(PwnKit):自 2009 年 5 月起的多版本 polkit 受影响,常见发行版如 CentOS、Ubuntu、Debian、Red Hat、Fedora、Gentoo、Mageia 等,触发后可获得 root
  • 二进制与 SUID/GTFObins
    • SUID 滥用:查找 SUID root 程序(如 find / -perm -4000 -type f 2> /dev/null),结合程序功能或已知缺陷实现提权;配合 GTFOBins 查询可用技巧。
  • 内核堆利用技术
    • 基于堆的 Off-By-One:单字节溢出可覆盖相邻 chunk 的 size 最低位,在 glibc malloc 中诱发不一致状态,进而劫持控制流(经典教学案例,展示从溢出到任意代码执行的路径)。
    • Malloc Maleficarum:如 House of Force / House of Spirit / House of Mind 等技巧,在特定堆布局与约束下实现任意写或 GOT 覆盖,进而获取 shell

二 通用攻击流程与常用命令

  • 信息收集与枚举
    • 系统与内核:uname -acat /etc/*-releaselsb_release -a
    • 进程与服务:ps auxtopnetstat -tulpnlsof -i
    • 计划任务与定时:crontab -lcat /etc/cron*
    • 敏感文件与凭证:cat /etc/passwd/etc/shadowgrep -Ri "password" /var/www /home 2> /dev/null
    • SUID/SGID:find / -perm -4000 -type f 2> /dev/nullfind / -perm -2000 -type f 2> /dev/null
    • 网络与连接:ifconfig -aroute -narp -ess -antp
  • 漏洞探测与验证
    • 本地脚本与工具:LinEnum、linuxprivchecker、linux-exploit-suggester / linux-exploit-suggester-2
    • 针对性验证:如 sudo --versionsudoedit -s /(CVE-2021-3156 特征)、dpkg -l policykit-1(Polkit 是否存在)
  • 利用与提权
    • 编译与执行:在目标上 gcc/ g++ 编译 EXP,必要时使用 chmod +x 赋予执行权限
    • 反弹与持久化:准备 nc 监听、写入 cron、替换/追加 authorized_keys
  • 环境准备与调试
    • 内核/虚拟化:使用 QEMU + GDB 搭建调试环境,常用命令:qemu-system-x86_64 -kernel bzImage -initrd rootfs.cpio -s -append "nokaslr"(关闭 KASLR 便于调试)。

三 防护与检测要点

  • 及时修补与最小化暴露
    • 内核与关键组件(如 sudo、polkit、docker、rsync)保持及时更新;未使用的服务关闭或限制访问(如 rsync 873 仅限内网、启用鉴权)。
  • 权限最小化与隔离
    • 谨慎授予 SUID/SGID;定期审计并清理不必要的 SUID 二进制;将用户移出 docker 等高权限组;容器以最小权限运行,避免挂载宿主敏感目录。
  • 计划任务与脚本安全
    • 严格控制 /etc/cron、/var/spool/cron* 权限与属主;避免在计划任务中直接执行可被篡改的脚本/二进制;对关键目录设置不可写
  • 强化系统防护
    • 启用 ASLR、PIE、RELRO、Stack Protector 等编译/内核防护;限制 LD_PRELOAD / ptrace;对公网服务采用最小权限与隔离(容器/命名空间/Seccomp/AppArmor/SELinux)。
  • 监测与响应
    • 审计关键文件(如 /etc/passwd、/etc/shadow、/etc/group、/etc/sudoers)的异常修改;监控 cron 异常任务、docker 异常挂载与 sudo 异常调用;部署 EDR/主机加固 并保留审计日志

四 实战要点与排错清单

  • 交互式 Shell 与稳定性
    • 受限/哑 shell 可通过 python -c 'import pty; pty.spawn("/bin/bash")'echo os.system('/bin/bash') 提升交互性,便于后续操作与调试。
  • 编译与运行环境
    • 尽量在目标环境本地编译 EXP,避免架构/库不匹配;必要时静态编译或携带依赖;注意 glibc 版本差异导致的崩溃。
  • 绕过 ASLR 与信息泄露
    • 结合信息泄露可控映射降低随机化影响;在受控实验环境可临时关闭 ASLR 进行验证(如 echo 0 > /proc/sys/kernel/randomize_va_space),实战中需采用信息泄露/爆破等替代方法。
  • 利用稳定性与清理
    • 内核利用注意并发/时序崩溃风险,优先选择稳定的公开 EXP;提权成功后及时清理痕迹(如 cron 任务、临时文件、新增用户/密钥)。

免责声明

  • 本内容仅用于合规的安全研究、教学与防护目的。任何对未授权系统的测试、入侵或利用均可能触犯当地法律并造成损害。进行安全测试前请确保已获得明确、书面的授权

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux exploit利用案例分析与总结
本文地址: https://pptw.com/jishu/785336.html
Linux exploit利用技巧与实战案例 Linux exploit安全漏洞分类解析

游客 回复需填写必要信息