Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2015-1328 — 针对 CVE-2015-1328 的概念验证(PoC)漏洞利用程序 | Kitploit
工具/GitHubGitHub/0xf1d0/cve-2015-1328
权限提升漏洞分析漏洞利用渗透测试学习与教育二进制利用
GitHub0xf1d0/cve-2015-1328

CVE-2015-1328

针对 CVE-2015-1328 的概念验证(PoC)漏洞利用程序

查看仓库
1111个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2015-1328 概念验证

CVE-2015-1328 的漏洞利用概念验证(PoC),这是一个影响 Linux 内核 overlayfs 实现的权限提升漏洞。该漏洞允许本地非特权用户通过利用用户命名空间中 overlayfs 挂载操作的不当权限检查来获得 root 权限。

概述

CVE-2015-1328 是一个严重的安全漏洞,影响启用了 overlayfs 支持和用户命名空间的 Linux 内核。该漏洞允许非特权本地用户:

  1. 使用 unshare(CLONE_NEWUSER) 创建用户命名空间
  2. 在命名空间内挂载 overlayfs 文件系统
  3. 利用权限检查缺陷写入 /etc/ld.so.preload
  4. 执行恶意共享库以获取 root 权限

此 PoC 通过以下方式演示该漏洞:

  • 使用命名空间隔离绕过挂载限制
  • 挂载 overlayfs 以操纵系统文件
  • 通过 /etc/ld.so.preload 注入自定义共享库
  • 劫持 getuid() 以执行 root shell

受影响系统

  • Ubuntu 14.04 LTS,内核版本早于 3.19.0-21.21
  • 系统需满足:
    • 已启用用户命名空间(kernel.unprivileged_userns_clone=1)
    • 支持 overlayfs 文件系统
    • 未修补的内核版本

要求

  • 支持 32 位编译的 GCC 编译器
  • 支持用户命名空间和 overlayfs 的 Linux 内核
  • 相应的系统库(支持 -m32 标志)

构建

项目包含一个 Makefile 以便轻松编译:

make

这将编译:

  • ofs - 主要漏洞利用二进制文件(静态 32 位)
  • ofs-lib.so - 用于 LD_PRELOAD 钩子的共享库(32 位)

手动编译

如果你更喜欢手动编译:

# 编译主要漏洞利用
gcc -o ofs ofs.c -m32 -static

# 编译共享库
gcc -m32 -fPIC -shared -o ofs-lib.so ofs-lib.c -ldl -static-libgcc

使用

⚠️ 警告:此漏洞利用将修改系统文件并试图获取 root 权限。仅在受控环境中并拥有适当授权时才能使用。

  1. 编译漏洞利用:

    make
    
  2. 运行漏洞利用:

    ./ofs
    
  3. 如果成功,漏洞利用将:

    • 创建必要的命名空间结构
    • 挂载 overlayfs 文件系统
    • 写入 /etc/ld.so.preload
    • 执行 /bin/su,触发恶意库
    • 生成 root shell

工作原理

漏洞利用流程

  1. 命名空间创建:漏洞利用使用 unshare(CLONE_NEWUSER) 创建新的用户命名空间
  2. 挂载命名空间:使用带 CLONE_NEWNS 的 clone() 创建挂载命名空间
  3. Overlayfs 挂载:挂载 overlayfs 文件系统以操纵系统目录
  4. 文件操纵:利用 overlayfs 重命名文件并写入 /etc/ld.so.preload
  5. 库注入:将恶意共享库写入 /tmp/ofs-lib.so
  6. 权限提升:执行 /bin/su,触发预加载的库
  7. Root Shell:该库劫持 getuid() 并生成 root shell

技术细节

  • 漏洞利用使用带自定义栈的 clone() 创建隔离的挂载命名空间
  • Overlayfs 挂载允许在命名空间内进行文件操纵,从而影响主机
  • 共享库(ofs-lib.so)通过 LD_PRELOAD 钩住 getuid()
  • 当 /bin/su 调用 getuid() 时,恶意函数会被执行

代码结构

.
├── ofs.c          # 主要漏洞利用代码
├── ofs-lib.c      # 用于权限提升的共享库
├── lib_so.h       # 嵌入的二进制库数据
├── Makefile       # 构建配置
└── README.md      # 本文件

关键文件

  • ofs.c:包含主要漏洞利用逻辑、命名空间创建和挂载操作
  • ofs-lib.c:实现生成 root shell 的 getuid() 钩子
  • lib_so.h:包含编译后的共享库作为二进制数组(用于嵌入)

缓解措施

要防范此漏洞:

  1. 更新内核至已修补版本(Ubuntu 14.04 为 3.19.0-21.21 或更高版本)
  2. 禁用用户命名空间(如不需要):
    echo 0 > /proc/sys/kernel/unprivileged_userns_clone
    
  3. 使用 AppArmor/SELinux 限制命名空间创建能力
  4. 监控系统日志中可疑的挂载操作

法律与道德免责声明

此代码仅用于教育和安全研究目的。

  • 未经明确许可,在系统上未经授权使用此漏洞利用是违法的
  • 此 PoC 旨在用于:
    • 研究内核漏洞的安全研究人员
    • 测试系统弹性的系统管理员
    • 受控环境中的教育目的
  • 作者对该代码的任何误用不承担任何责任
  • 在任意系统上进行测试之前,请确保拥有适当的授权

参考

  • CVE-2015-1328
  • Ubuntu 安全公告
  • Kernel.org Git 提交
  • Cloud Foundry 公告
  • Exploit DB 作者:rebel

许可证

本项目按原样提供,用于教育目的。请负责任地使用,并遵守所有适用的法律法规。

下载工具